{"version":3,"sources":["webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/components/jquery.zoom.min.js","webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/components/pinchzoom.js","webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/helpers/qrcode.js","webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/product/index.js","webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/product/productDescription.js","webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/product/productZoom.js","webpack:///./cartridges/app_accelerator_core/cartridge/client/default/js/product/virtualTryOnPDP.js","webpack:///./cartridges/plugin_instorepickup/cartridge/client/default/js/product/index.js","webpack:///./cartridges/plugin_instorepickup/cartridge/client/default/js/product/productStorePickup.js"],"names":["$","defaults","url","callback","target","duration","on","touch","onZoomIn","onZoomOut","magnify","zoom","source","img","targetHeight","targetWidth","sourceHeight","sourceWidth","xRatio","yRatio","offset","$target","position","css","$source","style","test","overflow","width","height","addClass","top","left","opacity","border","maxWidth","maxHeight","appendTo","init","outerWidth","outerHeight","move","e","pageX","pageY","Math","max","min","fn","options","each","settings","extend","srcElement","secondaryImage","document","querySelector","createElement","$img","mousemove","clicked","touched","getAttribute","currentSrc","src","one","off","onload","remove","bind","start","classList","add","parentElement","stop","fadeTo","support","isFunction","call","which","preventDefault","originalEvent","touches","changedTouches","setAttribute","alt","window","jQuery","global","factory","define","exports","Object","defineProperty","value","assign","TypeError","to","index","arguments","length","nextSource","nextKey","prototype","hasOwnProperty","writable","configurable","Array","from","object","slice","buildElement","str","tmp","implementation","createHTMLDocument","body","innerHTML","children","triggerEvent","el","name","event","createEvent","initEvent","dispatchEvent","definePinchZoom","PinchZoom","zoomFactor","lastScale","x","y","initialOffset","setupMarkup","bindEvents","update","isImageLoaded","updateAspectRatio","setupOffsets","enable","sum","a","b","isCloseTo","expected","tapZoomFactor","zoomOutFactor","animationDuration","maxZoom","minZoom","draggableUnzoomed","lockDragAxis","setOffsetsOnce","use2d","zoomStartEventName","zoomUpdateEventName","zoomEndEventName","dragStartEventName","dragUpdateEventName","dragEndEventName","doubleTapEventName","verticalPadding","horizontalPadding","onZoomStart","onZoomEnd","onZoomUpdate","onDragStart","onDragEnd","onDragUpdate","onDoubleTap","handleDragStart","stopAnimation","lastDragPosition","hasInteraction","handleDrag","getTouches","drag","sanitizeOffset","handleDragEnd","end","handleZoomStart","nthZoom","lastZoomCenter","handleZoom","newScale","touchCenter","getTouchCenter","scale","handleZoomEnd","handleDoubleTap","center","startZoomFactor","updateProgress","progress","scaleTo","isDoubleTap","getCurrentZoomCenter","animate","swing","computeInitialOffset","abs","offsetWidth","getInitialZoomFactor","container","offsetHeight","resetOffset","nodeName","complete","naturalHeight","querySelectorAll","every","_isOffsetsSet","elWidth","elHeight","maxX","getContainerX","maxY","getContainerY","maxOffsetX","maxOffsetY","minOffsetX","minOffsetY","_scale","scaleZoomFactor","addOffset","originalZoomFactor","canDrag","lastCenter","getVectorAvg","vectors","map","v","reduce","sanitize","zoomOutAnimation","isInsaneOffset","sanitizeOffsetAnimation","sanitizedOffset","targetOffset","startOffset","unsetContainerY","setContainerY","xZoomFactor","yZoomFactor","getAspectRatio","offsetLeft","centerX","offsetTop","centerY","rect","getBoundingClientRect","scrollTop","documentElement","scrollLeft","posTop","posLeft","framefn","timefn","startTime","Date","getTime","renderFrame","inAnimation","frameTime","requestAnimationFrame","p","cos","PI","parentNode","insertBefore","appendChild","webkitTransformOrigin","mozTransformOrigin","msTransformOrigin","oTransformOrigin","transformOrigin","self","detectGestures","addEventListener","forEach","imgEl","updatePlaned","setTimeout","type","offsetX","offsetY","transform3d","transform2d","removeClone","clone","removeChild","is3d","webkitTransform","mozTransform","msTransform","oTransform","transform","cloneNode","pointerEvents","enabled","disable","interaction","fingers","startTouches","setInteraction","newInteraction","updateInteraction","targetTouches","getDistance","sqrt","calculateScale","endTouches","startDistance","endDistance","cancelEvent","stopPropagation","firstMove","default","QRCode","QRCodeGenerator","QR8bitByte","data","mode","QRMode","MODE_8BIT_BYTE","parsedData","i","l","byteArray","code","charCodeAt","push","concat","apply","unshift","getLength","buffer","write","put","QRCodeModel","typeNumber","errorCorrectLevel","modules","moduleCount","dataCache","dataList","addData","newData","isDark","row","col","Error","getModuleCount","make","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","minLostPoint","pattern","lostPoint","QRUtil","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","cs","dark","beginFill","moveTo","lineTo","endFill","pos","getPatternPosition","j","bits","getBCHTypeNumber","mod","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","mask","getMask","PAD0","PAD1","rsBlocks","QRRSBlock","getRSBlocks","QRBitBuffer","getLengthInBits","totalDataCount","dataCount","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","rsPoly","getErrorCorrectPolynomial","rawPoly","QRPolynomial","modPoly","modIndex","get","totalCodeCount","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRErrorCorrectLevel","L","M","Q","H","QRMaskPattern","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","d","getBCHDigit","digit","errorCorrectLength","multiply","QRMath","gexp","qrCode","sameCount","count","darkCount","ratio","glog","n","LOG_TABLE","EXP_TABLE","num","shift","undefined","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","list","bufIndex","bit","QRCodeLimitLength","_isSupportCanvas","CanvasRenderingContext2D","_getAndroid","android","sAgent","navigator","userAgent","aMat","toString","match","parseFloat","svgDrawer","Drawing","htOption","_el","_htOption","draw","oQRCode","nCount","nWidth","nHeight","clear","makeSVG","tag","attrs","createElementNS","k","svg","String","colorLight","setAttributeNS","colorDark","child","hasChildNodes","lastChild","useSVG","tagName","toLowerCase","aHTML","join","elTable","childNodes","nLeftMarginTable","nTopMarginTable","margin","_onMakeImage","_elImage","_elCanvas","toDataURL","display","_android","factor","devicePixelRatio","drawImage","image","sx","sy","sw","sh","dx","dy","dw","dh","_safeSetDataURI","fSuccess","fFail","_fFail","_fSuccess","_bSupportDataURI","fOnError","fOnSuccess","onabort","onerror","_bIsPainted","_oContext","getContext","nRoundedWidth","round","nRoundedHeight","bIsDark","nLeft","nTop","strokeStyle","lineWidth","fillStyle","fillRect","strokeRect","ceil","makeImage","isPainted","clearRect","nNumber","_getTypeNumber","sText","nCorrectLevel","nType","_getUTF8Length","len","nLimit","replacedText","encodeURI","replace","vOption","correctLevel","text","getElementById","_oQRCode","_oDrawing","makeCode","title","CorrectLevel","setupAddToCart","setupConfirmEngravAddToCart","setupConfirmEmbossAddToCart","setupConfirmBraceletAdjustmentAddToCart","updateEngvPreview","setupVariationListeners","setupZoom","setupZoomTriggers","setupProductDescription","widget3DConfiguration","refillsSetup","initShareLink","afterAttributeSelect","applepayapi","vtoSetup","triggerEl","puckTriggers","updatePuck","currentTrigger","handlePuckTrigger","_onZoomSlideChange","contextEl","subscribe","tracking","trackEvent","trackObject","asyncParams","pid","getPidValue","handleZoomTrigger","productContainer","getProductContainer","params","getQueryStringParams","selectedIndex","startindex","dialog","appendParamsToURL","SFRA","Urls","productZoom","modalID","modalClass","keepAlive","afterScrollLockCallback","modal","zoomGAllery","productzoomitem","slick","element","mypichzoom","zoomTriggers","attr","isQRCodeGenerated","vtoBtn","vtoURL","origin","location","href","RegExp","isMobile","open","vtoQrContainer","vtoQrImage","vtoQrClose","qrcode","initMethods","storePickup","productStorePickup","coreProduct","_setStoreIDOnProductData","productObject","storeIDEl","getSelectedStoreInput","productOptions","JSON","parse","storeId","stringify","updateSelectStore","evt","response","updateTriggerStatus","updateAvailability","updateAddToCart","product","removeSelectedStoreOnAttributeChange","requestInventoryCheck","id","updateAddToCartFormData","formData","pidsObj","currentData","childProducts","removeStoreSelection","addEventListenerList","deselectStore","requestProductUpdate","getQuantitySelector"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACC,WAASA,CAAC,EAAE;EACT,IAAIC,QAAQ,GAAG;IACXC,GAAG,EAAE,KAAK;IACVC,QAAQ,EAAE,KAAK;IACfC,MAAM,EAAE,KAAK;IACbC,QAAQ,EAAE,GAAG;IACbC,EAAE,EAAE,WAAW;IAAE;IACjBC,KAAK,EAAE,IAAI;IAAE;IACbC,QAAQ,EAAE,KAAK;IACfC,SAAS,EAAE,KAAK;IAChBC,OAAO,EAAE;EACb,CAAC;;EAED;EACAV,CAAC,CAACW,IAAI,GAAG,UAASP,MAAM,EAAEQ,MAAM,EAAEC,GAAG,EAAEH,OAAO,EAAE;IAC5C,IAAII,YAAY;MACZC,WAAW;MACXC,YAAY;MACZC,WAAW;MACXC,MAAM;MACNC,MAAM;MACNC,MAAM;MACNC,OAAO,GAAGrB,CAAC,CAACI,MAAM,CAAC;MACnBkB,QAAQ,GAAGD,OAAO,CAACE,GAAG,CAAC,UAAU,CAAC;MAClCC,OAAO,GAAGxB,CAAC,CAACY,MAAM,CAAC;;IAEvB;IACAR,MAAM,CAACqB,KAAK,CAACH,QAAQ,GAAG,kBAAkB,CAACI,IAAI,CAACJ,QAAQ,CAAC,GAAGA,QAAQ,GAAG,UAAU;IACjFlB,MAAM,CAACqB,KAAK,CAACE,QAAQ,GAAG,QAAQ;IAChCd,GAAG,CAACY,KAAK,CAACG,KAAK,GAAGf,GAAG,CAACY,KAAK,CAACI,MAAM,GAAG,EAAE;IAEvC7B,CAAC,CAACa,GAAG,CAAC,CACDiB,QAAQ,CAAC,SAAS,CAAC,CACnBP,GAAG,CAAC;MACDD,QAAQ,EAAE,UAAU;MACpBS,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,OAAO,EAAE,CAAC;MACVL,KAAK,EAAEf,GAAG,CAACe,KAAK,GAAGlB,OAAO;MAC1BmB,MAAM,EAAEhB,GAAG,CAACgB,MAAM,GAAGnB,OAAO;MAC5BwB,MAAM,EAAE,MAAM;MACdC,QAAQ,EAAE,MAAM;MAChBC,SAAS,EAAE;IACf,CAAC,CAAC,CACDC,QAAQ,CAACjC,MAAM,CAAC;IAErB,OAAO;MACHkC,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAa;QACbvB,WAAW,GAAGM,OAAO,CAACkB,UAAU,CAAC,CAAC;QAClCzB,YAAY,GAAGO,OAAO,CAACmB,WAAW,CAAC,CAAC;QAEpC,IAAI5B,MAAM,KAAKR,MAAM,EAAE;UACnBa,WAAW,GAAGF,WAAW;UACzBC,YAAY,GAAGF,YAAY;QAC/B,CAAC,MAAM;UACHG,WAAW,GAAGO,OAAO,CAACe,UAAU,CAAC,CAAC;UAClCvB,YAAY,GAAGQ,OAAO,CAACgB,WAAW,CAAC,CAAC;QACxC;QAEAtB,MAAM,GAAG,CAACL,GAAG,CAACe,KAAK,GAAGb,WAAW,IAAIE,WAAW;QAChDE,MAAM,GAAG,CAACN,GAAG,CAACgB,MAAM,GAAGf,YAAY,IAAIE,YAAY;QAEnDI,MAAM,GAAGI,OAAO,CAACJ,MAAM,CAAC,CAAC;MAC7B,CAAC;MACDqB,IAAI,EAAE,SAANA,IAAIA,CAAWC,CAAC,EAAE;QACd,IAAIV,IAAI,GAAIU,CAAC,CAACC,KAAK,GAAGvB,MAAM,CAACY,IAAK;UAC9BD,GAAG,GAAIW,CAAC,CAACE,KAAK,GAAGxB,MAAM,CAACW,GAAI;QAEhCA,GAAG,GAAGc,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAAChB,GAAG,EAAEf,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9CgB,IAAI,GAAGa,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAACf,IAAI,EAAEf,WAAW,CAAC,EAAE,CAAC,CAAC;QAE/CJ,GAAG,CAACY,KAAK,CAACO,IAAI,GAAIA,IAAI,GAAG,CAACd,MAAM,GAAI,IAAI;QACxCL,GAAG,CAACY,KAAK,CAACM,GAAG,GAAIA,GAAG,GAAG,CAACZ,MAAM,GAAI,IAAI;MAC1C;IACJ,CAAC;EACL,CAAC;EAEDnB,CAAC,CAACgD,EAAE,CAACrC,IAAI,GAAG,UAASsC,OAAO,EAAE;IAC1B,OAAO,IAAI,CAACC,IAAI,CAAC,YAAW;MACxB,IAAIC,QAAQ,GAAGnD,CAAC,CAACoD,MAAM,CAAC,CAAC,CAAC,EAAEnD,QAAQ,EAAEgD,OAAO,IAAI,CAAC,CAAC,CAAC;QAChD;QACA7C,MAAM,GAAG+C,QAAQ,CAAC/C,MAAM,IAAIJ,CAAC,CAACmD,QAAQ,CAAC/C,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;QACzD;QACAQ,MAAM,GAAG,IAAI;QACbyC,UAAU;QACV7B,OAAO,GAAGxB,CAAC,CAACY,MAAM,CAAC;QACnB0C,cAAc,GAAGC,QAAQ,CAACC,aAAa,CAAC,uCAAuC,CAAC;QAChF3C,GAAG,GAAG0C,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;QACnCC,IAAI,GAAG1D,CAAC,CAACa,GAAG,CAAC;QACb8C,SAAS,GAAG,gBAAgB;QAC5BC,OAAO,GAAG,KAAK;QACfC,OAAO,GAAG,KAAK;;MAEnB;MACA,IAAI,CAACV,QAAQ,CAACjD,GAAG,EAAE;QACfmD,UAAU,GAAGzC,MAAM,CAAC4C,aAAa,CAAC,KAAK,CAAC;QACxC,IAAIH,UAAU,EAAE;UACZF,QAAQ,CAACjD,GAAG,GAAGmD,UAAU,CAACS,YAAY,CAAC,UAAU,CAAC,IAAIT,UAAU,CAACU,UAAU,IAAIV,UAAU,CAACW,GAAG;QACjG;QAEA,IAAI,CAACb,QAAQ,CAACjD,GAAG,EAAE;UACf;QACJ;MACJ;MAEAsB,OAAO,CAACyC,GAAG,CAAC,cAAc,EAAE,UAAS3C,QAAQ,EAAEK,QAAQ,EAAE;QACrDH,OAAO,CAAC0C,GAAG,CAAC,OAAO,CAAC;QACpB9D,MAAM,CAACqB,KAAK,CAACH,QAAQ,GAAGA,QAAQ;QAChClB,MAAM,CAACqB,KAAK,CAACE,QAAQ,GAAGA,QAAQ;QAChCd,GAAG,CAACsD,MAAM,GAAG,IAAI;QACjBT,IAAI,CAACU,MAAM,CAAC,CAAC;MACjB,CAAC,CAACC,IAAI,CAAC,IAAI,EAAEjE,MAAM,CAACqB,KAAK,CAACH,QAAQ,EAAElB,MAAM,CAACqB,KAAK,CAACE,QAAQ,CAAC,CAAC;MAE3Dd,GAAG,CAACsD,MAAM,GAAG,YAAW;QACpB,IAAIxD,IAAI,GAAGX,CAAC,CAACW,IAAI,CAACP,MAAM,EAAEQ,MAAM,EAAEC,GAAG,EAAEsC,QAAQ,CAACzC,OAAO,CAAC;QAExD,SAAS4D,KAAKA,CAAC5B,CAAC,EAAE;UACd,IAAIY,cAAc,EAAE;YAChBA,cAAc,CAACiB,SAAS,CAACH,MAAM,CAAC,QAAQ,CAAC;YACzCvD,GAAG,CAAC0D,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;YAC3B3D,GAAG,CAAC4D,aAAa,CAACF,SAAS,CAACC,GAAG,CAAC,oBAAoB,CAAC;UACzD;UAEA7D,IAAI,CAAC2B,IAAI,CAAC,CAAC;UACX3B,IAAI,CAAC8B,IAAI,CAACC,CAAC,CAAC;;UAEZ;UACA;UACAgB,IAAI,CAACgB,IAAI,CAAC,CAAC,CACNC,MAAM,CAAC3E,CAAC,CAAC4E,OAAO,CAAC3C,OAAO,GAAGkB,QAAQ,CAAC9C,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAEL,CAAC,CAAC6E,UAAU,CAAC1B,QAAQ,CAAC3C,QAAQ,CAAC,GAAG2C,QAAQ,CAAC3C,QAAQ,CAACsE,IAAI,CAACjE,GAAG,CAAC,GAAG,KAAK,CAAC;QACpI;QAEA,SAAS6D,IAAIA,CAAA,EAAG;UACZ,IAAIpB,cAAc,EAAE;YAChBA,cAAc,CAACiB,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;YACtC3D,GAAG,CAAC0D,SAAS,CAACH,MAAM,CAAC,QAAQ,CAAC;YAC9BvD,GAAG,CAAC4D,aAAa,CAACF,SAAS,CAACH,MAAM,CAAC,oBAAoB,CAAC;UAC5D;UACAV,IAAI,CAACgB,IAAI,CAAC,CAAC,CACNC,MAAM,CAACxB,QAAQ,CAAC9C,QAAQ,EAAE,CAAC,EAAEL,CAAC,CAAC6E,UAAU,CAAC1B,QAAQ,CAAC1C,SAAS,CAAC,GAAG0C,QAAQ,CAAC1C,SAAS,CAACqE,IAAI,CAACjE,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9G;;QAEA;QACA,IAAIsC,QAAQ,CAAC7C,EAAE,KAAK,MAAM,EAAE;UACxBkB,OAAO,CACFlB,EAAE,CAAC,gBAAgB,EAChB,UAASoC,CAAC,EAAE;YACR,IAAIA,CAAC,CAACqC,KAAK,KAAK,CAAC,EAAE;cACf/E,CAAC,CAACuD,QAAQ,CAAC,CAACU,GAAG,CAAC,cAAc,EAC1B,YAAW;gBACPS,IAAI,CAAC,CAAC;gBAEN1E,CAAC,CAACuD,QAAQ,CAAC,CAACW,GAAG,CAACP,SAAS,EAAEhD,IAAI,CAAC8B,IAAI,CAAC;cACzC,CACJ,CAAC;cAED6B,KAAK,CAAC5B,CAAC,CAAC;cAER1C,CAAC,CAACuD,QAAQ,CAAC,CAACjD,EAAE,CAACqD,SAAS,EAAEhD,IAAI,CAAC8B,IAAI,CAAC;cAEpCC,CAAC,CAACsC,cAAc,CAAC,CAAC;YACtB;UACJ,CACJ,CAAC;QACT,CAAC,MAAM,IAAI7B,QAAQ,CAAC7C,EAAE,KAAK,OAAO,EAAE;UAChCkB,OAAO,CAAClB,EAAE,CAAC,YAAY,EACnB,UAASoC,CAAC,EAAE;YACR,IAAIkB,OAAO,EAAE;cACT;cACA;YACJ,CAAC,MAAM;cACHA,OAAO,GAAG,IAAI;cACdU,KAAK,CAAC5B,CAAC,CAAC;cACR1C,CAAC,CAACuD,QAAQ,CAAC,CAACjD,EAAE,CAACqD,SAAS,EAAEhD,IAAI,CAAC8B,IAAI,CAAC;cACpCzC,CAAC,CAACuD,QAAQ,CAAC,CAACU,GAAG,CAAC,YAAY,EACxB,YAAW;gBACPS,IAAI,CAAC,CAAC;gBACNd,OAAO,GAAG,KAAK;gBACf5D,CAAC,CAACuD,QAAQ,CAAC,CAACW,GAAG,CAACP,SAAS,EAAEhD,IAAI,CAAC8B,IAAI,CAAC;cACzC,CACJ,CAAC;cACD,OAAO,KAAK;YAChB;UACJ,CACJ,CAAC;QACL,CAAC,MAAM,IAAIU,QAAQ,CAAC7C,EAAE,KAAK,QAAQ,EAAE;UACjCkB,OAAO,CAAClB,EAAE,CAAC,YAAY,EACnB,UAASoC,CAAC,EAAE;YACR,IAAIkB,OAAO,EAAE;cACTc,IAAI,CAAC,CAAC;YACV,CAAC,MAAM;cACHJ,KAAK,CAAC5B,CAAC,CAAC;YACZ;YACAkB,OAAO,GAAG,CAACA,OAAO;UACtB,CACJ,CAAC;QACL,CAAC,MAAM,IAAIT,QAAQ,CAAC7C,EAAE,KAAK,WAAW,EAAE;UACpCK,IAAI,CAAC2B,IAAI,CAAC,CAAC,CAAC,CAAC;;UAEbd,OAAO,CACFlB,EAAE,CAAC,iBAAiB,EAAEgE,KAAK,CAAC,CAC5BhE,EAAE,CAAC,iBAAiB,EAAEoE,IAAI,CAAC,CAC3BpE,EAAE,CAACqD,SAAS,EAAEhD,IAAI,CAAC8B,IAAI,CAAC;QACjC;;QAEA;QACA,IAAIU,QAAQ,CAAC5C,KAAK,EAAE;UAChBiB,OAAO,CACFlB,EAAE,CAAC,iBAAiB,EAAE,UAASoC,CAAC,EAAE;YAC/BA,CAAC,CAACsC,cAAc,CAAC,CAAC;YAClB,IAAInB,OAAO,EAAE;cACTA,OAAO,GAAG,KAAK;cACfa,IAAI,CAAC,CAAC;YACV,CAAC,MAAM;cACHb,OAAO,GAAG,IAAI;cACdS,KAAK,CAAE5B,CAAC,CAACuC,aAAa,CAACC,OAAO,CAAC,CAAC,CAAC,IAAIxC,CAAC,CAACuC,aAAa,CAACE,cAAc,CAAC,CAAC,CAAE,CAAC;YAC5E;UACJ,CAAC,CAAC,CACD7E,EAAE,CAAC,gBAAgB,EAAE,UAASoC,CAAC,EAAE;YAC9BA,CAAC,CAACsC,cAAc,CAAC,CAAC;YAClBrE,IAAI,CAAC8B,IAAI,CAAEC,CAAC,CAACuC,aAAa,CAACC,OAAO,CAAC,CAAC,CAAC,IAAIxC,CAAC,CAACuC,aAAa,CAACE,cAAc,CAAC,CAAC,CAAE,CAAC;UAChF,CAAC,CAAC,CACD7E,EAAE,CAAC,eAAe,EAAE,UAASoC,CAAC,EAAE;YAC7BA,CAAC,CAACsC,cAAc,CAAC,CAAC;YAClB,IAAInB,OAAO,EAAE;cACTA,OAAO,GAAG,KAAK;cACfa,IAAI,CAAC,CAAC;YACV;UACJ,CAAC,CAAC;QACV;QAEA,IAAI1E,CAAC,CAAC6E,UAAU,CAAC1B,QAAQ,CAAChD,QAAQ,CAAC,EAAE;UACjCgD,QAAQ,CAAChD,QAAQ,CAAC2E,IAAI,CAACjE,GAAG,CAAC;QAC/B;MACJ,CAAC;MAEDA,GAAG,CAACuE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;MACxCvE,GAAG,CAACwE,GAAG,GAAG,EAAE;MACZxE,GAAG,CAACmD,GAAG,GAAGb,QAAQ,CAACjD,GAAG;IAC1B,CAAC,CAAC;EACN,CAAC;EAEDF,CAAC,CAACgD,EAAE,CAACrC,IAAI,CAACV,QAAQ,GAAGA,QAAQ;AACjC,CAAC,EAACqF,MAAM,CAACC,MAAM,CAAC,C;;;;;;;;;;;ACxPhB,iGAAC,UAASC,MAAM,EAAEC,OAAO,EAAE;EACvB,IAAI,IAA0C,EAAE;IAC5CC,iCAAO,CAAE,OAAS,CAAE,oCAAED,OAAO;AAAA;AAAA;AAAA,oGAAC;EAClC,CAAC,MAAM,YAQN;AACL,CAAC,EAAE,IAAI,EAAE,UAASE,OAAO,EAAE;EACvB,YAAY;;EAEZC,MAAM,CAACC,cAAc,CAACF,OAAO,EAAE,YAAY,EAAE;IACzCG,KAAK,EAAE;EACX,CAAC,CAAC;EACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAQI;EACA,IAAI,OAAOF,MAAM,CAACG,MAAM,IAAI,UAAU,EAAE;IACpC;IACAH,MAAM,CAACC,cAAc,CAACD,MAAM,EAAE,QAAQ,EAAE;MACpCE,KAAK,EAAE,SAASC,MAAMA,CAAC3F,MAAM,EAAE;QAC3B;QACA,IAAIA,MAAM,IAAI,IAAI,EAAE;UAChB;UACA,MAAM,IAAI4F,SAAS,CAAC,4CAA4C,CAAC;QACrE;QAEA,IAAIC,EAAE,GAAGL,MAAM,CAACxF,MAAM,CAAC;QAEvB,KAAK,IAAI8F,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGC,SAAS,CAACC,MAAM,EAAEF,KAAK,EAAE,EAAE;UACnD,IAAIG,UAAU,GAAGF,SAAS,CAACD,KAAK,CAAC;UAEjC,IAAIG,UAAU,IAAI,IAAI,EAAE;YACpB;YACA,KAAK,IAAIC,OAAO,IAAID,UAAU,EAAE;cAC5B;cACA,IAAIT,MAAM,CAACW,SAAS,CAACC,cAAc,CAAC1B,IAAI,CAACuB,UAAU,EAAEC,OAAO,CAAC,EAAE;gBAC3DL,EAAE,CAACK,OAAO,CAAC,GAAGD,UAAU,CAACC,OAAO,CAAC;cACrC;YACJ;UACJ;QACJ;QACA,OAAOL,EAAE;MACb,CAAC;MACDQ,QAAQ,EAAE,IAAI;MACdC,YAAY,EAAE;IAClB,CAAC,CAAC;EACN;EAEA,IAAI,OAAOC,KAAK,CAACC,IAAI,IAAI,UAAU,EAAE;IACjCD,KAAK,CAACC,IAAI,GAAG,UAASC,MAAM,EAAE;MAC1B,OAAO,EAAE,CAACC,KAAK,CAAChC,IAAI,CAAC+B,MAAM,CAAC;IAChC,CAAC;EACL;;EAEA;EACA,IAAIE,YAAY,GAAG,SAASA,YAAYA,CAACC,GAAG,EAAE;IAC1C;IACA,IAAIC,GAAG,GAAG1D,QAAQ,CAAC2D,cAAc,CAACC,kBAAkB,CAAC,EAAE,CAAC;IACxDF,GAAG,CAACG,IAAI,CAACC,SAAS,GAAGL,GAAG;IACxB,OAAOL,KAAK,CAACC,IAAI,CAACK,GAAG,CAACG,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC3C,CAAC;EAED,IAAIC,YAAY,GAAG,SAASA,YAAYA,CAACC,EAAE,EAAEC,IAAI,EAAE;IAC/C,IAAIC,KAAK,GAAGnE,QAAQ,CAACoE,WAAW,CAAC,YAAY,CAAC;IAC9CD,KAAK,CAACE,SAAS,CAACH,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IAClCD,EAAE,CAACK,aAAa,CAACH,KAAK,CAAC;EAC3B,CAAC;EAED,IAAII,eAAe,GAAG,SAASA,eAAeA,CAAA,EAAG;IAE7C;AACR;AACA;AACA;AACA;AACA;IACQ,IAAIC,SAAS,GAAG,SAASA,SAASA,CAACP,EAAE,EAAEvE,OAAO,EAAE;QACxC,IAAI,CAACuE,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACQ,UAAU,GAAG,CAAC;QACnB,IAAI,CAACC,SAAS,GAAG,CAAC;QAClB,IAAI,CAAC7G,MAAM,GAAG;UACV8G,CAAC,EAAE,CAAC;UACJC,CAAC,EAAE;QACP,CAAC;QACD,IAAI,CAACC,aAAa,GAAG;UACjBF,CAAC,EAAE,CAAC;UACJC,CAAC,EAAE;QACP,CAAC;QACD,IAAI,CAAClF,OAAO,GAAG2C,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC9F,QAAQ,EAAEgD,OAAO,CAAC;QACxD,IAAI,CAACoF,WAAW,CAAC,CAAC;QAClB,IAAI,CAACC,UAAU,CAAC,CAAC;QACjB,IAAI,CAACC,MAAM,CAAC,CAAC;;QAEb;QACA;QACA,IAAI,IAAI,CAACC,aAAa,CAAC,IAAI,CAAChB,EAAE,CAAC,EAAE;UAC7B,IAAI,CAACiB,iBAAiB,CAAC,CAAC;UACxB,IAAI,CAACC,YAAY,CAAC,CAAC;QACvB;QAEA,IAAI,CAACC,MAAM,CAAC,CAAC;MACjB,CAAC;MACDC,GAAG,GAAG,SAASA,GAAGA,CAACC,CAAC,EAAEC,CAAC,EAAE;QACrB,OAAOD,CAAC,GAAGC,CAAC;MAChB,CAAC;MACDC,SAAS,GAAG,SAASA,SAASA,CAACjD,KAAK,EAAEkD,QAAQ,EAAE;QAC5C,OAAOlD,KAAK,GAAGkD,QAAQ,GAAG,IAAI,IAAIlD,KAAK,GAAGkD,QAAQ,GAAG,IAAI;MAC7D,CAAC;IAELjB,SAAS,CAACxB,SAAS,GAAG;MAElBtG,QAAQ,EAAE;QACNgJ,aAAa,EAAE,CAAC;QAChBC,aAAa,EAAE,GAAG;QAClBC,iBAAiB,EAAE,GAAG;QACtBC,OAAO,EAAE,CAAC;QACVC,OAAO,EAAE,GAAG;QACZC,iBAAiB,EAAE,KAAK;QACxBC,YAAY,EAAE,KAAK;QACnBC,cAAc,EAAE,KAAK;QACrBC,KAAK,EAAE,IAAI;QACXC,kBAAkB,EAAE,cAAc;QAClCC,mBAAmB,EAAE,eAAe;QACpCC,gBAAgB,EAAE,YAAY;QAC9BC,kBAAkB,EAAE,cAAc;QAClCC,mBAAmB,EAAE,eAAe;QACpCC,gBAAgB,EAAE,YAAY;QAC9BC,kBAAkB,EAAE,cAAc;QAClCC,eAAe,EAAE,CAAC;QAClBC,iBAAiB,EAAE,CAAC;QACpBC,WAAW,EAAE,IAAI;QACjBC,SAAS,EAAE,IAAI;QACfC,YAAY,EAAE,IAAI;QAClBC,WAAW,EAAE,IAAI;QACjBC,SAAS,EAAE,IAAI;QACfC,YAAY,EAAE,IAAI;QAClBC,WAAW,EAAE;MACjB,CAAC;MAED;AACZ;AACA;AACA;MACYC,eAAe,EAAE,SAASA,eAAeA,CAAChD,KAAK,EAAE;QAC7CH,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAAC4G,kBAAkB,CAAC;QACtD,IAAI,OAAO,IAAI,CAAC5G,OAAO,CAACqH,WAAW,IAAI,UAAU,EAAE;UAC/C,IAAI,CAACrH,OAAO,CAACqH,WAAW,CAAC,IAAI,EAAE5C,KAAK,CAAC;QACzC;QACA,IAAI,CAACiD,aAAa,CAAC,CAAC;QACpB,IAAI,CAACC,gBAAgB,GAAG,KAAK;QAC7B,IAAI,CAACC,cAAc,GAAG,IAAI;QAC1B,IAAI,CAACC,UAAU,CAACpD,KAAK,CAAC;MAC1B,CAAC;MAED;AACZ;AACA;AACA;MACYoD,UAAU,EAAE,SAASA,UAAUA,CAACpD,KAAK,EAAE;QACnC,IAAInH,KAAK,GAAG,IAAI,CAACwK,UAAU,CAACrD,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAACsD,IAAI,CAACzK,KAAK,EAAE,IAAI,CAACqK,gBAAgB,CAAC;QACvC,IAAI,CAACxJ,MAAM,GAAG,IAAI,CAAC6J,cAAc,CAAC,IAAI,CAAC7J,MAAM,CAAC;QAC9C,IAAI,CAACwJ,gBAAgB,GAAGrK,KAAK;MACjC,CAAC;MAED2K,aAAa,EAAE,SAASA,aAAaA,CAAA,EAAG;QACpC3D,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAAC8G,gBAAgB,CAAC;QACpD,IAAI,OAAO,IAAI,CAAC9G,OAAO,CAACsH,SAAS,IAAI,UAAU,EAAE;UAC7C,IAAI,CAACtH,OAAO,CAACsH,SAAS,CAAC,IAAI,EAAE7C,KAAK,CAAC;QACvC;QACA,IAAI,CAACyD,GAAG,CAAC,CAAC;MACd,CAAC;MAED;AACZ;AACA;AACA;MACYC,eAAe,EAAE,SAASA,eAAeA,CAAC1D,KAAK,EAAE;QAC7CH,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAACyG,kBAAkB,CAAC;QACtD,IAAI,OAAO,IAAI,CAACzG,OAAO,CAACkH,WAAW,IAAI,UAAU,EAAE;UAC/C,IAAI,CAAClH,OAAO,CAACkH,WAAW,CAAC,IAAI,EAAEzC,KAAK,CAAC;QACzC;QACA,IAAI,CAACiD,aAAa,CAAC,CAAC;QACpB,IAAI,CAAC1C,SAAS,GAAG,CAAC;QAClB,IAAI,CAACoD,OAAO,GAAG,CAAC;QAChB,IAAI,CAACC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAACT,cAAc,GAAG,IAAI;MAC9B,CAAC;MAED;AACZ;AACA;AACA;MACYU,UAAU,EAAE,SAASA,UAAUA,CAAC7D,KAAK,EAAE8D,QAAQ,EAAE;QAC7C;QACA,IAAIC,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,IAAI,CAACX,UAAU,CAACrD,KAAK,CAAC,CAAC;UACzDiE,KAAK,GAAGH,QAAQ,GAAG,IAAI,CAACvD,SAAS;QACrC,IAAI,CAACA,SAAS,GAAGuD,QAAQ;;QAEzB;QACA,IAAI,CAACH,OAAO,IAAI,CAAC;QACjB,IAAI,IAAI,CAACA,OAAO,GAAG,CAAC,EAAE;UAElB,IAAI,CAACM,KAAK,CAACA,KAAK,EAAEF,WAAW,CAAC;UAC9B,IAAI,CAACT,IAAI,CAACS,WAAW,EAAE,IAAI,CAACH,cAAc,CAAC;QAC/C;QACA,IAAI,CAACA,cAAc,GAAGG,WAAW;MACrC,CAAC;MAEDG,aAAa,EAAE,SAASA,aAAaA,CAAA,EAAG;QACpCrE,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAAC2G,gBAAgB,CAAC;QACpD,IAAI,OAAO,IAAI,CAAC3G,OAAO,CAACmH,SAAS,IAAI,UAAU,EAAE;UAC7C,IAAI,CAACnH,OAAO,CAACmH,SAAS,CAAC,IAAI,EAAE1C,KAAK,CAAC;QACvC;QACA,IAAI,CAACyD,GAAG,CAAC,CAAC;MACd,CAAC;MAED;AACZ;AACA;AACA;MACYU,eAAe,EAAE,SAASA,eAAeA,CAACnE,KAAK,EAAE;QAC7C,IAAIoE,MAAM,GAAG,IAAI,CAACf,UAAU,CAACrD,KAAK,CAAC,CAAC,CAAC,CAAC;UAClCM,UAAU,GAAG,IAAI,CAACA,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC/E,OAAO,CAACgG,aAAa;UACjE8C,eAAe,GAAG,IAAI,CAAC/D,UAAU;UACjCgE,cAAc,GAAG,UAASC,QAAQ,EAAE;YAChC,IAAI,CAACC,OAAO,CAACH,eAAe,GAAGE,QAAQ,IAAIjE,UAAU,GAAG+D,eAAe,CAAC,EAAED,MAAM,CAAC;UACrF,CAAC,CAACzH,IAAI,CAAC,IAAI,CAAC;QAEhB,IAAI,IAAI,CAACwG,cAAc,EAAE;UACrB;QACJ;QAEA,IAAI,CAACsB,WAAW,GAAG,IAAI;QAEvB,IAAIJ,eAAe,GAAG/D,UAAU,EAAE;UAC9B8D,MAAM,GAAG,IAAI,CAACM,oBAAoB,CAAC,CAAC;QACxC;QAEA,IAAI,CAACC,OAAO,CAAC,IAAI,CAACpJ,OAAO,CAACkG,iBAAiB,EAAE6C,cAAc,EAAE,IAAI,CAACM,KAAK,CAAC;QACxE/E,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAAC+G,kBAAkB,CAAC;QACtD,IAAI,OAAO,IAAI,CAAC/G,OAAO,CAACwH,WAAW,IAAI,UAAU,EAAE;UAC/C,IAAI,CAACxH,OAAO,CAACwH,WAAW,CAAC,IAAI,EAAE/C,KAAK,CAAC;QACzC;MACJ,CAAC;MAED;AACZ;AACA;AACA;AACA;MACY6E,oBAAoB,EAAE,SAASA,oBAAoBA,CAAA,EAAG;QAClD,IAAI,CAACnE,aAAa,GAAG;UACjBF,CAAC,EAAE,CAACrF,IAAI,CAAC2J,GAAG,CAAC,IAAI,CAAChF,EAAE,CAACiF,WAAW,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAACC,SAAS,CAACF,WAAW,CAAC,GAAG,CAAC;UAChGtE,CAAC,EAAE,CAACtF,IAAI,CAAC2J,GAAG,CAAC,IAAI,CAAChF,EAAE,CAACoF,YAAY,GAAG,IAAI,CAACF,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAACC,SAAS,CAACC,YAAY,CAAC,GAAG;QACrG,CAAC;MACL,CAAC;MAED;AACZ;AACA;MACYC,WAAW,EAAE,SAASA,WAAWA,CAAA,EAAG;QAChC,IAAI,CAACzL,MAAM,CAAC8G,CAAC,GAAG,IAAI,CAACE,aAAa,CAACF,CAAC;QACpC,IAAI,CAAC9G,MAAM,CAAC+G,CAAC,GAAG,IAAI,CAACC,aAAa,CAACD,CAAC;MACxC,CAAC;MAED;AACZ;AACA;MACYK,aAAa,EAAE,SAASA,aAAaA,CAAChB,EAAE,EAAE;QACtC,IAAIA,EAAE,CAACsF,QAAQ,KAAK,KAAK,EAAE;UACvB,OAAOtF,EAAE,CAACuF,QAAQ,IAAIvF,EAAE,CAACwF,aAAa,KAAK,CAAC;QAChD,CAAC,MAAM;UACH,OAAOrG,KAAK,CAACC,IAAI,CAACY,EAAE,CAACyF,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC1E,aAAa,CAAC;QAC3E;MACJ,CAAC;MAEDE,YAAY,EAAE,SAASA,YAAYA,CAAA,EAAG;QAClC,IAAI,IAAI,CAACzF,OAAO,CAACuG,cAAc,IAAI,IAAI,CAAC2D,aAAa,EAAE;UACnD;QACJ;QAEA,IAAI,CAACA,aAAa,GAAG,IAAI;QAEzB,IAAI,CAACZ,oBAAoB,CAAC,CAAC;QAC3B,IAAI,CAACM,WAAW,CAAC,CAAC;MACtB,CAAC;MAED;AACZ;AACA;AACA;AACA;MACY5B,cAAc,EAAE,SAASA,cAAcA,CAAC7J,MAAM,EAAE;QAC5C,IAAIgM,OAAO,GAAG,IAAI,CAAC5F,EAAE,CAACiF,WAAW,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC1E,UAAU;QACjF,IAAIqF,QAAQ,GAAG,IAAI,CAAC7F,EAAE,CAACoF,YAAY,GAAG,IAAI,CAACF,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC1E,UAAU;QACnF,IAAIsF,IAAI,GAAGF,OAAO,GAAG,IAAI,CAACG,aAAa,CAAC,CAAC,GAAG,IAAI,CAACtK,OAAO,CAACiH,iBAAiB;UACtEsD,IAAI,GAAGH,QAAQ,GAAG,IAAI,CAACI,aAAa,CAAC,CAAC,GAAG,IAAI,CAACxK,OAAO,CAACgH,eAAe;UACrEyD,UAAU,GAAG7K,IAAI,CAACC,GAAG,CAACwK,IAAI,EAAE,CAAC,CAAC;UAC9BK,UAAU,GAAG9K,IAAI,CAACC,GAAG,CAAC0K,IAAI,EAAE,CAAC,CAAC;UAC9BI,UAAU,GAAG/K,IAAI,CAACE,GAAG,CAACuK,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAACrK,OAAO,CAACiH,iBAAiB;UAC/D2D,UAAU,GAAGhL,IAAI,CAACE,GAAG,CAACyK,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAACvK,OAAO,CAACgH,eAAe;QAEjE,OAAO;UACH/B,CAAC,EAAErF,IAAI,CAACE,GAAG,CAACF,IAAI,CAACC,GAAG,CAAC1B,MAAM,CAAC8G,CAAC,EAAE0F,UAAU,CAAC,EAAEF,UAAU,CAAC;UACvDvF,CAAC,EAAEtF,IAAI,CAACE,GAAG,CAACF,IAAI,CAACC,GAAG,CAAC1B,MAAM,CAAC+G,CAAC,EAAE0F,UAAU,CAAC,EAAEF,UAAU;QAC1D,CAAC;MACL,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYzB,OAAO,EAAE,SAASA,OAAOA,CAAClE,UAAU,EAAE8D,MAAM,EAAE;QAC1C,IAAI,CAACH,KAAK,CAAC3D,UAAU,GAAG,IAAI,CAACA,UAAU,EAAE8D,MAAM,CAAC;MACpD,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYH,KAAK,EAAE,SAASA,KAAKA,CAACmC,MAAM,EAAEhC,MAAM,EAAE;QAClCgC,MAAM,GAAG,IAAI,CAACC,eAAe,CAACD,MAAM,CAAC;QACrC,IAAI,CAACE,SAAS,CAAC;UACX9F,CAAC,EAAE,CAAC4F,MAAM,GAAG,CAAC,KAAKhC,MAAM,CAAC5D,CAAC,GAAG,IAAI,CAAC9G,MAAM,CAAC8G,CAAC,CAAC;UAC5CC,CAAC,EAAE,CAAC2F,MAAM,GAAG,CAAC,KAAKhC,MAAM,CAAC3D,CAAC,GAAG,IAAI,CAAC/G,MAAM,CAAC+G,CAAC;QAC/C,CAAC,CAAC;QACFZ,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAAC0G,mBAAmB,CAAC;QACvD,IAAI,OAAO,IAAI,CAAC1G,OAAO,CAACoH,YAAY,IAAI,UAAU,EAAE;UAChD,IAAI,CAACpH,OAAO,CAACoH,YAAY,CAAC,IAAI,EAAE3C,KAAK,CAAC;QAC1C;MACJ,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYqG,eAAe,EAAE,SAASA,eAAeA,CAACpC,KAAK,EAAE;QAC7C,IAAIsC,kBAAkB,GAAG,IAAI,CAACjG,UAAU;QACxC,IAAI,CAACA,UAAU,IAAI2D,KAAK;QACxB,IAAI,CAAC3D,UAAU,GAAGnF,IAAI,CAACE,GAAG,CAAC,IAAI,CAACE,OAAO,CAACmG,OAAO,EAAEvG,IAAI,CAACC,GAAG,CAAC,IAAI,CAACkF,UAAU,EAAE,IAAI,CAAC/E,OAAO,CAACoG,OAAO,CAAC,CAAC;QACjG,OAAO,IAAI,CAACrB,UAAU,GAAGiG,kBAAkB;MAC/C,CAAC;MAED;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;MACYC,OAAO,EAAE,SAASA,OAAOA,CAAA,EAAG;QACxB,OAAO,IAAI,CAACjL,OAAO,CAACqG,iBAAiB,IAAI,CAACP,SAAS,CAAC,IAAI,CAACf,UAAU,EAAE,CAAC,CAAC;MAC3E,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYgD,IAAI,EAAE,SAASA,IAAIA,CAACc,MAAM,EAAEqC,UAAU,EAAE;QACpC,IAAIA,UAAU,EAAE;UACZ,IAAI,IAAI,CAAClL,OAAO,CAACsG,YAAY,EAAE;YAC3B;YACA,IAAI1G,IAAI,CAAC2J,GAAG,CAACV,MAAM,CAAC5D,CAAC,GAAGiG,UAAU,CAACjG,CAAC,CAAC,GAAGrF,IAAI,CAAC2J,GAAG,CAACV,MAAM,CAAC3D,CAAC,GAAGgG,UAAU,CAAChG,CAAC,CAAC,EAAE;cACvE,IAAI,CAAC6F,SAAS,CAAC;gBACX9F,CAAC,EAAE,EAAE4D,MAAM,CAAC5D,CAAC,GAAGiG,UAAU,CAACjG,CAAC,CAAC;gBAC7BC,CAAC,EAAE;cACP,CAAC,CAAC;YACN,CAAC,MAAM;cACH,IAAI,CAAC6F,SAAS,CAAC;gBACX7F,CAAC,EAAE,EAAE2D,MAAM,CAAC3D,CAAC,GAAGgG,UAAU,CAAChG,CAAC,CAAC;gBAC7BD,CAAC,EAAE;cACP,CAAC,CAAC;YACN;UACJ,CAAC,MAAM;YACH,IAAI,CAAC8F,SAAS,CAAC;cACX7F,CAAC,EAAE,EAAE2D,MAAM,CAAC3D,CAAC,GAAGgG,UAAU,CAAChG,CAAC,CAAC;cAC7BD,CAAC,EAAE,EAAE4D,MAAM,CAAC5D,CAAC,GAAGiG,UAAU,CAACjG,CAAC;YAChC,CAAC,CAAC;UACN;UACAX,YAAY,CAAC,IAAI,CAACC,EAAE,EAAE,IAAI,CAACvE,OAAO,CAAC6G,mBAAmB,CAAC;UACvD,IAAI,OAAO,IAAI,CAAC7G,OAAO,CAACuH,YAAY,IAAI,UAAU,EAAE;YAChD,IAAI,CAACvH,OAAO,CAACuH,YAAY,CAAC,IAAI,EAAE9C,KAAK,CAAC;UAC1C;QACJ;MACJ,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYgE,cAAc,EAAE,SAASA,cAAcA,CAACxG,OAAO,EAAE;QAC7C,OAAO,IAAI,CAACkJ,YAAY,CAAClJ,OAAO,CAAC;MACrC,CAAC;MAED;AACZ;AACA;MACYkJ,YAAY,EAAE,SAASA,YAAYA,CAACC,OAAO,EAAE;QACzC,OAAO;UACHnG,CAAC,EAAEmG,OAAO,CAACC,GAAG,CAAC,UAASC,CAAC,EAAE;YACvB,OAAOA,CAAC,CAACrG,CAAC;UACd,CAAC,CAAC,CAACsG,MAAM,CAAC5F,GAAG,CAAC,GAAGyF,OAAO,CAACjI,MAAM;UAC/B+B,CAAC,EAAEkG,OAAO,CAACC,GAAG,CAAC,UAASC,CAAC,EAAE;YACvB,OAAOA,CAAC,CAACpG,CAAC;UACd,CAAC,CAAC,CAACqG,MAAM,CAAC5F,GAAG,CAAC,GAAGyF,OAAO,CAACjI;QAC7B,CAAC;MACL,CAAC;MAED;AACZ;AACA;AACA;AACA;MACY4H,SAAS,EAAE,SAASA,SAASA,CAAC5M,MAAM,EAAE;QAClC,IAAI,CAACA,MAAM,GAAG;UACV8G,CAAC,EAAE,IAAI,CAAC9G,MAAM,CAAC8G,CAAC,GAAG9G,MAAM,CAAC8G,CAAC;UAC3BC,CAAC,EAAE,IAAI,CAAC/G,MAAM,CAAC+G,CAAC,GAAG/G,MAAM,CAAC+G;QAC9B,CAAC;MACL,CAAC;MAEDsG,QAAQ,EAAE,SAASA,QAAQA,CAAA,EAAG;QAC1B,IAAI,IAAI,CAACzG,UAAU,GAAG,IAAI,CAAC/E,OAAO,CAACiG,aAAa,EAAE;UAC9C,IAAI,CAACwF,gBAAgB,CAAC,CAAC;QAC3B,CAAC,MAAM,IAAI,IAAI,CAACC,cAAc,CAAC,IAAI,CAACvN,MAAM,CAAC,EAAE;UACzC,IAAI,CAACwN,uBAAuB,CAAC,CAAC;QAClC;MACJ,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYD,cAAc,EAAE,SAASA,cAAcA,CAACvN,MAAM,EAAE;QAC5C,IAAIyN,eAAe,GAAG,IAAI,CAAC5D,cAAc,CAAC7J,MAAM,CAAC;QACjD,OAAOyN,eAAe,CAAC3G,CAAC,KAAK9G,MAAM,CAAC8G,CAAC,IAAI2G,eAAe,CAAC1G,CAAC,KAAK/G,MAAM,CAAC+G,CAAC;MAC3E,CAAC;MAED;AACZ;AACA;MACYyG,uBAAuB,EAAE,SAASA,uBAAuBA,CAAA,EAAG;QACxD,IAAIE,YAAY,GAAG,IAAI,CAAC7D,cAAc,CAAC,IAAI,CAAC7J,MAAM,CAAC;UAC/C2N,WAAW,GAAG;YACV7G,CAAC,EAAE,IAAI,CAAC9G,MAAM,CAAC8G,CAAC;YAChBC,CAAC,EAAE,IAAI,CAAC/G,MAAM,CAAC+G;UACnB,CAAC;UACD6D,cAAc,GAAG,UAASC,QAAQ,EAAE;YAChC,IAAI,CAAC7K,MAAM,CAAC8G,CAAC,GAAG6G,WAAW,CAAC7G,CAAC,GAAG+D,QAAQ,IAAI6C,YAAY,CAAC5G,CAAC,GAAG6G,WAAW,CAAC7G,CAAC,CAAC;YAC3E,IAAI,CAAC9G,MAAM,CAAC+G,CAAC,GAAG4G,WAAW,CAAC5G,CAAC,GAAG8D,QAAQ,IAAI6C,YAAY,CAAC3G,CAAC,GAAG4G,WAAW,CAAC5G,CAAC,CAAC;YAC3E,IAAI,CAACI,MAAM,CAAC,CAAC;UACjB,CAAC,CAAClE,IAAI,CAAC,IAAI,CAAC;QAEhB,IAAI,CAACgI,OAAO,CAAC,IAAI,CAACpJ,OAAO,CAACkG,iBAAiB,EAAE6C,cAAc,EAAE,IAAI,CAACM,KAAK,CAAC;MAC5E,CAAC;MAED;AACZ;AACA;AACA;MACYoC,gBAAgB,EAAE,SAASA,gBAAgBA,CAAA,EAAG;QAC1C,IAAI,IAAI,CAAC1G,UAAU,KAAK,CAAC,EAAE;UACvB;QACJ;QAEA,IAAI+D,eAAe,GAAG,IAAI,CAAC/D,UAAU;UACjCA,UAAU,GAAG,CAAC;UACd8D,MAAM,GAAG,IAAI,CAACM,oBAAoB,CAAC,CAAC;UACpCJ,cAAc,GAAG,UAASC,QAAQ,EAAE;YAChC,IAAI,CAACC,OAAO,CAACH,eAAe,GAAGE,QAAQ,IAAIjE,UAAU,GAAG+D,eAAe,CAAC,EAAED,MAAM,CAAC;UACrF,CAAC,CAACzH,IAAI,CAAC,IAAI,CAAC;QAEhB,IAAI,CAACgI,OAAO,CAAC,IAAI,CAACpJ,OAAO,CAACkG,iBAAiB,EAAE6C,cAAc,EAAE,IAAI,CAACM,KAAK,CAAC;MAC5E,CAAC;MAED;AACZ;AACA;AACA;AACA;AACA;MACY7D,iBAAiB,EAAE,SAASA,iBAAiBA,CAAA,EAAG;QAC5C,IAAI,CAACuG,eAAe,CAAC,CAAC;QACtB,IAAI,CAACC,aAAa,CAAC,IAAI,CAACtC,SAAS,CAAClI,aAAa,CAACmI,YAAY,CAAC;MACjE,CAAC;MAED;AACZ;AACA;AACA;MACYF,oBAAoB,EAAE,SAASA,oBAAoBA,CAAA,EAAG;QAClD,IAAIwC,WAAW,GAAG,IAAI,CAACvC,SAAS,CAACF,WAAW,GAAG,IAAI,CAACjF,EAAE,CAACiF,WAAW;QAClE,IAAI0C,WAAW,GAAG,IAAI,CAACxC,SAAS,CAACC,YAAY,GAAG,IAAI,CAACpF,EAAE,CAACoF,YAAY;QAEpE,OAAO/J,IAAI,CAACE,GAAG,CAACmM,WAAW,EAAEC,WAAW,CAAC;MAC7C,CAAC;MAED;AACZ;AACA;AACA;MACYC,cAAc,EAAE,SAASA,cAAcA,CAAA,EAAG;QACtC,OAAO,IAAI,CAAC5H,EAAE,CAACiF,WAAW,GAAG,IAAI,CAACjF,EAAE,CAACoF,YAAY;MACrD,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYR,oBAAoB,EAAE,SAASA,oBAAoBA,CAAA,EAAG;QAClD,IAAIiD,UAAU,GAAG,IAAI,CAACjO,MAAM,CAAC8G,CAAC,GAAG,IAAI,CAACE,aAAa,CAACF,CAAC;QACrD,IAAIoH,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAClO,MAAM,CAAC8G,CAAC,GAAGmH,UAAU,IAAI,CAAC,GAAG,IAAI,CAACrH,UAAU,GAAG,CAAC,CAAC;QAEzE,IAAIuH,SAAS,GAAG,IAAI,CAACnO,MAAM,CAAC+G,CAAC,GAAG,IAAI,CAACC,aAAa,CAACD,CAAC;QACpD,IAAIqH,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAACpO,MAAM,CAAC+G,CAAC,GAAGoH,SAAS,IAAI,CAAC,GAAG,IAAI,CAACvH,UAAU,GAAG,CAAC,CAAC;QAExE,OAAO;UACHE,CAAC,EAAEoH,OAAO;UACVnH,CAAC,EAAEqH;QACP,CAAC;MACL,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYzE,UAAU,EAAE,SAASA,UAAUA,CAACrD,KAAK,EAAE;QACnC,IAAI+H,IAAI,GAAG,IAAI,CAAC9C,SAAS,CAAC+C,qBAAqB,CAAC,CAAC;QACjD,IAAIC,SAAS,GAAGpM,QAAQ,CAACqM,eAAe,CAACD,SAAS,IAAIpM,QAAQ,CAAC6D,IAAI,CAACuI,SAAS;QAC7E,IAAIE,UAAU,GAAGtM,QAAQ,CAACqM,eAAe,CAACC,UAAU,IAAItM,QAAQ,CAAC6D,IAAI,CAACyI,UAAU;QAChF,IAAIC,MAAM,GAAGL,IAAI,CAAC1N,GAAG,GAAG4N,SAAS;QACjC,IAAII,OAAO,GAAGN,IAAI,CAACzN,IAAI,GAAG6N,UAAU;QAEpC,OAAOlJ,KAAK,CAACJ,SAAS,CAACO,KAAK,CAAChC,IAAI,CAAC4C,KAAK,CAACxC,OAAO,CAAC,CAACoJ,GAAG,CAAC,UAAS/N,KAAK,EAAE;UACjE,OAAO;YACH2H,CAAC,EAAE3H,KAAK,CAACoC,KAAK,GAAGoN,OAAO;YACxB5H,CAAC,EAAE5H,KAAK,CAACqC,KAAK,GAAGkN;UACrB,CAAC;QACL,CAAC,CAAC;MACN,CAAC;MAED;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;MACYzD,OAAO,EAAE,SAASA,OAAOA,CAAChM,QAAQ,EAAE2P,OAAO,EAAEC,MAAM,EAAE9P,QAAQ,EAAE;QAC3D,IAAI+P,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;UAChCC,WAAW,GAAG,YAAW;YACrB,IAAI,CAAC,IAAI,CAACC,WAAW,EAAE;cACnB;YACJ;YACA,IAAIC,SAAS,GAAG,IAAIJ,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAGF,SAAS;cAC5CjE,QAAQ,GAAGsE,SAAS,GAAGlQ,QAAQ;YACnC,IAAIkQ,SAAS,IAAIlQ,QAAQ,EAAE;cACvB2P,OAAO,CAAC,CAAC,CAAC;cACV,IAAI7P,QAAQ,EAAE;gBACVA,QAAQ,CAAC,CAAC;cACd;cACA,IAAI,CAACoI,MAAM,CAAC,CAAC;cACb,IAAI,CAACoC,aAAa,CAAC,CAAC;cACpB,IAAI,CAACpC,MAAM,CAAC,CAAC;YACjB,CAAC,MAAM;cACH,IAAI0H,MAAM,EAAE;gBACRhE,QAAQ,GAAGgE,MAAM,CAAChE,QAAQ,CAAC;cAC/B;cACA+D,OAAO,CAAC/D,QAAQ,CAAC;cACjB,IAAI,CAAC1D,MAAM,CAAC,CAAC;cACbiI,qBAAqB,CAACH,WAAW,CAAC;YACtC;UACJ,CAAC,CAAChM,IAAI,CAAC,IAAI,CAAC;QAChB,IAAI,CAACiM,WAAW,GAAG,IAAI;QACvBE,qBAAqB,CAACH,WAAW,CAAC;MACtC,CAAC;MAED;AACZ;AACA;MACY1F,aAAa,EAAE,SAASA,aAAaA,CAAA,EAAG;QACpC,IAAI,CAAC2F,WAAW,GAAG,KAAK;MAC5B,CAAC;MAED;AACZ;AACA;AACA;AACA;MACYhE,KAAK,EAAE,SAASA,KAAKA,CAACmE,CAAC,EAAE;QACrB,OAAO,CAAC5N,IAAI,CAAC6N,GAAG,CAACD,CAAC,GAAG5N,IAAI,CAAC8N,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG;MAC3C,CAAC;MAEDpD,aAAa,EAAE,SAASA,aAAaA,CAAA,EAAG;QACpC,OAAO,IAAI,CAACZ,SAAS,CAACF,WAAW;MACrC,CAAC;MAEDgB,aAAa,EAAE,SAASA,aAAaA,CAAA,EAAG;QACpC,OAAO,IAAI,CAACd,SAAS,CAACC,YAAY;MACtC,CAAC;MAEDqC,aAAa,EAAE,SAASA,aAAaA,CAAC9G,CAAC,EAAE;QACrC,OAAO,IAAI,CAACwE,SAAS,CAAClL,KAAK,CAACI,MAAM,GAAGsG,CAAC,GAAG,IAAI;MACjD,CAAC;MAED6G,eAAe,EAAE,SAASA,eAAeA,CAAA,EAAG;QACxC,IAAI,CAACrC,SAAS,CAAClL,KAAK,CAACI,MAAM,GAAG,IAAI;MACtC,CAAC;MAED;AACZ;AACA;MACYwG,WAAW,EAAE,SAASA,WAAWA,CAAA,EAAG;QAChC,IAAI,CAACsE,SAAS,GAAG5F,YAAY,CAAC,0CAA0C,CAAC;QACzE,IAAI,CAACS,EAAE,CAACoJ,UAAU,CAACC,YAAY,CAAC,IAAI,CAAClE,SAAS,EAAE,IAAI,CAACnF,EAAE,CAAC;QACxD,IAAI,CAACmF,SAAS,CAACmE,WAAW,CAAC,IAAI,CAACtJ,EAAE,CAAC;QAEnC,IAAI,CAACmF,SAAS,CAAClL,KAAK,CAACE,QAAQ,GAAG,QAAQ;QACxC,IAAI,CAACgL,SAAS,CAAClL,KAAK,CAACH,QAAQ,GAAG,UAAU;QAE1C,IAAI,CAACkG,EAAE,CAAC/F,KAAK,CAACsP,qBAAqB,GAAG,OAAO;QAC7C,IAAI,CAACvJ,EAAE,CAAC/F,KAAK,CAACuP,kBAAkB,GAAG,OAAO;QAC1C,IAAI,CAACxJ,EAAE,CAAC/F,KAAK,CAACwP,iBAAiB,GAAG,OAAO;QACzC,IAAI,CAACzJ,EAAE,CAAC/F,KAAK,CAACyP,gBAAgB,GAAG,OAAO;QACxC,IAAI,CAAC1J,EAAE,CAAC/F,KAAK,CAAC0P,eAAe,GAAG,OAAO;QAEvC,IAAI,CAAC3J,EAAE,CAAC/F,KAAK,CAACH,QAAQ,GAAG,UAAU;MACvC,CAAC;MAED6J,GAAG,EAAE,SAASA,GAAGA,CAAA,EAAG;QAChB,IAAI,CAACN,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC4D,QAAQ,CAAC,CAAC;QACf,IAAI,CAAClG,MAAM,CAAC,CAAC;MACjB,CAAC;MAED;AACZ;AACA;MACYD,UAAU,EAAE,SAASA,UAAUA,CAAA,EAAG;QAC9B,IAAI8I,IAAI,GAAG,IAAI;QACfC,cAAc,CAAC,IAAI,CAAC1E,SAAS,EAAE,IAAI,CAAC;QAEpCrH,MAAM,CAACgM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC/I,MAAM,CAAClE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzDsC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACY,EAAE,CAACyF,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAACsE,OAAO,CAAC,UAASC,KAAK,EAAE;UAChEA,KAAK,CAACF,gBAAgB,CAAC,MAAM,EAAEF,IAAI,CAAC7I,MAAM,CAAClE,IAAI,CAAC+M,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC5J,EAAE,CAACsF,QAAQ,KAAK,KAAK,EAAE;UAC5B,IAAI,CAACtF,EAAE,CAAC8J,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC/I,MAAM,CAAClE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D;MACJ,CAAC;MAED;AACZ;AACA;MACYkE,MAAM,EAAE,SAASA,MAAMA,CAACb,KAAK,EAAE;QAC3B,IAAI,IAAI,CAAC+J,YAAY,EAAE;UACnB;QACJ;QACA,IAAI,CAACA,YAAY,GAAG,IAAI;QAExBnM,MAAM,CAACoM,UAAU,CAAC,YAAW;UACzB,IAAI,CAACD,YAAY,GAAG,KAAK;UAEzB,IAAI/J,KAAK,IAAIA,KAAK,CAACiK,IAAI,KAAK,QAAQ,EAAE;YAClC,IAAI,CAAClJ,iBAAiB,CAAC,CAAC;YACxB,IAAI,CAACC,YAAY,CAAC,CAAC;UACvB;UAEA,IAAIhB,KAAK,IAAIA,KAAK,CAACiK,IAAI,KAAK,MAAM,EAAE;YAChC,IAAI,CAAClJ,iBAAiB,CAAC,CAAC;YACxB,IAAI,CAACC,YAAY,CAAC,CAAC;UACvB;UAEA,IAAIV,UAAU,GAAG,IAAI,CAAC0E,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC1E,UAAU;YAC1D4J,OAAO,GAAG,CAAC,IAAI,CAACxQ,MAAM,CAAC8G,CAAC,GAAGF,UAAU;YACrC6J,OAAO,GAAG,CAAC,IAAI,CAACzQ,MAAM,CAAC+G,CAAC,GAAGH,UAAU;YACrC8J,WAAW,GAAG,UAAU,GAAG9J,UAAU,GAAG,IAAI,GAAGA,UAAU,GAAG,MAAM,GAAG,cAAc,GAAG4J,OAAO,GAAG,KAAK,GAAGC,OAAO,GAAG,SAAS;YAC3HE,WAAW,GAAG,QAAQ,GAAG/J,UAAU,GAAG,IAAI,GAAGA,UAAU,GAAG,IAAI,GAAG,YAAY,GAAG4J,OAAO,GAAG,KAAK,GAAGC,OAAO,GAAG,KAAK;YACjHG,WAAW,GAAG,YAAW;cACrB,IAAI,IAAI,CAACC,KAAK,EAAE;gBACZ,IAAI,CAACA,KAAK,CAACrB,UAAU,CAACsB,WAAW,CAAC,IAAI,CAACD,KAAK,CAAC;gBAC7C,OAAO,IAAI,CAACA,KAAK;cACrB;YACJ,CAAC,CAAC5N,IAAI,CAAC,IAAI,CAAC;;UAEhB;UACA;UACA;UACA;UACA,IAAI,CAAC,IAAI,CAACpB,OAAO,CAACwG,KAAK,IAAI,IAAI,CAACoB,cAAc,IAAI,IAAI,CAACyF,WAAW,EAAE;YAChE,IAAI,CAAC6B,IAAI,GAAG,IAAI;YAChBH,WAAW,CAAC,CAAC;YAEb,IAAI,CAACxK,EAAE,CAAC/F,KAAK,CAAC2Q,eAAe,GAAGN,WAAW;YAC3C,IAAI,CAACtK,EAAE,CAAC/F,KAAK,CAAC4Q,YAAY,GAAGN,WAAW;YACxC,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC6Q,WAAW,GAAGP,WAAW;YACvC,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC8Q,UAAU,GAAGR,WAAW;YACtC,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC+Q,SAAS,GAAGV,WAAW;UACzC,CAAC,MAAM;YACH;YACA;YACA;YACA,IAAI,IAAI,CAACK,IAAI,EAAE;cACX,IAAI,CAACF,KAAK,GAAG,IAAI,CAACzK,EAAE,CAACiL,SAAS,CAAC,IAAI,CAAC;cACpC,IAAI,CAACR,KAAK,CAACxQ,KAAK,CAACiR,aAAa,GAAG,MAAM;cACvC,IAAI,CAAC/F,SAAS,CAACmE,WAAW,CAAC,IAAI,CAACmB,KAAK,CAAC;cACtC3M,MAAM,CAACoM,UAAU,CAACM,WAAW,EAAE,GAAG,CAAC;YACvC;YAEA,IAAI,CAACxK,EAAE,CAAC/F,KAAK,CAAC2Q,eAAe,GAAGL,WAAW;YAC3C,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC4Q,YAAY,GAAGN,WAAW;YACxC,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC6Q,WAAW,GAAGP,WAAW;YACvC,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC8Q,UAAU,GAAGR,WAAW;YACtC,IAAI,CAACvK,EAAE,CAAC/F,KAAK,CAAC+Q,SAAS,GAAGT,WAAW;YAErC,IAAI,CAACI,IAAI,GAAG,KAAK;UACrB;QACJ,CAAC,CAAC9N,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MACpB,CAAC;MAED;AACZ;AACA;MACYsE,MAAM,EAAE,SAASA,MAAMA,CAAA,EAAG;QACtB,IAAI,CAACgK,OAAO,GAAG,IAAI;MACvB,CAAC;MAED;AACZ;AACA;MACYC,OAAO,EAAE,SAASA,OAAOA,CAAA,EAAG;QACxB,IAAI,CAACD,OAAO,GAAG,KAAK;MACxB;IACJ,CAAC;IAED,IAAItB,cAAc,GAAG,SAASA,cAAcA,CAAC7J,EAAE,EAAEpH,MAAM,EAAE;MACrD,IAAIyS,WAAW,GAAG,IAAI;QAClBC,OAAO,GAAG,CAAC;QACX;QACAC,YAAY,GAAG,IAAI;QACnBC,cAAc,GAAG,SAASA,cAAcA,CAACC,cAAc,EAAEvL,KAAK,EAAE;UAC5D,IAAImL,WAAW,KAAKI,cAAc,EAAE;YAEhC,IAAIJ,WAAW,IAAI,CAACI,cAAc,EAAE;cAChC,QAAQJ,WAAW;gBACnB,KAAK,MAAM;kBACPzS,MAAM,CAACwL,aAAa,CAAClE,KAAK,CAAC;kBAC3B;gBACJ,KAAK,MAAM;kBACPtH,MAAM,CAAC8K,aAAa,CAACxD,KAAK,CAAC;kBAC3B;cACJ;YACJ;YAEA,QAAQuL,cAAc;cACtB,KAAK,MAAM;gBACP7S,MAAM,CAACgL,eAAe,CAAC1D,KAAK,CAAC;gBAC7B;cACJ,KAAK,MAAM;gBACPtH,MAAM,CAACsK,eAAe,CAAChD,KAAK,CAAC;gBAC7B;YACJ;UACJ;UACAmL,WAAW,GAAGI,cAAc;QAChC,CAAC;QACDC,iBAAiB,GAAG,SAASA,iBAAiBA,CAACxL,KAAK,EAAE;UAClD,IAAIoL,OAAO,KAAK,CAAC,EAAE;YACfE,cAAc,CAAC,MAAM,CAAC;UAC1B,CAAC,MAAM,IAAIF,OAAO,KAAK,CAAC,IAAI1S,MAAM,CAAC8N,OAAO,CAAC,CAAC,EAAE;YAC1C8E,cAAc,CAAC,MAAM,EAAEtL,KAAK,CAAC;UACjC,CAAC,MAAM;YACHsL,cAAc,CAAC,IAAI,EAAEtL,KAAK,CAAC;UAC/B;QACJ,CAAC;QACDyL,aAAa,GAAG,SAASA,aAAaA,CAACjO,OAAO,EAAE;UAC5C,OAAOyB,KAAK,CAACC,IAAI,CAAC1B,OAAO,CAAC,CAACoJ,GAAG,CAAC,UAAS/N,KAAK,EAAE;YAC3C,OAAO;cACH2H,CAAC,EAAE3H,KAAK,CAACoC,KAAK;cACdwF,CAAC,EAAE5H,KAAK,CAACqC;YACb,CAAC;UACL,CAAC,CAAC;QACN,CAAC;QACDwQ,WAAW,GAAG,SAASA,WAAWA,CAACvK,CAAC,EAAEC,CAAC,EAAE;UACrC,IAAIZ,CAAC,EACDC,CAAC;UACLD,CAAC,GAAGW,CAAC,CAACX,CAAC,GAAGY,CAAC,CAACZ,CAAC;UACbC,CAAC,GAAGU,CAAC,CAACV,CAAC,GAAGW,CAAC,CAACX,CAAC;UACb,OAAOtF,IAAI,CAACwQ,IAAI,CAACnL,CAAC,GAAGA,CAAC,GAAGC,CAAC,GAAGA,CAAC,CAAC;QACnC,CAAC;QACDmL,cAAc,GAAG,SAASA,cAAcA,CAACP,YAAY,EAAEQ,UAAU,EAAE;UAC/D,IAAIC,aAAa,GAAGJ,WAAW,CAACL,YAAY,CAAC,CAAC,CAAC,EAAEA,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7DU,WAAW,GAAGL,WAAW,CAACG,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,CAAC;UAC3D,OAAOE,WAAW,GAAGD,aAAa;QACtC,CAAC;QACDE,WAAW,GAAG,SAASA,WAAWA,CAAChM,KAAK,EAAE;UACtCA,KAAK,CAACiM,eAAe,CAAC,CAAC;UACvBjM,KAAK,CAAC1C,cAAc,CAAC,CAAC;QAC1B,CAAC;QACD;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;QAKgB4O,SAAS,GAAG,IAAI;MAEpBpM,EAAE,CAAC8J,gBAAgB,CAAC,YAAY,EAAE,UAAS5J,KAAK,EAAE;QAC9C,IAAItH,MAAM,CAACuS,OAAO,EAAE;UAChBiB,SAAS,GAAG,IAAI;UAChBd,OAAO,GAAGpL,KAAK,CAACxC,OAAO,CAACkB,MAAM;UAC9B;QACJ;MACJ,CAAC,CAAC;MAEFoB,EAAE,CAAC8J,gBAAgB,CAAC,WAAW,EAAE,UAAS5J,KAAK,EAAE;QAC7C,IAAItH,MAAM,CAACuS,OAAO,IAAI,CAACvS,MAAM,CAAC+L,WAAW,EAAE;UACvC,IAAIyH,SAAS,EAAE;YACXV,iBAAiB,CAACxL,KAAK,CAAC;YACxB,IAAImL,WAAW,EAAE;cACba,WAAW,CAAChM,KAAK,CAAC;YACtB;YACAqL,YAAY,GAAGI,aAAa,CAACzL,KAAK,CAACxC,OAAO,CAAC;UAC/C,CAAC,MAAM;YACH,QAAQ2N,WAAW;cACnB,KAAK,MAAM;gBACP,IAAIE,YAAY,CAAC3M,MAAM,IAAI,CAAC,IAAIsB,KAAK,CAACxC,OAAO,CAACkB,MAAM,IAAI,CAAC,EAAE;kBACvDhG,MAAM,CAACmL,UAAU,CAAC7D,KAAK,EAAE4L,cAAc,CAACP,YAAY,EAAEI,aAAa,CAACzL,KAAK,CAACxC,OAAO,CAAC,CAAC,CAAC;gBACxF;gBACA;cACJ,KAAK,MAAM;gBACP9E,MAAM,CAAC0K,UAAU,CAACpD,KAAK,CAAC;gBACxB;YACJ;YACA,IAAImL,WAAW,EAAE;cACba,WAAW,CAAChM,KAAK,CAAC;cAClBtH,MAAM,CAACmI,MAAM,CAAC,CAAC;YACnB;UACJ;UAEAqL,SAAS,GAAG,KAAK;QACrB;MACJ,CAAC,CAAC;MAEFpM,EAAE,CAAC8J,gBAAgB,CAAC,UAAU,EAAE,UAAS5J,KAAK,EAAE;QAC5C,IAAItH,MAAM,CAACuS,OAAO,EAAE;UAChBG,OAAO,GAAGpL,KAAK,CAACxC,OAAO,CAACkB,MAAM;UAC9B8M,iBAAiB,CAACxL,KAAK,CAAC;QAC5B;MACJ,CAAC,CAAC;IACN,CAAC;IAED,OAAOK,SAAS;EACpB,CAAC;EAED,IAAIA,SAAS,GAAGD,eAAe,CAAC,CAAC;EAEjCnC,OAAO,CAACkO,OAAO,GAAG9L,SAAS;AAC/B,CAAC,CAAC,C;;;;;;;;;;;;ACx5BF;AAAA;AAAA;AAAA;AACA,IAAI+L,MAAM;AACV,SAASC,eAAeA,CAAA,EAAG;EACvB,SAASC,UAAUA,CAACC,IAAI,EAAE;IACtB,IAAI,CAACC,IAAI,GAAGC,MAAM,CAACC,cAAc;IACjC,IAAI,CAACH,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACI,UAAU,GAAG,EAAE;IAC1B;IACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAG,IAAI,CAACN,IAAI,CAAC7N,MAAM,EAAEkO,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;MAClD,IAAIE,SAAS,GAAG,EAAE;MACjB,IAAIC,IAAI,GAAG,IAAI,CAACR,IAAI,CAACS,UAAU,CAACJ,CAAC,CAAC;MAElC,IAAIG,IAAI,GAAG,OAAO,EAAE;QACnBD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,CAACC,IAAI,GAAG,QAAQ,MAAM,EAAG;QAChDD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,CAACC,IAAI,GAAG,OAAO,MAAM,EAAG;QAC/CD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,CAACC,IAAI,GAAG,KAAK,MAAM,CAAE;QAC5CD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAIC,IAAI,GAAG,IAAK;MACpC,CAAC,MAAM,IAAIA,IAAI,GAAG,KAAK,EAAE;QACxBD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,CAACC,IAAI,GAAG,MAAM,MAAM,EAAG;QAC9CD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,CAACC,IAAI,GAAG,KAAK,MAAM,CAAE;QAC5CD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAIC,IAAI,GAAG,IAAK;MACpC,CAAC,MAAM,IAAIA,IAAI,GAAG,IAAI,EAAE;QACvBD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,CAACC,IAAI,GAAG,KAAK,MAAM,CAAE;QAC5CD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAIC,IAAI,GAAG,IAAK;MACpC,CAAC,MAAM;QACND,SAAS,CAAC,CAAC,CAAC,GAAGC,IAAI;MACpB;MAEA,IAAI,CAACJ,UAAU,CAACM,IAAI,CAACH,SAAS,CAAC;IAChC;IAEA,IAAI,CAACH,UAAU,GAAG1N,KAAK,CAACJ,SAAS,CAACqO,MAAM,CAACC,KAAK,CAAC,EAAE,EAAE,IAAI,CAACR,UAAU,CAAC;IAEnE,IAAI,IAAI,CAACA,UAAU,CAACjO,MAAM,IAAI,IAAI,CAAC6N,IAAI,CAAC7N,MAAM,EAAE;MAC/C,IAAI,CAACiO,UAAU,CAACS,OAAO,CAAC,GAAG,CAAC;MAC5B,IAAI,CAACT,UAAU,CAACS,OAAO,CAAC,GAAG,CAAC;MAC5B,IAAI,CAACT,UAAU,CAACS,OAAO,CAAC,GAAG,CAAC;IAC7B;EACD;EAEAd,UAAU,CAACzN,SAAS,GAAG;IACtBwO,SAAS,EAAE,SAAXA,SAASA,CAAYC,MAAM,EAAE;MAC5B,OAAO,IAAI,CAACX,UAAU,CAACjO,MAAM;IAC9B,CAAC;IACD6O,KAAK,EAAE,SAAPA,KAAKA,CAAYD,MAAM,EAAE;MACxB,KAAK,IAAIV,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAG,IAAI,CAACF,UAAU,CAACjO,MAAM,EAAEkO,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;QACvDU,MAAM,CAACE,GAAG,CAAC,IAAI,CAACb,UAAU,CAACC,CAAC,CAAC,EAAE,CAAC,CAAC;MAClC;IACD;EACD,CAAC;EAED,SAASa,WAAWA,CAACC,UAAU,EAAEC,iBAAiB,EAAE;IACnD,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACC,WAAW,GAAG,CAAC;IACpB,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB,IAAI,CAACC,QAAQ,GAAG,EAAE;EACnB;EAEAN,WAAW,CAAC5O,SAAS,GAAC;IAACmP,OAAO,EAAC,SAARA,OAAOA,CAAUzB,IAAI,EAAC;MAAC,IAAI0B,OAAO,GAAC,IAAI3B,UAAU,CAACC,IAAI,CAAC;MAAC,IAAI,CAACwB,QAAQ,CAACd,IAAI,CAACgB,OAAO,CAAC;MAAC,IAAI,CAACH,SAAS,GAAC,IAAI;IAAC,CAAC;IAACI,MAAM,EAAC,SAAPA,MAAMA,CAAUC,GAAG,EAACC,GAAG,EAAC;MAAC,IAAGD,GAAG,GAAC,CAAC,IAAE,IAAI,CAACN,WAAW,IAAEM,GAAG,IAAEC,GAAG,GAAC,CAAC,IAAE,IAAI,CAACP,WAAW,IAAEO,GAAG,EAAC;QAAC,MAAM,IAAIC,KAAK,CAACF,GAAG,GAAC,GAAG,GAACC,GAAG,CAAC;MAAC;MACtP,OAAO,IAAI,CAACR,OAAO,CAACO,GAAG,CAAC,CAACC,GAAG,CAAC;IAAC,CAAC;IAACE,cAAc,EAAC,SAAfA,cAAcA,CAAA,EAAW;MAAC,OAAO,IAAI,CAACT,WAAW;IAAC,CAAC;IAACU,IAAI,EAAC,SAALA,IAAIA,CAAA,EAAW;MAAC,IAAI,CAACC,QAAQ,CAAC,KAAK,EAAC,IAAI,CAACC,kBAAkB,CAAC,CAAC,CAAC;IAAC,CAAC;IAACD,QAAQ,EAAC,SAATA,QAAQA,CAAUxU,IAAI,EAAC0U,WAAW,EAAC;MAAC,IAAI,CAACb,WAAW,GAAC,IAAI,CAACH,UAAU,GAAC,CAAC,GAAC,EAAE;MAAC,IAAI,CAACE,OAAO,GAAC,IAAI3O,KAAK,CAAC,IAAI,CAAC4O,WAAW,CAAC;MAAC,KAAI,IAAIM,GAAG,GAAC,CAAC,EAACA,GAAG,GAAC,IAAI,CAACN,WAAW,EAACM,GAAG,EAAE,EAAC;QAAC,IAAI,CAACP,OAAO,CAACO,GAAG,CAAC,GAAC,IAAIlP,KAAK,CAAC,IAAI,CAAC4O,WAAW,CAAC;QAAC,KAAI,IAAIO,GAAG,GAAC,CAAC,EAACA,GAAG,GAAC,IAAI,CAACP,WAAW,EAACO,GAAG,EAAE,EAAC;UAAC,IAAI,CAACR,OAAO,CAACO,GAAG,CAAC,CAACC,GAAG,CAAC,GAAC,IAAI;QAAC;MAAC;MACva,IAAI,CAACO,yBAAyB,CAAC,CAAC,EAAC,CAAC,CAAC;MAAC,IAAI,CAACA,yBAAyB,CAAC,IAAI,CAACd,WAAW,GAAC,CAAC,EAAC,CAAC,CAAC;MAAC,IAAI,CAACc,yBAAyB,CAAC,CAAC,EAAC,IAAI,CAACd,WAAW,GAAC,CAAC,CAAC;MAAC,IAAI,CAACe,0BAA0B,CAAC,CAAC;MAAC,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAAC,IAAI,CAACC,aAAa,CAAC9U,IAAI,EAAC0U,WAAW,CAAC;MAAC,IAAG,IAAI,CAAChB,UAAU,IAAE,CAAC,EAAC;QAAC,IAAI,CAACqB,eAAe,CAAC/U,IAAI,CAAC;MAAC;MACjS,IAAG,IAAI,CAAC8T,SAAS,IAAE,IAAI,EAAC;QAAC,IAAI,CAACA,SAAS,GAACL,WAAW,CAACuB,UAAU,CAAC,IAAI,CAACtB,UAAU,EAAC,IAAI,CAACC,iBAAiB,EAAC,IAAI,CAACI,QAAQ,CAAC;MAAC;MACrH,IAAI,CAACkB,OAAO,CAAC,IAAI,CAACnB,SAAS,EAACY,WAAW,CAAC;IAAC,CAAC;IAACC,yBAAyB,EAAC,SAA1BA,yBAAyBA,CAAUR,GAAG,EAACC,GAAG,EAAC;MAAC,KAAI,IAAIc,CAAC,GAAC,CAAC,CAAC,EAACA,CAAC,IAAE,CAAC,EAACA,CAAC,EAAE,EAAC;QAAC,IAAGf,GAAG,GAACe,CAAC,IAAE,CAAC,CAAC,IAAE,IAAI,CAACrB,WAAW,IAAEM,GAAG,GAACe,CAAC,EAAC;QAAS,KAAI,IAAIC,CAAC,GAAC,CAAC,CAAC,EAACA,CAAC,IAAE,CAAC,EAACA,CAAC,EAAE,EAAC;UAAC,IAAGf,GAAG,GAACe,CAAC,IAAE,CAAC,CAAC,IAAE,IAAI,CAACtB,WAAW,IAAEO,GAAG,GAACe,CAAC,EAAC;UAAS,IAAI,CAAC,IAAED,CAAC,IAAEA,CAAC,IAAE,CAAC,KAAGC,CAAC,IAAE,CAAC,IAAEA,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,IAAEA,CAAC,IAAEA,CAAC,IAAE,CAAC,KAAGD,CAAC,IAAE,CAAC,IAAEA,CAAC,IAAE,CAAC,CAAE,IAAG,CAAC,IAAEA,CAAC,IAAEA,CAAC,IAAE,CAAC,IAAE,CAAC,IAAEC,CAAC,IAAEA,CAAC,IAAE,CAAE,EAAC;YAAC,IAAI,CAACvB,OAAO,CAACO,GAAG,GAACe,CAAC,CAAC,CAACd,GAAG,GAACe,CAAC,CAAC,GAAC,IAAI;UAAC,CAAC,MAAI;YAAC,IAAI,CAACvB,OAAO,CAACO,GAAG,GAACe,CAAC,CAAC,CAACd,GAAG,GAACe,CAAC,CAAC,GAAC,KAAK;UAAC;QAAC;MAAC;IAAC,CAAC;IAACV,kBAAkB,EAAC,SAAnBA,kBAAkBA,CAAA,EAAW;MAAC,IAAIW,YAAY,GAAC,CAAC;MAAC,IAAIC,OAAO,GAAC,CAAC;MAAC,KAAI,IAAIzC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,CAAC,EAACA,CAAC,EAAE,EAAC;QAAC,IAAI,CAAC4B,QAAQ,CAAC,IAAI,EAAC5B,CAAC,CAAC;QAAC,IAAI0C,SAAS,GAACC,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC;QAAC,IAAG5C,CAAC,IAAE,CAAC,IAAEwC,YAAY,GAACE,SAAS,EAAC;UAACF,YAAY,GAACE,SAAS;UAACD,OAAO,GAACzC,CAAC;QAAC;MAAC;MACzlB,OAAOyC,OAAO;IAAC,CAAC;IAACI,eAAe,EAAC,SAAhBA,eAAeA,CAAUC,SAAS,EAACC,aAAa,EAACC,KAAK,EAAC;MAAC,IAAIC,KAAK,GAACH,SAAS,CAACI,oBAAoB,CAACH,aAAa,EAACC,KAAK,CAAC;MAAC,IAAIG,EAAE,GAAC,CAAC;MAAC,IAAI,CAACxB,IAAI,CAAC,CAAC;MAAC,KAAI,IAAIJ,GAAG,GAAC,CAAC,EAACA,GAAG,GAAC,IAAI,CAACP,OAAO,CAAClP,MAAM,EAACyP,GAAG,EAAE,EAAC;QAAC,IAAI1N,CAAC,GAAC0N,GAAG,GAAC4B,EAAE;QAAC,KAAI,IAAI3B,GAAG,GAAC,CAAC,EAACA,GAAG,GAAC,IAAI,CAACR,OAAO,CAACO,GAAG,CAAC,CAACzP,MAAM,EAAC0P,GAAG,EAAE,EAAC;UAAC,IAAI5N,CAAC,GAAC4N,GAAG,GAAC2B,EAAE;UAAC,IAAIC,IAAI,GAAC,IAAI,CAACpC,OAAO,CAACO,GAAG,CAAC,CAACC,GAAG,CAAC;UAAC,IAAG4B,IAAI,EAAC;YAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC;YAACJ,KAAK,CAACK,MAAM,CAAC1P,CAAC,EAACC,CAAC,CAAC;YAACoP,KAAK,CAACM,MAAM,CAAC3P,CAAC,GAACuP,EAAE,EAACtP,CAAC,CAAC;YAACoP,KAAK,CAACM,MAAM,CAAC3P,CAAC,GAACuP,EAAE,EAACtP,CAAC,GAACsP,EAAE,CAAC;YAACF,KAAK,CAACM,MAAM,CAAC3P,CAAC,EAACC,CAAC,GAACsP,EAAE,CAAC;YAACF,KAAK,CAACO,OAAO,CAAC,CAAC;UAAC;QAAC;MAAC;MAC3b,OAAOP,KAAK;IAAC,CAAC;IAAChB,kBAAkB,EAAC,SAAnBA,kBAAkBA,CAAA,EAAW;MAAC,KAAI,IAAIK,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,IAAI,CAACrB,WAAW,GAAC,CAAC,EAACqB,CAAC,EAAE,EAAC;QAAC,IAAG,IAAI,CAACtB,OAAO,CAACsB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,IAAI,EAAC;UAAC;QAAS;QACzH,IAAI,CAACtB,OAAO,CAACsB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAEA,CAAC,GAAC,CAAC,IAAE,CAAE;MAAC;MAC5B,KAAI,IAAIC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,IAAI,CAACtB,WAAW,GAAC,CAAC,EAACsB,CAAC,EAAE,EAAC;QAAC,IAAG,IAAI,CAACvB,OAAO,CAAC,CAAC,CAAC,CAACuB,CAAC,CAAC,IAAE,IAAI,EAAC;UAAC;QAAS;QAC5E,IAAI,CAACvB,OAAO,CAAC,CAAC,CAAC,CAACuB,CAAC,CAAC,GAAEA,CAAC,GAAC,CAAC,IAAE,CAAE;MAAC;IAAC,CAAC;IAACP,0BAA0B,EAAC,SAA3BA,0BAA0BA,CAAA,EAAW;MAAC,IAAIyB,GAAG,GAACd,MAAM,CAACe,kBAAkB,CAAC,IAAI,CAAC5C,UAAU,CAAC;MAAC,KAAI,IAAId,CAAC,GAAC,CAAC,EAACA,CAAC,GAACyD,GAAG,CAAC3R,MAAM,EAACkO,CAAC,EAAE,EAAC;QAAC,KAAI,IAAI2D,CAAC,GAAC,CAAC,EAACA,CAAC,GAACF,GAAG,CAAC3R,MAAM,EAAC6R,CAAC,EAAE,EAAC;UAAC,IAAIpC,GAAG,GAACkC,GAAG,CAACzD,CAAC,CAAC;UAAC,IAAIwB,GAAG,GAACiC,GAAG,CAACE,CAAC,CAAC;UAAC,IAAG,IAAI,CAAC3C,OAAO,CAACO,GAAG,CAAC,CAACC,GAAG,CAAC,IAAE,IAAI,EAAC;YAAC;UAAS;UAC5P,KAAI,IAAIc,CAAC,GAAC,CAAC,CAAC,EAACA,CAAC,IAAE,CAAC,EAACA,CAAC,EAAE,EAAC;YAAC,KAAI,IAAIC,CAAC,GAAC,CAAC,CAAC,EAACA,CAAC,IAAE,CAAC,EAACA,CAAC,EAAE,EAAC;cAAC,IAAGD,CAAC,IAAE,CAAC,CAAC,IAAEA,CAAC,IAAE,CAAC,IAAEC,CAAC,IAAE,CAAC,CAAC,IAAEA,CAAC,IAAE,CAAC,IAAGD,CAAC,IAAE,CAAC,IAAEC,CAAC,IAAE,CAAE,EAAC;gBAAC,IAAI,CAACvB,OAAO,CAACO,GAAG,GAACe,CAAC,CAAC,CAACd,GAAG,GAACe,CAAC,CAAC,GAAC,IAAI;cAAC,CAAC,MAAI;gBAAC,IAAI,CAACvB,OAAO,CAACO,GAAG,GAACe,CAAC,CAAC,CAACd,GAAG,GAACe,CAAC,CAAC,GAAC,KAAK;cAAC;YAAC;UAAC;QAAC;MAAC;IAAC,CAAC;IAACJ,eAAe,EAAC,SAAhBA,eAAeA,CAAU/U,IAAI,EAAC;MAAC,IAAIwW,IAAI,GAACjB,MAAM,CAACkB,gBAAgB,CAAC,IAAI,CAAC/C,UAAU,CAAC;MAAC,KAAI,IAAId,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,EAAE,EAACA,CAAC,EAAE,EAAC;QAAC,IAAI8D,GAAG,GAAE,CAAC1W,IAAI,IAAE,CAAEwW,IAAI,IAAE5D,CAAC,GAAE,CAAC,KAAG,CAAE;QAAC,IAAI,CAACgB,OAAO,CAACzS,IAAI,CAACwV,KAAK,CAAC/D,CAAC,GAAC,CAAC,CAAC,CAAC,CAACA,CAAC,GAAC,CAAC,GAAC,IAAI,CAACiB,WAAW,GAAC,CAAC,GAAC,CAAC,CAAC,GAAC6C,GAAG;MAAC;MAC5W,KAAI,IAAI9D,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,EAAE,EAACA,CAAC,EAAE,EAAC;QAAC,IAAI8D,GAAG,GAAE,CAAC1W,IAAI,IAAE,CAAEwW,IAAI,IAAE5D,CAAC,GAAE,CAAC,KAAG,CAAE;QAAC,IAAI,CAACgB,OAAO,CAAChB,CAAC,GAAC,CAAC,GAAC,IAAI,CAACiB,WAAW,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC1S,IAAI,CAACwV,KAAK,CAAC/D,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC8D,GAAG;MAAC;IAAC,CAAC;IAAC5B,aAAa,EAAC,SAAdA,aAAaA,CAAU9U,IAAI,EAAC0U,WAAW,EAAC;MAAC,IAAInC,IAAI,GAAE,IAAI,CAACoB,iBAAiB,IAAE,CAAC,GAAEe,WAAW;MAAC,IAAI8B,IAAI,GAACjB,MAAM,CAACqB,cAAc,CAACrE,IAAI,CAAC;MAAC,KAAI,IAAIK,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,EAAE,EAACA,CAAC,EAAE,EAAC;QAAC,IAAI8D,GAAG,GAAE,CAAC1W,IAAI,IAAE,CAAEwW,IAAI,IAAE5D,CAAC,GAAE,CAAC,KAAG,CAAE;QAAC,IAAGA,CAAC,GAAC,CAAC,EAAC;UAAC,IAAI,CAACgB,OAAO,CAAChB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC8D,GAAG;QAAC,CAAC,MAAK,IAAG9D,CAAC,GAAC,CAAC,EAAC;UAAC,IAAI,CAACgB,OAAO,CAAChB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC8D,GAAG;QAAC,CAAC,MAAI;UAAC,IAAI,CAAC9C,OAAO,CAAC,IAAI,CAACC,WAAW,GAAC,EAAE,GAACjB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC8D,GAAG;QAAC;MAAC;MACta,KAAI,IAAI9D,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,EAAE,EAACA,CAAC,EAAE,EAAC;QAAC,IAAI8D,GAAG,GAAE,CAAC1W,IAAI,IAAE,CAAEwW,IAAI,IAAE5D,CAAC,GAAE,CAAC,KAAG,CAAE;QAAC,IAAGA,CAAC,GAAC,CAAC,EAAC;UAAC,IAAI,CAACgB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAACC,WAAW,GAACjB,CAAC,GAAC,CAAC,CAAC,GAAC8D,GAAG;QAAC,CAAC,MAAK,IAAG9D,CAAC,GAAC,CAAC,EAAC;UAAC,IAAI,CAACgB,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAChB,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,GAAC8D,GAAG;QAAC,CAAC,MAAI;UAAC,IAAI,CAAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAChB,CAAC,GAAC,CAAC,CAAC,GAAC8D,GAAG;QAAC;MAAC;MACzL,IAAI,CAAC9C,OAAO,CAAC,IAAI,CAACC,WAAW,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC7T,IAAK;IAAC,CAAC;IAACiV,OAAO,EAAC,SAARA,OAAOA,CAAU1C,IAAI,EAACmC,WAAW,EAAC;MAAC,IAAImC,GAAG,GAAC,CAAC,CAAC;MAAC,IAAI1C,GAAG,GAAC,IAAI,CAACN,WAAW,GAAC,CAAC;MAAC,IAAIiD,QAAQ,GAAC,CAAC;MAAC,IAAIC,SAAS,GAAC,CAAC;MAAC,KAAI,IAAI3C,GAAG,GAAC,IAAI,CAACP,WAAW,GAAC,CAAC,EAACO,GAAG,GAAC,CAAC,EAACA,GAAG,IAAE,CAAC,EAAC;QAAC,IAAGA,GAAG,IAAE,CAAC,EAACA,GAAG,EAAE;QAAC,OAAM,IAAI,EAAC;UAAC,KAAI,IAAIe,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,CAAC,EAACA,CAAC,EAAE,EAAC;YAAC,IAAG,IAAI,CAACvB,OAAO,CAACO,GAAG,CAAC,CAACC,GAAG,GAACe,CAAC,CAAC,IAAE,IAAI,EAAC;cAAC,IAAIa,IAAI,GAAC,KAAK;cAAC,IAAGe,SAAS,GAACxE,IAAI,CAAC7N,MAAM,EAAC;gBAACsR,IAAI,GAAE,CAAEzD,IAAI,CAACwE,SAAS,CAAC,KAAGD,QAAQ,GAAE,CAAC,KAAG,CAAE;cAAC;cAC3W,IAAIE,IAAI,GAACzB,MAAM,CAAC0B,OAAO,CAACvC,WAAW,EAACP,GAAG,EAACC,GAAG,GAACe,CAAC,CAAC;cAAC,IAAG6B,IAAI,EAAC;gBAAChB,IAAI,GAAC,CAACA,IAAI;cAAC;cACnE,IAAI,CAACpC,OAAO,CAACO,GAAG,CAAC,CAACC,GAAG,GAACe,CAAC,CAAC,GAACa,IAAI;cAACc,QAAQ,EAAE;cAAC,IAAGA,QAAQ,IAAE,CAAC,CAAC,EAAC;gBAACC,SAAS,EAAE;gBAACD,QAAQ,GAAC,CAAC;cAAC;YAAC;UAAC;UACnF3C,GAAG,IAAE0C,GAAG;UAAC,IAAG1C,GAAG,GAAC,CAAC,IAAE,IAAI,CAACN,WAAW,IAAEM,GAAG,EAAC;YAACA,GAAG,IAAE0C,GAAG;YAACA,GAAG,GAAC,CAACA,GAAG;YAAC;UAAM;QAAC;MAAC;IAAC;EAAC,CAAC;EAACpD,WAAW,CAACyD,IAAI,GAAC,IAAI;EAACzD,WAAW,CAAC0D,IAAI,GAAC,IAAI;EAAC1D,WAAW,CAACuB,UAAU,GAAC,UAAStB,UAAU,EAACC,iBAAiB,EAACI,QAAQ,EAAC;IAAC,IAAIqD,QAAQ,GAACC,SAAS,CAACC,WAAW,CAAC5D,UAAU,EAACC,iBAAiB,CAAC;IAAC,IAAIL,MAAM,GAAC,IAAIiE,WAAW,CAAC,CAAC;IAAC,KAAI,IAAI3E,CAAC,GAAC,CAAC,EAACA,CAAC,GAACmB,QAAQ,CAACrP,MAAM,EAACkO,CAAC,EAAE,EAAC;MAAC,IAAIL,IAAI,GAACwB,QAAQ,CAACnB,CAAC,CAAC;MAACU,MAAM,CAACE,GAAG,CAACjB,IAAI,CAACC,IAAI,EAAC,CAAC,CAAC;MAACc,MAAM,CAACE,GAAG,CAACjB,IAAI,CAACc,SAAS,CAAC,CAAC,EAACkC,MAAM,CAACiC,eAAe,CAACjF,IAAI,CAACC,IAAI,EAACkB,UAAU,CAAC,CAAC;MAACnB,IAAI,CAACgB,KAAK,CAACD,MAAM,CAAC;IAAC;IACtc,IAAImE,cAAc,GAAC,CAAC;IAAC,KAAI,IAAI7E,CAAC,GAAC,CAAC,EAACA,CAAC,GAACwE,QAAQ,CAAC1S,MAAM,EAACkO,CAAC,EAAE,EAAC;MAAC6E,cAAc,IAAEL,QAAQ,CAACxE,CAAC,CAAC,CAAC8E,SAAS;IAAC;IAC9F,IAAGpE,MAAM,CAACkE,eAAe,CAAC,CAAC,GAACC,cAAc,GAAC,CAAC,EAAC;MAAC,MAAM,IAAIpD,KAAK,CAAC,yBAAyB,GACtFf,MAAM,CAACkE,eAAe,CAAC,CAAC,GACxB,GAAG,GACHC,cAAc,GAAC,CAAC,GAChB,GAAG,CAAC;IAAC;IACN,IAAGnE,MAAM,CAACkE,eAAe,CAAC,CAAC,GAAC,CAAC,IAAEC,cAAc,GAAC,CAAC,EAAC;MAACnE,MAAM,CAACE,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IAAC;IACjE,OAAMF,MAAM,CAACkE,eAAe,CAAC,CAAC,GAAC,CAAC,IAAE,CAAC,EAAC;MAAClE,MAAM,CAACqE,MAAM,CAAC,KAAK,CAAC;IAAC;IAC1D,OAAM,IAAI,EAAC;MAAC,IAAGrE,MAAM,CAACkE,eAAe,CAAC,CAAC,IAAEC,cAAc,GAAC,CAAC,EAAC;QAAC;MAAM;MACjEnE,MAAM,CAACE,GAAG,CAACC,WAAW,CAACyD,IAAI,EAAC,CAAC,CAAC;MAAC,IAAG5D,MAAM,CAACkE,eAAe,CAAC,CAAC,IAAEC,cAAc,GAAC,CAAC,EAAC;QAAC;MAAM;MACpFnE,MAAM,CAACE,GAAG,CAACC,WAAW,CAAC0D,IAAI,EAAC,CAAC,CAAC;IAAC;IAC/B,OAAO1D,WAAW,CAACmE,WAAW,CAACtE,MAAM,EAAC8D,QAAQ,CAAC;EAAC,CAAC;EAAC3D,WAAW,CAACmE,WAAW,GAAC,UAAStE,MAAM,EAAC8D,QAAQ,EAAC;IAAC,IAAI1X,MAAM,GAAC,CAAC;IAAC,IAAImY,UAAU,GAAC,CAAC;IAAC,IAAIC,UAAU,GAAC,CAAC;IAAC,IAAIC,MAAM,GAAC,IAAI9S,KAAK,CAACmS,QAAQ,CAAC1S,MAAM,CAAC;IAAC,IAAIsT,MAAM,GAAC,IAAI/S,KAAK,CAACmS,QAAQ,CAAC1S,MAAM,CAAC;IAAC,KAAI,IAAIwQ,CAAC,GAAC,CAAC,EAACA,CAAC,GAACkC,QAAQ,CAAC1S,MAAM,EAACwQ,CAAC,EAAE,EAAC;MAAC,IAAI+C,OAAO,GAACb,QAAQ,CAAClC,CAAC,CAAC,CAACwC,SAAS;MAAC,IAAIQ,OAAO,GAACd,QAAQ,CAAClC,CAAC,CAAC,CAACiD,UAAU,GAACF,OAAO;MAACJ,UAAU,GAAC1W,IAAI,CAACC,GAAG,CAACyW,UAAU,EAACI,OAAO,CAAC;MAACH,UAAU,GAAC3W,IAAI,CAACC,GAAG,CAAC0W,UAAU,EAACI,OAAO,CAAC;MAACH,MAAM,CAAC7C,CAAC,CAAC,GAAC,IAAIjQ,KAAK,CAACgT,OAAO,CAAC;MAAC,KAAI,IAAIrF,CAAC,GAAC,CAAC,EAACA,CAAC,GAACmF,MAAM,CAAC7C,CAAC,CAAC,CAACxQ,MAAM,EAACkO,CAAC,EAAE,EAAC;QAACmF,MAAM,CAAC7C,CAAC,CAAC,CAACtC,CAAC,CAAC,GAAC,IAAI,GAACU,MAAM,CAACA,MAAM,CAACV,CAAC,GAAClT,MAAM,CAAC;MAAC;MAC1gBA,MAAM,IAAEuY,OAAO;MAAC,IAAIG,MAAM,GAAC7C,MAAM,CAAC8C,yBAAyB,CAACH,OAAO,CAAC;MAAC,IAAII,OAAO,GAAC,IAAIC,YAAY,CAACR,MAAM,CAAC7C,CAAC,CAAC,EAACkD,MAAM,CAAC/E,SAAS,CAAC,CAAC,GAAC,CAAC,CAAC;MAAC,IAAImF,OAAO,GAACF,OAAO,CAAC5B,GAAG,CAAC0B,MAAM,CAAC;MAACJ,MAAM,CAAC9C,CAAC,CAAC,GAAC,IAAIjQ,KAAK,CAACmT,MAAM,CAAC/E,SAAS,CAAC,CAAC,GAAC,CAAC,CAAC;MAAC,KAAI,IAAIT,CAAC,GAAC,CAAC,EAACA,CAAC,GAACoF,MAAM,CAAC9C,CAAC,CAAC,CAACxQ,MAAM,EAACkO,CAAC,EAAE,EAAC;QAAC,IAAI6F,QAAQ,GAAC7F,CAAC,GAAC4F,OAAO,CAACnF,SAAS,CAAC,CAAC,GAAC2E,MAAM,CAAC9C,CAAC,CAAC,CAACxQ,MAAM;QAACsT,MAAM,CAAC9C,CAAC,CAAC,CAACtC,CAAC,CAAC,GAAE6F,QAAQ,IAAE,CAAC,GAAED,OAAO,CAACE,GAAG,CAACD,QAAQ,CAAC,GAAC,CAAC;MAAC;IAAC;IACxV,IAAIE,cAAc,GAAC,CAAC;IAAC,KAAI,IAAI/F,CAAC,GAAC,CAAC,EAACA,CAAC,GAACwE,QAAQ,CAAC1S,MAAM,EAACkO,CAAC,EAAE,EAAC;MAAC+F,cAAc,IAAEvB,QAAQ,CAACxE,CAAC,CAAC,CAACuF,UAAU;IAAC;IAC/F,IAAI5F,IAAI,GAAC,IAAItN,KAAK,CAAC0T,cAAc,CAAC;IAAC,IAAInU,KAAK,GAAC,CAAC;IAAC,KAAI,IAAIoO,CAAC,GAAC,CAAC,EAACA,CAAC,GAACiF,UAAU,EAACjF,CAAC,EAAE,EAAC;MAAC,KAAI,IAAIsC,CAAC,GAAC,CAAC,EAACA,CAAC,GAACkC,QAAQ,CAAC1S,MAAM,EAACwQ,CAAC,EAAE,EAAC;QAAC,IAAGtC,CAAC,GAACmF,MAAM,CAAC7C,CAAC,CAAC,CAACxQ,MAAM,EAAC;UAAC6N,IAAI,CAAC/N,KAAK,EAAE,CAAC,GAACuT,MAAM,CAAC7C,CAAC,CAAC,CAACtC,CAAC,CAAC;QAAC;MAAC;IAAC;IACpK,KAAI,IAAIA,CAAC,GAAC,CAAC,EAACA,CAAC,GAACkF,UAAU,EAAClF,CAAC,EAAE,EAAC;MAAC,KAAI,IAAIsC,CAAC,GAAC,CAAC,EAACA,CAAC,GAACkC,QAAQ,CAAC1S,MAAM,EAACwQ,CAAC,EAAE,EAAC;QAAC,IAAGtC,CAAC,GAACoF,MAAM,CAAC9C,CAAC,CAAC,CAACxQ,MAAM,EAAC;UAAC6N,IAAI,CAAC/N,KAAK,EAAE,CAAC,GAACwT,MAAM,CAAC9C,CAAC,CAAC,CAACtC,CAAC,CAAC;QAAC;MAAC;IAAC;IACrH,OAAOL,IAAI;EAAC,CAAC;EAAC,IAAIE,MAAM,GAAC;IAACmG,WAAW,EAAC,CAAC,IAAE,CAAC;IAACC,cAAc,EAAC,CAAC,IAAE,CAAC;IAACnG,cAAc,EAAC,CAAC,IAAE,CAAC;IAACoG,UAAU,EAAC,CAAC,IAAE;EAAC,CAAC;EAAC,IAAIC,mBAAmB,GAAC;IAACC,CAAC,EAAC,CAAC;IAACC,CAAC,EAAC,CAAC;IAACC,CAAC,EAAC,CAAC;IAACC,CAAC,EAAC;EAAC,CAAC;EAAC,IAAIC,aAAa,GAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC,CAAC;IAACC,UAAU,EAAC;EAAC,CAAC;EAAC,IAAIrE,MAAM,GAAC;IAACsE,sBAAsB,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAA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EACtIL,SAAS,CAAC+D,cAAc,GAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,E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GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,CAAC,EAAC,CAAC,IAAI,EAAC,IAAI,EAAC,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","file":"page-product.js","sourcesContent":["/*!\n Zoom 1.7.21\n license: MIT\n http://www.jacklmoore.com/zoom\n*/\n(function($) {\n var defaults = {\n url: false,\n callback: false,\n target: false,\n duration: 120,\n on: 'mouseover', // other options: grab, click, toggle\n touch: true, // enables a touch fallback\n onZoomIn: false,\n onZoomOut: false,\n magnify: 1\n };\n\n // Core Zoom Logic, independent of event listeners.\n $.zoom = function(target, source, img, magnify) {\n var targetHeight,\n targetWidth,\n sourceHeight,\n sourceWidth,\n xRatio,\n yRatio,\n offset,\n $target = $(target),\n position = $target.css('position'),\n $source = $(source);\n\n // The parent element needs positioning so that the zoomed element can be correctly positioned within.\n target.style.position = /(absolute|fixed)/.test(position) ? position : 'relative';\n target.style.overflow = 'hidden';\n img.style.width = img.style.height = '';\n\n $(img)\n .addClass('zoomImg')\n .css({\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n width: img.width * magnify,\n height: img.height * magnify,\n border: 'none',\n maxWidth: 'none',\n maxHeight: 'none'\n })\n .appendTo(target);\n\n return {\n init: function() {\n targetWidth = $target.outerWidth();\n targetHeight = $target.outerHeight();\n\n if (source === target) {\n sourceWidth = targetWidth;\n sourceHeight = targetHeight;\n } else {\n sourceWidth = $source.outerWidth();\n sourceHeight = $source.outerHeight();\n }\n\n xRatio = (img.width - targetWidth) / sourceWidth;\n yRatio = (img.height - targetHeight) / sourceHeight;\n\n offset = $source.offset();\n },\n move: function(e) {\n var left = (e.pageX - offset.left),\n top = (e.pageY - offset.top);\n\n top = Math.max(Math.min(top, sourceHeight), 0);\n left = Math.max(Math.min(left, sourceWidth), 0);\n\n img.style.left = (left * -xRatio) + 'px';\n img.style.top = (top * -yRatio) + 'px';\n }\n };\n };\n\n $.fn.zoom = function(options) {\n return this.each(function() {\n var settings = $.extend({}, defaults, options || {}),\n //target will display the zoomed image\n target = settings.target && $(settings.target)[0] || this,\n //source will provide zoom location info (thumbnail)\n source = this,\n srcElement,\n $source = $(source),\n secondaryImage = document.querySelector('[data-product-component=\"image-zoom\"]'),\n img = document.createElement('img'),\n $img = $(img),\n mousemove = 'mousemove.zoom',\n clicked = false,\n touched = false;\n\n // If a url wasn't specified, look for an image element.\n if (!settings.url) {\n srcElement = source.querySelector('img');\n if (srcElement) {\n settings.url = srcElement.getAttribute('data-src') || srcElement.currentSrc || srcElement.src;\n }\n\n if (!settings.url) {\n return;\n }\n }\n\n $source.one('zoom.destroy', function(position, overflow) {\n $source.off('.zoom');\n target.style.position = position;\n target.style.overflow = overflow;\n img.onload = null;\n $img.remove();\n }.bind(this, target.style.position, target.style.overflow));\n\n img.onload = function() {\n var zoom = $.zoom(target, source, img, settings.magnify);\n\n function start(e) {\n if (secondaryImage) {\n secondaryImage.classList.remove('active');\n img.classList.add('active');\n img.parentElement.classList.add('jquery-zoom-active');\n }\n\n zoom.init();\n zoom.move(e);\n\n // Skip the fade-in for IE8 and lower since it chokes on fading-in\n // and changing position based on mousemovement at the same time.\n $img.stop()\n .fadeTo($.support.opacity ? settings.duration : 0, 1, $.isFunction(settings.onZoomIn) ? settings.onZoomIn.call(img) : false);\n }\n\n function stop() {\n if (secondaryImage) {\n secondaryImage.classList.add('active');\n img.classList.remove('active');\n img.parentElement.classList.remove('jquery-zoom-active');\n }\n $img.stop()\n .fadeTo(settings.duration, 0, $.isFunction(settings.onZoomOut) ? settings.onZoomOut.call(img) : false);\n }\n\n // Mouse events\n if (settings.on === 'grab') {\n $source\n .on('mousedown.zoom',\n function(e) {\n if (e.which === 1) {\n $(document).one('mouseup.zoom',\n function() {\n stop();\n\n $(document).off(mousemove, zoom.move);\n }\n );\n\n start(e);\n\n $(document).on(mousemove, zoom.move);\n\n e.preventDefault();\n }\n }\n );\n } else if (settings.on === 'click') {\n $source.on('click.zoom',\n function(e) {\n if (clicked) {\n // bubble the event up to the document to trigger the unbind.\n return;\n } else {\n clicked = true;\n start(e);\n $(document).on(mousemove, zoom.move);\n $(document).one('click.zoom',\n function() {\n stop();\n clicked = false;\n $(document).off(mousemove, zoom.move);\n }\n );\n return false;\n }\n }\n );\n } else if (settings.on === 'toggle') {\n $source.on('click.zoom',\n function(e) {\n if (clicked) {\n stop();\n } else {\n start(e);\n }\n clicked = !clicked;\n }\n );\n } else if (settings.on === 'mouseover') {\n zoom.init(); // Preemptively call init because IE7 will fire the mousemove handler before the hover handler.\n\n $source\n .on('mouseenter.zoom', start)\n .on('mouseleave.zoom', stop)\n .on(mousemove, zoom.move);\n }\n\n // Touch fallback\n if (settings.touch) {\n $source\n .on('touchstart.zoom', function(e) {\n e.preventDefault();\n if (touched) {\n touched = false;\n stop();\n } else {\n touched = true;\n start( e.originalEvent.touches[0] || e.originalEvent.changedTouches[0] );\n }\n })\n .on('touchmove.zoom', function(e) {\n e.preventDefault();\n zoom.move( e.originalEvent.touches[0] || e.originalEvent.changedTouches[0] );\n })\n .on('touchend.zoom', function(e) {\n e.preventDefault();\n if (touched) {\n touched = false;\n stop();\n }\n });\n }\n\n if ($.isFunction(settings.callback)) {\n settings.callback.call(img);\n }\n };\n\n img.setAttribute('role', 'presentation');\n img.alt = '';\n img.src = settings.url;\n });\n };\n\n $.fn.zoom.defaults = defaults;\n}(window.jQuery));\n","(function(global, factory) {\n if (typeof define === 'function' && define.amd) {\n define([ 'exports' ], factory);\n } else if (typeof exports !== 'undefined') {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.PinchZoom = mod.exports;\n }\n})(this, function(exports) {\n 'use strict';\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /*\n\n PinchZoom.js\n Copyright (c) Manuel Stofer 2013 - today\n\n Author: Manuel Stofer (mst@rtp.ch)\n Version: 2.3.3\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 // polyfills\n if (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n value: function assign(target) {\n // .length of function is 2\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n }\n\n if (typeof Array.from != 'function') {\n Array.from = function(object) {\n return [].slice.call(object);\n };\n }\n\n // utils\n var buildElement = function buildElement(str) {\n // empty string as title argument required by IE and Edge\n var tmp = document.implementation.createHTMLDocument('');\n tmp.body.innerHTML = str;\n return Array.from(tmp.body.children)[0];\n };\n\n var triggerEvent = function triggerEvent(el, name) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(name, true, false);\n el.dispatchEvent(event);\n };\n\n var definePinchZoom = function definePinchZoom() {\n\n /**\n * Pinch zoom\n * @param el\n * @param options\n * @constructor\n */\n var PinchZoom = function PinchZoom(el, options) {\n this.el = el;\n this.zoomFactor = 1;\n this.lastScale = 1;\n this.offset = {\n x: 0,\n y: 0\n };\n this.initialOffset = {\n x: 0,\n y: 0\n };\n this.options = Object.assign({}, this.defaults, options);\n this.setupMarkup();\n this.bindEvents();\n this.update();\n\n // The image may already be loaded when PinchZoom is initialized,\n // and then the load event (which trigger update) will never fire.\n if (this.isImageLoaded(this.el)) {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n this.enable();\n },\n sum = function sum(a, b) {\n return a + b;\n },\n isCloseTo = function isCloseTo(value, expected) {\n return value > expected - 0.01 && value < expected + 0.01;\n };\n\n PinchZoom.prototype = {\n\n defaults: {\n tapZoomFactor: 2,\n zoomOutFactor: 1.3,\n animationDuration: 300,\n maxZoom: 4,\n minZoom: 0.5,\n draggableUnzoomed: false,\n lockDragAxis: false,\n setOffsetsOnce: false,\n use2d: true,\n zoomStartEventName: 'pz_zoomstart',\n zoomUpdateEventName: 'pz_zoomupdate',\n zoomEndEventName: 'pz_zoomend',\n dragStartEventName: 'pz_dragstart',\n dragUpdateEventName: 'pz_dragupdate',\n dragEndEventName: 'pz_dragend',\n doubleTapEventName: 'pz_doubletap',\n verticalPadding: 0,\n horizontalPadding: 0,\n onZoomStart: null,\n onZoomEnd: null,\n onZoomUpdate: null,\n onDragStart: null,\n onDragEnd: null,\n onDragUpdate: null,\n onDoubleTap: null\n },\n\n /**\n * Event handler for 'dragstart'\n * @param event\n */\n handleDragStart: function handleDragStart(event) {\n triggerEvent(this.el, this.options.dragStartEventName);\n if (typeof this.options.onDragStart == 'function') {\n this.options.onDragStart(this, event);\n }\n this.stopAnimation();\n this.lastDragPosition = false;\n this.hasInteraction = true;\n this.handleDrag(event);\n },\n\n /**\n * Event handler for 'drag'\n * @param event\n */\n handleDrag: function handleDrag(event) {\n var touch = this.getTouches(event)[0];\n this.drag(touch, this.lastDragPosition);\n this.offset = this.sanitizeOffset(this.offset);\n this.lastDragPosition = touch;\n },\n\n handleDragEnd: function handleDragEnd() {\n triggerEvent(this.el, this.options.dragEndEventName);\n if (typeof this.options.onDragEnd == 'function') {\n this.options.onDragEnd(this, event);\n }\n this.end();\n },\n\n /**\n * Event handler for 'zoomstart'\n * @param event\n */\n handleZoomStart: function handleZoomStart(event) {\n triggerEvent(this.el, this.options.zoomStartEventName);\n if (typeof this.options.onZoomStart == 'function') {\n this.options.onZoomStart(this, event);\n }\n this.stopAnimation();\n this.lastScale = 1;\n this.nthZoom = 0;\n this.lastZoomCenter = false;\n this.hasInteraction = true;\n },\n\n /**\n * Event handler for 'zoom'\n * @param event\n */\n handleZoom: function handleZoom(event, newScale) {\n // a relative scale factor is used\n var touchCenter = this.getTouchCenter(this.getTouches(event)),\n scale = newScale / this.lastScale;\n this.lastScale = newScale;\n\n // the first touch events are thrown away since they are not precise\n this.nthZoom += 1;\n if (this.nthZoom > 3) {\n\n this.scale(scale, touchCenter);\n this.drag(touchCenter, this.lastZoomCenter);\n }\n this.lastZoomCenter = touchCenter;\n },\n\n handleZoomEnd: function handleZoomEnd() {\n triggerEvent(this.el, this.options.zoomEndEventName);\n if (typeof this.options.onZoomEnd == 'function') {\n this.options.onZoomEnd(this, event);\n }\n this.end();\n },\n\n /**\n * Event handler for 'doubletap'\n * @param event\n */\n handleDoubleTap: function handleDoubleTap(event) {\n var center = this.getTouches(event)[0],\n zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,\n startZoomFactor = this.zoomFactor,\n updateProgress = function(progress) {\n this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n }.bind(this);\n\n if (this.hasInteraction) {\n return;\n }\n\n this.isDoubleTap = true;\n\n if (startZoomFactor > zoomFactor) {\n center = this.getCurrentZoomCenter();\n }\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n triggerEvent(this.el, this.options.doubleTapEventName);\n if (typeof this.options.onDoubleTap == 'function') {\n this.options.onDoubleTap(this, event);\n }\n },\n\n /**\n * Compute the initial offset\n *\n * the element should be centered in the container upon initialization\n */\n computeInitialOffset: function computeInitialOffset() {\n this.initialOffset = {\n x: -Math.abs(this.el.offsetWidth * this.getInitialZoomFactor() - this.container.offsetWidth) / 2,\n y: -Math.abs(this.el.offsetHeight * this.getInitialZoomFactor() - this.container.offsetHeight) / 2\n };\n },\n\n /**\n * Reset current image offset to that of the initial offset\n */\n resetOffset: function resetOffset() {\n this.offset.x = this.initialOffset.x;\n this.offset.y = this.initialOffset.y;\n },\n\n /**\n * Determine if image is loaded\n */\n isImageLoaded: function isImageLoaded(el) {\n if (el.nodeName === 'IMG') {\n return el.complete && el.naturalHeight !== 0;\n } else {\n return Array.from(el.querySelectorAll('img')).every(this.isImageLoaded);\n }\n },\n\n setupOffsets: function setupOffsets() {\n if (this.options.setOffsetsOnce && this._isOffsetsSet) {\n return;\n }\n\n this._isOffsetsSet = true;\n\n this.computeInitialOffset();\n this.resetOffset();\n },\n\n /**\n * Max / min values for the offset\n * @param offset\n * @return {Object} the sanitized offset\n */\n sanitizeOffset: function sanitizeOffset(offset) {\n var elWidth = this.el.offsetWidth * this.getInitialZoomFactor() * this.zoomFactor;\n var elHeight = this.el.offsetHeight * this.getInitialZoomFactor() * this.zoomFactor;\n var maxX = elWidth - this.getContainerX() + this.options.horizontalPadding,\n maxY = elHeight - this.getContainerY() + this.options.verticalPadding,\n maxOffsetX = Math.max(maxX, 0),\n maxOffsetY = Math.max(maxY, 0),\n minOffsetX = Math.min(maxX, 0) - this.options.horizontalPadding,\n minOffsetY = Math.min(maxY, 0) - this.options.verticalPadding;\n\n return {\n x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),\n y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY)\n };\n },\n\n /**\n * Scale to a specific zoom factor (not relative)\n * @param zoomFactor\n * @param center\n */\n scaleTo: function scaleTo(zoomFactor, center) {\n this.scale(zoomFactor / this.zoomFactor, center);\n },\n\n /**\n * Scales the element from specified center\n * @param scale\n * @param center\n */\n scale: function scale(_scale, center) {\n _scale = this.scaleZoomFactor(_scale);\n this.addOffset({\n x: (_scale - 1) * (center.x + this.offset.x),\n y: (_scale - 1) * (center.y + this.offset.y)\n });\n triggerEvent(this.el, this.options.zoomUpdateEventName);\n if (typeof this.options.onZoomUpdate == 'function') {\n this.options.onZoomUpdate(this, event);\n }\n },\n\n /**\n * Scales the zoom factor relative to current state\n * @param scale\n * @return the actual scale (can differ because of max min zoom factor)\n */\n scaleZoomFactor: function scaleZoomFactor(scale) {\n var originalZoomFactor = this.zoomFactor;\n this.zoomFactor *= scale;\n this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom));\n return this.zoomFactor / originalZoomFactor;\n },\n\n /**\n * Determine if the image is in a draggable state\n *\n * When the image can be dragged, the drag event is acted upon and cancelled.\n * When not draggable, the drag event bubbles through this component.\n *\n * @return {Boolean}\n */\n canDrag: function canDrag() {\n return this.options.draggableUnzoomed || !isCloseTo(this.zoomFactor, 1);\n },\n\n /**\n * Drags the element\n * @param center\n * @param lastCenter\n */\n drag: function drag(center, lastCenter) {\n if (lastCenter) {\n if (this.options.lockDragAxis) {\n // lock scroll to position that was changed the most\n if (Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {\n this.addOffset({\n x: -(center.x - lastCenter.x),\n y: 0\n });\n } else {\n this.addOffset({\n y: -(center.y - lastCenter.y),\n x: 0\n });\n }\n } else {\n this.addOffset({\n y: -(center.y - lastCenter.y),\n x: -(center.x - lastCenter.x)\n });\n }\n triggerEvent(this.el, this.options.dragUpdateEventName);\n if (typeof this.options.onDragUpdate == 'function') {\n this.options.onDragUpdate(this, event);\n }\n }\n },\n\n /**\n * Calculates the touch center of multiple touches\n * @param touches\n * @return {Object}\n */\n getTouchCenter: function getTouchCenter(touches) {\n return this.getVectorAvg(touches);\n },\n\n /**\n * Calculates the average of multiple vectors (x, y values)\n */\n getVectorAvg: function getVectorAvg(vectors) {\n return {\n x: vectors.map(function(v) {\n return v.x;\n }).reduce(sum) / vectors.length,\n y: vectors.map(function(v) {\n return v.y;\n }).reduce(sum) / vectors.length\n };\n },\n\n /**\n * Adds an offset\n * @param offset the offset to add\n * @return return true when the offset change was accepted\n */\n addOffset: function addOffset(offset) {\n this.offset = {\n x: this.offset.x + offset.x,\n y: this.offset.y + offset.y\n };\n },\n\n sanitize: function sanitize() {\n if (this.zoomFactor < this.options.zoomOutFactor) {\n this.zoomOutAnimation();\n } else if (this.isInsaneOffset(this.offset)) {\n this.sanitizeOffsetAnimation();\n }\n },\n\n /**\n * Checks if the offset is ok with the current zoom factor\n * @param offset\n * @return {Boolean}\n */\n isInsaneOffset: function isInsaneOffset(offset) {\n var sanitizedOffset = this.sanitizeOffset(offset);\n return sanitizedOffset.x !== offset.x || sanitizedOffset.y !== offset.y;\n },\n\n /**\n * Creates an animation moving to a sane offset\n */\n sanitizeOffsetAnimation: function sanitizeOffsetAnimation() {\n var targetOffset = this.sanitizeOffset(this.offset),\n startOffset = {\n x: this.offset.x,\n y: this.offset.y\n },\n updateProgress = function(progress) {\n this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);\n this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);\n this.update();\n }.bind(this);\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n },\n\n /**\n * Zooms back to the original position,\n * (no offset and zoom factor 1)\n */\n zoomOutAnimation: function zoomOutAnimation() {\n if (this.zoomFactor === 1) {\n return;\n }\n\n var startZoomFactor = this.zoomFactor,\n zoomFactor = 1,\n center = this.getCurrentZoomCenter(),\n updateProgress = function(progress) {\n this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n }.bind(this);\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n },\n\n /**\n * Updates the container aspect ratio\n *\n * Any previous container height must be cleared before re-measuring the\n * parent height, since it depends implicitly on the height of any of its children\n */\n updateAspectRatio: function updateAspectRatio() {\n this.unsetContainerY();\n this.setContainerY(this.container.parentElement.offsetHeight);\n },\n\n /**\n * Calculates the initial zoom factor (for the element to fit into the container)\n * @return {number} the initial zoom factor\n */\n getInitialZoomFactor: function getInitialZoomFactor() {\n var xZoomFactor = this.container.offsetWidth / this.el.offsetWidth;\n var yZoomFactor = this.container.offsetHeight / this.el.offsetHeight;\n\n return Math.min(xZoomFactor, yZoomFactor);\n },\n\n /**\n * Calculates the aspect ratio of the element\n * @return the aspect ratio\n */\n getAspectRatio: function getAspectRatio() {\n return this.el.offsetWidth / this.el.offsetHeight;\n },\n\n /**\n * Calculates the virtual zoom center for the current offset and zoom factor\n * (used for reverse zoom)\n * @return {Object} the current zoom center\n */\n getCurrentZoomCenter: function getCurrentZoomCenter() {\n var offsetLeft = this.offset.x - this.initialOffset.x;\n var centerX = -1 * this.offset.x - offsetLeft / (1 / this.zoomFactor - 1);\n\n var offsetTop = this.offset.y - this.initialOffset.y;\n var centerY = -1 * this.offset.y - offsetTop / (1 / this.zoomFactor - 1);\n\n return {\n x: centerX,\n y: centerY\n };\n },\n\n /**\n * Returns the touches of an event relative to the container offset\n * @param event\n * @return array touches\n */\n getTouches: function getTouches(event) {\n var rect = this.container.getBoundingClientRect();\n var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n var posTop = rect.top + scrollTop;\n var posLeft = rect.left + scrollLeft;\n\n return Array.prototype.slice.call(event.touches).map(function(touch) {\n return {\n x: touch.pageX - posLeft,\n y: touch.pageY - posTop\n };\n });\n },\n\n /**\n * Animation loop\n * does not support simultaneous animations\n * @param duration\n * @param framefn\n * @param timefn\n * @param callback\n */\n animate: function animate(duration, framefn, timefn, callback) {\n var startTime = new Date().getTime(),\n renderFrame = function() {\n if (!this.inAnimation) {\n return;\n }\n var frameTime = new Date().getTime() - startTime,\n progress = frameTime / duration;\n if (frameTime >= duration) {\n framefn(1);\n if (callback) {\n callback();\n }\n this.update();\n this.stopAnimation();\n this.update();\n } else {\n if (timefn) {\n progress = timefn(progress);\n }\n framefn(progress);\n this.update();\n requestAnimationFrame(renderFrame);\n }\n }.bind(this);\n this.inAnimation = true;\n requestAnimationFrame(renderFrame);\n },\n\n /**\n * Stops the animation\n */\n stopAnimation: function stopAnimation() {\n this.inAnimation = false;\n },\n\n /**\n * Swing timing function for animations\n * @param p\n * @return {Number}\n */\n swing: function swing(p) {\n return -Math.cos(p * Math.PI) / 2 + 0.5;\n },\n\n getContainerX: function getContainerX() {\n return this.container.offsetWidth;\n },\n\n getContainerY: function getContainerY() {\n return this.container.offsetHeight;\n },\n\n setContainerY: function setContainerY(y) {\n return this.container.style.height = y + 'px';\n },\n\n unsetContainerY: function unsetContainerY() {\n this.container.style.height = null;\n },\n\n /**\n * Creates the expected html structure\n */\n setupMarkup: function setupMarkup() {\n this.container = buildElement('
');\n this.el.parentNode.insertBefore(this.container, this.el);\n this.container.appendChild(this.el);\n\n this.container.style.overflow = 'hidden';\n this.container.style.position = 'relative';\n\n this.el.style.webkitTransformOrigin = '0% 0%';\n this.el.style.mozTransformOrigin = '0% 0%';\n this.el.style.msTransformOrigin = '0% 0%';\n this.el.style.oTransformOrigin = '0% 0%';\n this.el.style.transformOrigin = '0% 0%';\n\n this.el.style.position = 'absolute';\n },\n\n end: function end() {\n this.hasInteraction = false;\n this.sanitize();\n this.update();\n },\n\n /**\n * Binds all required event listeners\n */\n bindEvents: function bindEvents() {\n var self = this;\n detectGestures(this.container, this);\n\n window.addEventListener('resize', this.update.bind(this));\n Array.from(this.el.querySelectorAll('img')).forEach(function(imgEl) {\n imgEl.addEventListener('load', self.update.bind(self));\n });\n\n if (this.el.nodeName === 'IMG') {\n this.el.addEventListener('load', this.update.bind(this));\n }\n },\n\n /**\n * Updates the css values according to the current zoom factor and offset\n */\n update: function update(event) {\n if (this.updatePlaned) {\n return;\n }\n this.updatePlaned = true;\n\n window.setTimeout(function() {\n this.updatePlaned = false;\n\n if (event && event.type === 'resize') {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n if (event && event.type === 'load') {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,\n offsetX = -this.offset.x / zoomFactor,\n offsetY = -this.offset.y / zoomFactor,\n transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' + 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)',\n transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' + 'translate(' + offsetX + 'px,' + offsetY + 'px)',\n removeClone = function() {\n if (this.clone) {\n this.clone.parentNode.removeChild(this.clone);\n delete this.clone;\n }\n }.bind(this);\n\n // Scale 3d and translate3d are faster (at least on ios)\n // but they also reduce the quality.\n // PinchZoom uses the 3d transformations during interactions\n // after interactions it falls back to 2d transformations\n if (!this.options.use2d || this.hasInteraction || this.inAnimation) {\n this.is3d = true;\n removeClone();\n\n this.el.style.webkitTransform = transform3d;\n this.el.style.mozTransform = transform2d;\n this.el.style.msTransform = transform2d;\n this.el.style.oTransform = transform2d;\n this.el.style.transform = transform3d;\n } else {\n // When changing from 3d to 2d transform webkit has some glitches.\n // To avoid this, a copy of the 3d transformed element is displayed in the\n // foreground while the element is converted from 3d to 2d transform\n if (this.is3d) {\n this.clone = this.el.cloneNode(true);\n this.clone.style.pointerEvents = 'none';\n this.container.appendChild(this.clone);\n window.setTimeout(removeClone, 200);\n }\n\n this.el.style.webkitTransform = transform2d;\n this.el.style.mozTransform = transform2d;\n this.el.style.msTransform = transform2d;\n this.el.style.oTransform = transform2d;\n this.el.style.transform = transform2d;\n\n this.is3d = false;\n }\n }.bind(this), 0);\n },\n\n /**\n * Enables event handling for gestures\n */\n enable: function enable() {\n this.enabled = true;\n },\n\n /**\n * Disables event handling for gestures\n */\n disable: function disable() {\n this.enabled = false;\n }\n };\n\n var detectGestures = function detectGestures(el, target) {\n var interaction = null,\n fingers = 0,\n //lastTouchStart = null,\n startTouches = null,\n setInteraction = function setInteraction(newInteraction, event) {\n if (interaction !== newInteraction) {\n\n if (interaction && !newInteraction) {\n switch (interaction) {\n case 'zoom':\n target.handleZoomEnd(event);\n break;\n case 'drag':\n target.handleDragEnd(event);\n break;\n }\n }\n\n switch (newInteraction) {\n case 'zoom':\n target.handleZoomStart(event);\n break;\n case 'drag':\n target.handleDragStart(event);\n break;\n }\n }\n interaction = newInteraction;\n },\n updateInteraction = function updateInteraction(event) {\n if (fingers === 2) {\n setInteraction('zoom');\n } else if (fingers === 1 && target.canDrag()) {\n setInteraction('drag', event);\n } else {\n setInteraction(null, event);\n }\n },\n targetTouches = function targetTouches(touches) {\n return Array.from(touches).map(function(touch) {\n return {\n x: touch.pageX,\n y: touch.pageY\n };\n });\n },\n getDistance = function getDistance(a, b) {\n var x,\n y;\n x = a.x - b.x;\n y = a.y - b.y;\n return Math.sqrt(x * x + y * y);\n },\n calculateScale = function calculateScale(startTouches, endTouches) {\n var startDistance = getDistance(startTouches[0], startTouches[1]),\n endDistance = getDistance(endTouches[0], endTouches[1]);\n return endDistance / startDistance;\n },\n cancelEvent = function cancelEvent(event) {\n event.stopPropagation();\n event.preventDefault();\n },\n /*detectDoubleTap = function detectDoubleTap(event) {\n var time = new Date().getTime();\n\n if (fingers > 1) {\n lastTouchStart = null;\n }\n\n if (time - lastTouchStart < 300) {\n cancelEvent(event);\n\n target.handleDoubleTap(event);\n switch (interaction) {\n case 'zoom':\n target.handleZoomEnd(event);\n break;\n case 'drag':\n target.handleDragEnd(event);\n break;\n }\n } else {\n target.isDoubleTap = false;\n }\n\n if (fingers === 1) {\n lastTouchStart = time;\n }\n },*/\n firstMove = true;\n\n el.addEventListener('touchstart', function(event) {\n if (target.enabled) {\n firstMove = true;\n fingers = event.touches.length;\n //detectDoubleTap(event);\n }\n });\n\n el.addEventListener('touchmove', function(event) {\n if (target.enabled && !target.isDoubleTap) {\n if (firstMove) {\n updateInteraction(event);\n if (interaction) {\n cancelEvent(event);\n }\n startTouches = targetTouches(event.touches);\n } else {\n switch (interaction) {\n case 'zoom':\n if (startTouches.length == 2 && event.touches.length == 2) {\n target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches)));\n }\n break;\n case 'drag':\n target.handleDrag(event);\n break;\n }\n if (interaction) {\n cancelEvent(event);\n target.update();\n }\n }\n\n firstMove = false;\n }\n });\n\n el.addEventListener('touchend', function(event) {\n if (target.enabled) {\n fingers = event.touches.length;\n updateInteraction(event);\n }\n });\n };\n\n return PinchZoom;\n };\n\n var PinchZoom = definePinchZoom();\n\n exports.default = PinchZoom;\n});\n","/* eslint-disable */\nvar QRCode;\nfunction QRCodeGenerator() {\n function QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE;\n this.data = data;\n this.parsedData = [];\n\t\t// Added to support UTF-8 Characters\n\t\tfor (var i = 0, l = this.data.length; i < l; i++) {\n\t\tvar byteArray = [];\n\t\t\tvar code = this.data.charCodeAt(i);\n\n\t\t\tif (code > 0x10000) {\n\t\t\t\tbyteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n\t\t\t\tbyteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[3] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x800) {\n\t\t\t\tbyteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[2] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x80) {\n\t\t\t\tbyteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n\t\t\t\tbyteArray[1] = 0x80 | (code & 0x3F);\n\t\t\t} else {\n\t\t\t\tbyteArray[0] = code;\n\t\t\t}\n\n\t\t\tthis.parsedData.push(byteArray);\n\t\t}\n\n\t\tthis.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n\t\tif (this.parsedData.length != this.data.length) {\n\t\t\tthis.parsedData.unshift(191);\n\t\t\tthis.parsedData.unshift(187);\n\t\t\tthis.parsedData.unshift(239);\n\t\t}\n\t}\n\n\tQR8bitByte.prototype = {\n\t\tgetLength: function (buffer) {\n\t\t\treturn this.parsedData.length;\n\t\t},\n\t\twrite: function (buffer) {\n\t\t\tfor (var i = 0, l = this.parsedData.length; i < l; i++) {\n\t\t\t\tbuffer.put(this.parsedData[i], 8);\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n\t\tthis.typeNumber = typeNumber;\n\t\tthis.errorCorrectLevel = errorCorrectLevel;\n\t\tthis.modules = null;\n\t\tthis.moduleCount = 0;\n\t\tthis.dataCache = null;\n\t\tthis.dataList = [];\n\t}\n\n\tQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\n\treturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}\n\tif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\n\tthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\n\treturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\n\tfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\n\tfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\n\tthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}\n\tvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\n\tthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\n\trow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error(\"code length overflow. (\"\n\t+buffer.getLengthInBits()\n\t+\">\"\n\t+totalDataCount*8\n\t+\")\");}\n\tif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\n\twhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\n\twhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD1,8);}\n\treturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}\n\tvar totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\n\treturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\n\treturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\n\treturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}\n\tfor(var row=0;row=256){n-=255;}\n\treturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\n\tif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\n\tthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\t\n\tfunction _isSupportCanvas() {\n\t\treturn typeof CanvasRenderingContext2D != \"undefined\";\n\t}\n\t\n\t// android 2.x doesn't support Data-URI spec\n\tfunction _getAndroid() {\n\t\tvar android = false;\n\t\tvar sAgent = navigator.userAgent;\n\t\t\n\t\tif (/android/i.test(sAgent)) { // android\n\t\t\tandroid = true;\n\t\t\tvar aMat = sAgent.toString().match(/android ([0-9]\\.[0-9])/i);\n\t\t\t\n\t\t\tif (aMat && aMat[1]) {\n\t\t\t\tandroid = parseFloat(aMat[1]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn android;\n\t}\n\t\n\tvar svgDrawer = (function() {\n\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\n\t\tDrawing.prototype.draw = function (oQRCode) {\n\t\t\tvar _htOption = this._htOption;\n\t\t\tvar _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\n\t\t\tthis.clear();\n\n\t\t\tfunction makeSVG(tag, attrs) {\n\t\t\t\tvar el = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\t\t\t\tfor (var k in attrs)\n\t\t\t\t\tif (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tvar svg = makeSVG(\"svg\" , {'viewBox': '0 0 ' + String(nCount) + \" \" + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});\n\t\t\tsvg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\t\t\t_el.appendChild(svg);\n\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorLight, \"width\": \"100%\", \"height\": \"100%\"}));\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorDark, \"width\": \"1\", \"height\": \"1\", \"id\": \"template\"}));\n\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tif (oQRCode.isDark(row, col)) {\n\t\t\t\t\t\tvar child = makeSVG(\"use\", {\"x\": String(col), \"y\": String(row)});\n\t\t\t\t\t\tchild.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#template\")\n\t\t\t\t\t\tsvg.appendChild(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tDrawing.prototype.clear = function () {\n\t\t\twhile (this._el.hasChildNodes())\n\t\t\t\tthis._el.removeChild(this._el.lastChild);\n\t\t};\n\t\treturn Drawing;\n\t})();\n\n\tvar useSVG = document.documentElement.tagName.toLowerCase() === \"svg\";\n\n\t// Drawing in DOM by using Table tag\n\tvar Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode\n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n var _htOption = this._htOption;\n var _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\t\t\tvar aHTML = [''];\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\taHTML.push('');\n\t\t\t\t\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\taHTML.push('');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\taHTML.push('');\n\t\t\t}\n\t\t\t\n\t\t\taHTML.push('
');\n\t\t\t_el.innerHTML = aHTML.join('');\n\t\t\t\n\t\t\t// Fix the margin values as real size.\n\t\t\tvar elTable = _el.childNodes[0];\n\t\t\tvar nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;\n\t\t\tvar nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;\n\t\t\t\n\t\t\tif (nLeftMarginTable > 0 && nTopMarginTable > 0) {\n\t\t\t\telTable.style.margin = nTopMarginTable + \"px \" + nLeftMarginTable + \"px\";\t\n\t\t\t}\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._el.innerHTML = '';\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})() : (function () { // Drawing in Canvas\n\t\tfunction _onMakeImage() {\n\t\t\tthis._elImage.src = this._elCanvas.toDataURL(\"image/png\");\n\t\t\tthis._elImage.style.display = \"block\";\n\t\t\tthis._elCanvas.style.display = \"none\";\t\t\t\n\t\t}\n\t\t\n\t\t// Android 2.1 bug workaround\n\t\t// http://code.google.com/p/android/issues/detail?id=5141\n\t\tif (this && this._android && this._android <= 2.1) {\n\t \tvar factor = 1 / window.devicePixelRatio;\n\t var drawImage = CanvasRenderingContext2D.prototype.drawImage; \n\t \tCanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {\n\t \t\tif ((\"nodeName\" in image) && /img/i.test(image.nodeName)) {\n\t\t \tfor (var i = arguments.length - 1; i >= 1; i--) {\n\t\t \targuments[i] = arguments[i] * factor;\n\t\t \t}\n\t \t\t} else if (typeof dw == \"undefined\") {\n\t \t\t\targuments[1] *= factor;\n\t \t\t\targuments[2] *= factor;\n\t \t\t\targuments[3] *= factor;\n\t \t\t\targuments[4] *= factor;\n\t \t\t}\n\t \t\t\n\t \tdrawImage.apply(this, arguments); \n\t \t};\n\t\t}\n\t\t\n\t\t/**\n\t\t * Check whether the user's browser supports Data URI or not\n\t\t * \n\t\t * @private\n\t\t * @param {Function} fSuccess Occurs if it supports Data URI\n\t\t * @param {Function} fFail Occurs if it doesn't support Data URI\n\t\t */\n\t\tfunction _safeSetDataURI(fSuccess, fFail) {\n var self = this;\n self._fFail = fFail;\n self._fSuccess = fSuccess;\n\n // Check it just once\n if (self._bSupportDataURI === null) {\n var el = document.createElement(\"img\");\n var fOnError = function() {\n self._bSupportDataURI = false;\n\n if (self._fFail) {\n self._fFail.call(self);\n }\n };\n var fOnSuccess = function() {\n self._bSupportDataURI = true;\n\n if (self._fSuccess) {\n self._fSuccess.call(self);\n }\n };\n\n el.onabort = fOnError;\n el.onerror = fOnError;\n el.onload = fOnSuccess;\n el.src = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"; // the Image contains 1px data.\n return;\n } else if (self._bSupportDataURI === true && self._fSuccess) {\n self._fSuccess.call(self);\n } else if (self._bSupportDataURI === false && self._fFail) {\n self._fFail.call(self);\n }\n\t\t};\n\t\t\n\t\t/**\n\t\t * Drawing QRCode by using canvas\n\t\t * \n\t\t * @constructor\n\t\t * @param {HTMLElement} el\n\t\t * @param {Object} htOption QRCode Options \n\t\t */\n\t\tvar Drawing = function (el, htOption) {\n \t\tthis._bIsPainted = false;\n \t\tthis._android = _getAndroid();\n\t\t\n\t\t\tthis._htOption = htOption;\n\t\t\tthis._elCanvas = document.createElement(\"canvas\");\n\t\t\tthis._elCanvas.width = htOption.width;\n\t\t\tthis._elCanvas.height = htOption.height;\n\t\t\tel.appendChild(this._elCanvas);\n\t\t\tthis._el = el;\n\t\t\tthis._oContext = this._elCanvas.getContext(\"2d\");\n\t\t\tthis._bIsPainted = false;\n\t\t\tthis._elImage = document.createElement(\"img\");\n\t\t\tthis._elImage.alt = \"Scan me!\";\n\t\t\tthis._elImage.style.display = \"none\";\n\t\t\tthis._el.appendChild(this._elImage);\n\t\t\tthis._bSupportDataURI = null;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode \n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n var _elImage = this._elImage;\n var _oContext = this._oContext;\n var _htOption = this._htOption;\n \n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = _htOption.width / nCount;\n\t\t\tvar nHeight = _htOption.height / nCount;\n\t\t\tvar nRoundedWidth = Math.round(nWidth);\n\t\t\tvar nRoundedHeight = Math.round(nHeight);\n\n\t\t\t_elImage.style.display = \"none\";\n\t\t\tthis.clear();\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tvar bIsDark = oQRCode.isDark(row, col);\n\t\t\t\t\tvar nLeft = col * nWidth;\n\t\t\t\t\tvar nTop = row * nHeight;\n\t\t\t\t\t_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\n\t\t\t\t\t_oContext.lineWidth = 1;\n\t\t\t\t\t_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\t\t\t\t\t\n\t\t\t\t\t_oContext.fillRect(nLeft, nTop, nWidth, nHeight);\n\t\t\t\t\t\n\t\t\t\t\t// 안티 앨리어싱 방지 처리\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.floor(nLeft) + 0.5,\n\t\t\t\t\t\tMath.floor(nTop) + 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t\t\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.ceil(nLeft) - 0.5,\n\t\t\t\t\t\tMath.ceil(nTop) - 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis._bIsPainted = true;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Make the image from Canvas if the browser supports Data URI.\n\t\t */\n\t\tDrawing.prototype.makeImage = function () {\n\t\t\tif (this._bIsPainted) {\n\t\t\t\t_safeSetDataURI.call(this, _onMakeImage);\n\t\t\t}\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Return whether the QRCode is painted or not\n\t\t * \n\t\t * @return {Boolean}\n\t\t */\n\t\tDrawing.prototype.isPainted = function () {\n\t\t\treturn this._bIsPainted;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\n\t\t\tthis._bIsPainted = false;\n\t\t};\n\t\t\n\t\t/**\n\t\t * @private\n\t\t * @param {Number} nNumber\n\t\t */\n\t\tDrawing.prototype.round = function (nNumber) {\n\t\t\tif (!nNumber) {\n\t\t\t\treturn nNumber;\n\t\t\t}\n\t\t\t\n\t\t\treturn Math.floor(nNumber * 1000) / 1000;\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})();\n\t\n\t/**\n\t * Get the type by string length\n\t * \n\t * @private\n\t * @param {String} sText\n\t * @param {Number} nCorrectLevel\n\t * @return {Number} type\n\t */\n\tfunction _getTypeNumber(sText, nCorrectLevel) {\t\t\t\n\t\tvar nType = 1;\n\t\tvar length = _getUTF8Length(sText);\n\t\t\n\t\tfor (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n\t\t\tvar nLimit = 0;\n\t\t\t\n\t\t\tswitch (nCorrectLevel) {\n\t\t\t\tcase QRErrorCorrectLevel.L :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][0];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.M :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.Q :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][2];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.H :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][3];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tif (length <= nLimit) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tnType++;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (nType > QRCodeLimitLength.length) {\n\t\t\tthrow new Error(\"Too long data\");\n\t\t}\n\t\t\n\t\treturn nType;\n\t}\n\n\tfunction _getUTF8Length(sText) {\n\t\tvar replacedText = encodeURI(sText).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n\t\treturn replacedText.length + (replacedText.length != sText ? 3 : 0);\n\t}\n\t\n\t/**\n\t * @class QRCode\n\t * @constructor\n\t * @example \n\t * new QRCode(document.getElementById(\"test\"), \"http://jindo.dev.naver.com/collie\");\n\t *\n\t * @example\n\t * var oQRCode = new QRCode(\"test\", {\n\t * text : \"http://naver.com\",\n\t * width : 128,\n\t * height : 128\n\t * });\n\t * \n\t * oQRCode.clear(); // Clear the QRCode.\n\t * oQRCode.makeCode(\"http://map.naver.com\"); // Re-create the QRCode.\n\t *\n\t * @param {HTMLElement|String} el target element or 'id' attribute of element.\n\t * @param {Object|String} vOption\n\t * @param {String} vOption.text QRCode link data\n\t * @param {Number} [vOption.width=256]\n\t * @param {Number} [vOption.height=256]\n\t * @param {String} [vOption.colorDark=\"#000000\"]\n\t * @param {String} [vOption.colorLight=\"#ffffff\"]\n\t * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H] \n\t */\n\tQRCode = function (el, vOption) {\n\t\tthis._htOption = {\n\t\t\twidth : 256, \n\t\t\theight : 256,\n\t\t\ttypeNumber : 4,\n\t\t\tcolorDark : \"#000000\",\n\t\t\tcolorLight : \"#ffffff\",\n\t\t\tcorrectLevel : QRErrorCorrectLevel.L\n\t\t};\n\t\t\n\t\tif (typeof vOption === 'string') {\n\t\t\tvOption\t= {\n\t\t\t\ttext : vOption\n\t\t\t};\n\t\t}\n\t\t\n\t\t// Overwrites options\n\t\tif (vOption) {\n\t\t\tfor (var i in vOption) {\n\t\t\t\tthis._htOption[i] = vOption[i];\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (typeof el == \"string\") {\n\t\t\tel = document.getElementById(el);\n\t\t}\n\n\t\tif (this._htOption.useSVG) {\n\t\t\tDrawing = svgDrawer;\n\t\t}\n\t\t\n\t\tthis._android = _getAndroid();\n\t\tthis._el = el;\n\t\tthis._oQRCode = null;\n\t\tthis._oDrawing = new Drawing(this._el, this._htOption);\n\t\t\n\t\tif (this._htOption.text) {\n\t\t\tthis.makeCode(this._htOption.text);\t\n\t\t}\n\t};\n\t\n\t/**\n\t * Make the QRCode\n\t * \n\t * @param {String} sText link data\n\t */\n\tQRCode.prototype.makeCode = function (sText) {\n\t\tthis._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n\t\tthis._oQRCode.addData(sText);\n\t\tthis._oQRCode.make();\n\t\tthis._el.title = sText;\n\t\tthis._oDrawing.draw(this._oQRCode);\t\t\t\n\t\tthis.makeImage();\n\t};\n\t\n\t/**\n\t * Make the Image from Canvas element\n\t * - It occurs automatically\n\t * - Android below 3 doesn't support Data-URI spec.\n\t * \n\t * @private\n\t */\n\tQRCode.prototype.makeImage = function () {\n\t\tif (typeof this._oDrawing.makeImage == \"function\" && (!this._android || this._android >= 3)) {\n\t\t\tthis._oDrawing.makeImage();\n\t\t}\n\t};\n\t\n\t/**\n\t * Clear the QRCode\n\t */\n\tQRCode.prototype.clear = function () {\n\t\tthis._oDrawing.clear();\n\t};\n\t\n\t/**\n\t * @name QRCode.CorrectLevel\n\t */\n\tQRCode.CorrectLevel = QRErrorCorrectLevel;\n}\nexport {QRCodeGenerator, QRCode}\n","'use strict';\n\nimport {setupVariationListeners, afterAttributeSelect} from './variationsUtils';\nimport {setupAddToCart} from './addToCart';\nimport {setupConfirmEngravAddToCart, setupConfirmEmbossAddToCart, setupConfirmBraceletAdjustmentAddToCart, updateEngvPreview} from './productPersonalisation';\nimport {setupZoomTriggers} from './productZoom';\nimport {initShareLink} from './productUtils';\nimport {setupProductDescription} from './productDescription';\nimport {widget3DConfiguration} from './widget3D';\nimport {refillsSetup} from './caseRefills';\nimport * as applepayapi from '../applepayapi';\nimport {vtoSetup} from './virtualTryOnPDP';\n\nexport default {\n setupAddToCart: setupAddToCart,\n setupConfirmEngravAddToCart: setupConfirmEngravAddToCart,\n setupConfirmEmbossAddToCart: setupConfirmEmbossAddToCart,\n setupConfirmBraceletAdjustmentAddToCart: setupConfirmBraceletAdjustmentAddToCart,\n updateEngvPreview: updateEngvPreview,\n setupVariationListeners: setupVariationListeners,\n setupZoom: setupZoomTriggers,\n setupProductDescription: setupProductDescription,\n widget3DConfiguration: widget3DConfiguration,\n refillsSetup: refillsSetup,\n initShareLink: initShareLink,\n afterAttributeSelect: afterAttributeSelect,\n applepayapi: applepayapi.init,\n vtoSetup: vtoSetup\n};\n","import {updatePuck} from '../components/puckSizer';\n\nexport function setupProductDescription() {\n let triggerEl = document.querySelector('[data-puck-component=\"puck-default\"]'),\n puckTriggers = document.querySelectorAll('[data-product-component=\"puck-trigger\"]');\n\n updatePuck(triggerEl);\n\n [].forEach.call(puckTriggers, currentTrigger => currentTrigger.addEventListener('click', handlePuckTrigger));\n}\n\nfunction handlePuckTrigger() {\n updatePuck(this);\n}\n","'use strict';\n\nimport * as dialog from '../components/dialog';\nimport {getProductContainer, getPidValue} from './productUtils';\nimport modules from '../helpers/modules';\nimport {subscribe} from '../helpers/pubSub';\nimport {getQueryStringParams, appendParamsToURL} from '../helpers/urlUtilities';\nimport '../components/jquery.zoom.min';\nimport * as mypichzoom from '../components/pinchzoom';\n\nfunction _onZoomSlideChange(contextEl) {\n subscribe('productZoom:slideChange', function() {\n modules.tracking.init(null, {\n trackEvent: 'productSwitchImage',\n trackObject: {\n asyncParams: {\n pid: getPidValue(contextEl)\n }\n }\n });\n });\n}\n\n/**\n * Grab the configuration from the closest product container's data-product-querystring attribute.\n * Then display a modal using these configs.\n * @return {[type]} [description]\n */\nexport function handleZoomTrigger() {\n let productContainer = getProductContainer(this),\n params = getQueryStringParams(productContainer.getAttribute('data-product-querystring')),\n // $mainSlider = $(this.closest('[data-product-component=\"image-gallery\"]')),\n selectedIndex = this.querySelector('[data-product-component=\"image\"]').getAttribute('data-image-index');\n\n params.startindex = selectedIndex;\n //Always set PID in the case the value is missing from the params.\n params.pid = getPidValue(this);\n\n dialog.open({\n url: appendParamsToURL(window.SFRA.Urls.productZoom, params),\n options: {\n modalID: 'productZoom',\n modalClass: 'modal--product-zoom modal--small-full',\n keepAlive: false,\n afterScrollLockCallback: function(modal) {\n let zoomGAllery = modal.querySelector('[data-product-component=\"image-gallery\"]'),\n productzoomitem = document.querySelectorAll('[data-zoom-item=\"data-zoom\"]');\n\n //Force browser to wait until the previous instruction is done before continuing.\n //This ensures the zoom gallery is properly adjusted after the scrollbars are hidden.\n window.setTimeout(function() {\n $(zoomGAllery).slick('setPosition');\n //pinch zoom for devices.\n if ( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\n Array.from(document.querySelectorAll('div.pinch-zoom img')).forEach((element) => {\n new mypichzoom.default(element, {});\n });\n } else {\n $(productzoomitem).zoom({on: 'grab' });\n }\n }, 0);\n }\n }\n });\n}\n\nexport function setupZoomTriggers() {\n let zoomTriggers = document.querySelectorAll('[data-product-component=\"zoom-trigger\"]');\n\n _onZoomSlideChange(zoomTriggers[0]);\n\n [].forEach.call(zoomTriggers, function(currentTrigger) {\n $(currentTrigger).attr('tabindex', '0');\n currentTrigger.addEventListener('click', handleZoomTrigger);\n });\n}\n","import {QRCodeGenerator, QRCode} from '../helpers/qrcode';\nvar isQRCodeGenerated = false;\n\nexport function vtoSetup() {\n let vtoBtn = document.querySelector('.vto-badge');\n\n if (vtoBtn) {\n vtoBtn.addEventListener('click', function() {\n let vtoURL = vtoBtn.getAttribute('data-vto-url');\n let origin = window.location.href;\n // replace origin in vtoURL\n vtoURL = vtoURL.replace(new RegExp('{origin}', 'g'), origin);\n let isMobile = $(window).width() <= 480 ? true : false;\n if (isMobile) {\n window.open(vtoURL, '_blank');\n return;\n }\n // generate QR code\n let vtoQrContainer = document.querySelector('.vto__qr-container');\n let vtoQrImage = document.querySelector('.vto-qr-code');\n let vtoQrClose = document.querySelector('.vto-qrcode-close');\n if (!isQRCodeGenerated) {\n QRCodeGenerator();\n var qrcode = new QRCode(vtoQrImage, {\n width: 180,\n height: 180\n });\n }\n if (vtoURL) {\n if (!isQRCodeGenerated) {\n qrcode.makeCode(vtoURL);\n isQRCodeGenerated = true;\n }\n vtoQrContainer.classList.remove('hidden');\n vtoBtn.classList.add('hidden');\n vtoQrClose.addEventListener('click', function() {\n vtoQrContainer.classList.add('hidden');\n vtoBtn.classList.remove('hidden');\n })\n }\n });\n }\n}\n","'use strict';\n\nimport coreProduct from '*/index';\nimport {initMethods} from '../helpers/utilities';\nimport storePickup from '../storePickup/storePickup';\nimport productStorePickup from './productStorePickup';\n\ninitMethods(storePickup);\ninitMethods(productStorePickup);\n\nexport default coreProduct;\n","'use strict';\n\nimport {updateAddToCart} from './addToCart';\nimport {updateAvailability} from './availabilityUtils';\nimport {requestProductUpdate} from './variationsUtils';\nimport {addEventListenerList} from '../helpers/utilities';\nimport {getSelectedStoreInput} from '../modules/module.store-locator.js';\nimport {getProductContainer, getQuantitySelector} from './productUtils';\nimport {deselectStore, requestInventoryCheck, updateTriggerStatus} from '../storePickup/storePickup';\n\n/**\n * Update the product data with the `storeId` value before it's added to cart.\n */\nfunction _setStoreIDOnProductData(productObject, productContainer) {\n let storeIDEl = getSelectedStoreInput(productContainer),\n productOptions = productObject && productObject.options ? JSON.parse(productObject.options) : null;\n\n productObject.storeId = storeIDEl && storeIDEl.value ? storeIDEl.value : null;\n\n //Push the selected `storeId` in the product's options array.\n //This is a safe way to handle it since in the backend `cartHelpers.addProductToCart()` method,\n //the `storeId` object is removed from this options array.\n if (productOptions) {\n productOptions.push({\n storeId: productObject.storeId\n });\n\n productObject.options = JSON.stringify(productOptions);\n }\n}\n\nexport default {\n updateSelectStore: function() {\n $('body').on('storePickup:afterInventoryCheck', function(evt, response) {\n updateTriggerStatus(response.data, response.container);\n updateAvailability(response.data, response.container);\n updateAddToCart(response.data.product, response.container);\n });\n },\n\n removeSelectedStoreOnAttributeChange: function() {\n $('body').on('product:afterAttributeSelect', function(evt, response) {\n let storeIDEl = getSelectedStoreInput(response.container);\n\n updateTriggerStatus(response.data, response.container);\n\n if (storeIDEl && storeIDEl.value) {\n requestInventoryCheck(response.container, response.data.product.id, storeIDEl.value);\n }\n });\n },\n\n updateAddToCartFormData: function() {\n $('body').on('product:updateAddToCartFormData', function(e, response) {\n //Special check for when the current product has children products.\n //This should only be the case for Product Sets.\n if (response.formData.pidsObj) {\n let pidsObj = JSON.parse(response.formData.pidsObj);\n\n pidsObj.forEach(function(currentData, index) {\n _setStoreIDOnProductData(currentData, response.childProducts.list[index]);\n });\n\n response.formData.pidsObj = JSON.stringify(pidsObj);\n }\n\n _setStoreIDOnProductData(response.formData, response.container);\n });\n },\n\n removeStoreSelection: function() {\n addEventListenerList('[data-product-component=\"pickup-remove\"]', 'click', function() {\n deselectStore(getProductContainer(this));\n requestProductUpdate.call(getQuantitySelector(this));\n });\n }\n};\n"],"sourceRoot":""}