{"version":3,"file":"static/js/10.b6cd3c54a9605150f786.chunk.js","mappings":";s9BA8EA,IAAMA,EAAN,cAAqCC,EAAAA,UAoCjCC,YAAmBC,GACfC,MAAMD,GA5BU,KAAAE,gBAA0B,MAYtC,KAAAC,eAAsC,GAEtC,KAAAC,gBAAoC,GAI3B,KAAAC,mBAA6B,EAO7B,KAAAC,iBAAiDR,EAAAA,YAyPjD,KAAAS,sBAAwBC,UACrCC,KAAKC,sBACL,MAAMC,EAAUF,KAAKG,cAAcC,qBAAqBC,EAAQL,KAAKM,oBACrEC,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEC,OAAQ,MACrCF,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEE,QAASR,EAAQQ,WAC9CH,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEG,WAAYT,EAAQS,cACjDJ,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEI,KAAMV,EAAQU,QAC3CL,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEK,MAAOX,EAAQW,SAC5CN,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEM,aAAcZ,EAAQY,gBACnDP,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEO,YAAab,EAAQa,cAGlDC,YAAW,MACPT,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEC,OAAQP,EAAQO,QAAS,GACvD,EAAE,EAOQ,KAAAR,oBAAsB,KACTD,KAAKG,cAAcc,iBACzCjB,KAAKQ,iBAAiBU,0BAA4BlB,KAAKP,iBAEzC0B,SAAQC,IAAS,IAAAC,OACYC,IAAvCtB,KAAKQ,iBAAiBY,EAAOG,OAAwC,QAAjBF,EAACrB,KAAKwB,mBAAW,IAAAH,GAAhBA,EAAkBI,sBAAsBC,SAASN,EAAOG,QAC7GvB,KAAKG,cAAciB,EAAOG,MAAQ,GAAG,IAG7CvB,KAAK2B,kBAAkB,EAOV,KAAAA,iBAAmB,KAChC3B,KAAK4B,gBAAkB,CAAC,CAAC,EAQZ,KAAAC,mBAAqB,CAACN,EAAcO,MACjDvB,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAE,CAACe,GAAOO,IACrC9B,KAAKG,cAAc4B,sBAAsB/B,KAAKQ,iBAAkBR,KAAK4B,gBAAiB5B,KAAKP,gBAAiB8B,EAAK,EAOpG,KAAAS,gBAAmBzC,IAChC,MAAM,KAAE0C,GAAS1C,GAEjB2C,EAAAA,EAAAA,KACI,IAAMD,EAAKvC,eAAeW,SAC1B,KAAK,IAAA8B,EACDnC,KAAKN,eAA2C,QAA7ByC,EAAGF,EAAKvC,eAAeW,cAAM,IAAA8B,EAAAA,EAAI,EAAE,KAI9DD,EAAAA,EAAAA,KACI,IAAMD,EAAKtC,gBAAgBU,SAC3B,KAAK,IAAA+B,EACDpC,KAAKL,gBAA6C,QAA9ByC,EAAGH,EAAKtC,gBAAgBU,cAAM,IAAA+B,EAAAA,EAAI,EAAE,KAIhEF,EAAAA,EAAAA,KACI,IAAMD,EAAKI,cAAchC,SACzB,KAAK,IAAAiC,EACDtC,KAAKM,kBAA6C,QAA5BgC,EAAGL,EAAKI,cAAchC,cAAM,IAAAiC,EAAAA,EAAI,EAAE,GAE/D,EAOY,KAAAC,0BAA4B,KAA6B,IAAAC,EACtE,OAAOC,EAAAA,EAAAA,GAAiB,CACpBC,UAAW1C,KAAK0C,UAChBC,YAAaC,EAAAA,EAAYC,QACzB1C,cAAeH,KAAKG,cAAcc,iBAA+D,QAA/CuB,EAACxC,KAAKQ,iBAAiBU,gCAAwB,IAAAsB,EAAAA,EAAIxC,KAAKP,iBAC1GqD,uBAAwB9C,KAAKP,gBAC7BG,mBAAoBI,KAAKJ,mBACzBmD,gBAAiB/C,KAAKQ,iBACtBoB,gBAAiB5B,KAAK4B,gBACtBoB,sBAAuBhD,KAAKgD,sBAC5BC,oBAAqBjD,KAAKG,cAAc+C,gCACpClD,KAAK0C,UAAUS,iCACfnD,KAAKM,mBAET8C,iBAAkBpD,KAAKoD,iBACvBC,cAAerD,KAAKsD,+BACpBC,iBAAkBvD,KAAKwD,kCACvBC,uBAAwBzD,KAAKT,MAAMmE,YAAYD,uBAC/CE,OAAQ3D,KAAK4D,iBACbC,SAAU7D,KAAK8D,YACjB,EAmBW,KAAAC,iBAAoBtE,IAA2B,IAAAuE,EAC5DhE,KAAKP,gBAAkBA,EACvB,MAAMwE,EAAyBjE,KAAKG,cAAc+D,0BAA0BzE,IAC5Ec,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEU,yBAA0BzB,KACvDc,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAE2D,uBAAwBF,IACrC,QAAhBD,EAAAhE,KAAKwB,mBAAW,IAAAwC,GAAhBA,EAAkBI,gCAAgCH,GAClDjE,KAAKC,qBAAqB,EAOb,KAAAoE,6BAA+B,KAC5C,MAAM,OAAEC,GAAWtE,KAAKT,MAClBgF,EAA8C,GAQpD,OANKD,EAAOE,iBACRD,EAAyBE,KAAKC,EAAAA,GAAgBC,kBAGlDJ,EAAyBE,KAAKC,EAAAA,GAAgBE,WAEvCL,CAAwB,EAMlB,KAAAM,sBAAwB9E,UACrC,MACIkC,MACI6C,2BAA6BzE,OAAQyE,KAEzC9E,KAAKT,MAEuC,IAADwF,EAA3CD,SAAAA,EAA2BE,iBACX,QAAhBD,EAAA/E,KAAKwB,mBAAW,IAAAuD,GAAhBA,EAAkBE,kBAAkB,yBAA0B,mCAAoCjF,KAAKF,uBAAuB,EAQrH,KAAAwD,+BAAkC4B,IAC/C,MAAMpD,GAASoD,EAAMC,OAAOrD,OAAS,IAAIsD,QAAQ,IAAIC,OAAO,OAAQ,MAAO,IAC3ErF,KAAK6B,mBAAmBqD,EAAMC,OAAO5D,KAAMO,EAAM,EAOpC,KAAA0B,kCAAqC0B,IAClDlF,KAAK6B,mBAAmBqD,EAAMC,OAAO5D,KAAM2D,EAAMC,OAAOrD,OAEpDoD,EAAMC,OAAO5D,OAASmD,EAAAA,GAAgBA,EAAAA,GAAgBxD,2BACtDlB,KAAK+D,iBAAiBmB,EAAMC,OAAOrD,MAAO,EAOjC,KAAAwD,mBAAqB,MAE7BtF,KAAKP,iBACJO,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,QAKnG1F,KAAK2F,cAAcC,kBAAkB5F,KAAKP,iBAAiBoG,MAAMxF,IAC3CA,EAAOyF,MAAKC,GAASA,EAAMC,UAAYhG,KAAKQ,iBAAiBK,UAI3EN,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEK,MAAO,KAExCb,KAAKM,kBAAoBD,CAAM,GACjC,EAMW,KAAA4F,iBAAmB,KAAW,IAAAC,EAC3ClG,KAAKT,MAAMmE,YAAYyC,KAAK,CACxBC,OAAQpG,KAAKqG,yBAA2B,WAAa,WACrDC,OAAQtG,KAAKsG,OACbzC,SAAU7D,KAAK6D,SACf0C,SAAUvG,KAAKuG,WAGnB,MAAM,eAAEC,EAAc,sCAAEC,GAAyE,QAAlCP,EAAGlG,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA6F,EAAAA,EAAI,CAAC,EAElGlG,KAAKqG,2BACDG,GACAxG,KAAK2G,+BAAiCF,SAAAA,EACtCzG,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAML,GACpDxG,KAAK8G,sBACE9G,KAAK+G,gCACZ/G,KAAK2G,gCAAiC,EACtC3G,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKgH,mBAEzDhH,KAAK2G,gCAAiC,EACtC3G,KAAK4G,wBAAwBpB,EAAAA,EAAiBC,MAAI,EAmB7C,KAAAwB,sCAAyC/B,IACtDlF,KAAK2G,+BAAiCzB,EAAMgC,cAAcC,QAEtDnH,KAAK2G,gCAAkC3G,KAAKgH,gBAC5ChH,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKgH,iBAEzDhH,KAAK4G,wBAAwBpB,EAAAA,EAAiBC,IAAKzF,KAAKwG,eAAgB,EAsG/D,KAAA5C,iBAAmB,KACmF,IAADwD,EAAAC,EAAlH,IAAKrH,KAAKG,cAAc4B,sBAAsB/B,KAAKQ,iBAAkBR,KAAK4B,gBAAiB5B,KAAKP,iBAU5F,OATAO,KAAKT,MAAMmE,YAAY4D,aAAY,QAGA,QAA/BF,EAAApH,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA+G,GAA/BA,EAAiCG,gDACF,QADgDF,EAC/ErH,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAgH,GAA/BA,EAAiCG,mCAEjCxH,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOoH,+BAA+B,CAAEC,6BAA6B,KAMtG1H,KAAK2H,mBAAmB3H,KAAKQ,kBAC7BR,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKQ,kBACzDR,KAAK8G,oBAAoB,EAMZ,KAAAP,SAAW,KACxB,OAAQvG,KAAKuF,kBACT,KAAKC,EAAAA,EAAiBC,IACtB,KAAKD,EAAAA,EAAiBE,OAClB1F,KAAKT,MAAMqI,UAAUC,YAAY,uDACjC7H,KAAK4D,mBACL,MACJ,KAAK4B,EAAAA,EAAiBqB,KAClB7G,KAAKT,MAAMqI,UAAUC,YAAY,8CAC7B7H,KAAK+C,kBACL/C,KAAK2H,mBAAmB3H,KAAK+C,iBAC7B/C,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAK+C,iBACzD/C,KAAK8G,sBAET,MACJ,QACI9G,KAAKT,MAAMqI,UAAUE,MAAM,qBAAqB,EAO3C,KAAAjE,SAAW,KACxB,OAAQ7D,KAAKuF,kBACT,KAAKC,EAAAA,EAAiBC,IACtB,KAAKD,EAAAA,EAAiBE,OAClB1F,KAAKT,MAAMqI,UAAUC,YAAY,uDACjC7H,KAAK8D,aACL9D,KAAKC,sBACL,MACJ,KAAKuF,EAAAA,EAAiBqB,KAClB7G,KAAKT,MAAMqI,UAAUC,YAAY,8CACjC7H,KAAK8D,aACL,MACJ,QACI9D,KAAKT,MAAMqI,UAAUE,MAAM,qBAAqB,EAO3C,KAAAxB,OAAS,KACtBtG,KAAKT,MAAMqI,UAAUC,YAAY,qCAE7B7H,KAAK2G,gCAAkC3G,KAAKgH,iBAAmBhH,KAAK+G,+BACpE/G,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKgH,iBAEzDhH,KAAK4G,wBAAwBpB,EAAAA,EAAiBC,IAAKzF,KAAKwG,gBAE5DxG,KAAKT,MAAMmE,YAAYqE,YAAY,EAOtB,KAAAJ,mBAAsBzH,IACnC,GAAIF,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAQ,CACjC,MAAM2H,EAAiBC,EAAA,GAAQ/H,GAE3BA,EAAQgB,2BAA6B8G,EAAkB7D,yBACvD6D,EAAkB7D,uBAAyBnE,KAAKG,cAAc+D,0BAA0BhE,EAAQgB,2BAGpGlB,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAO6H,qBAAqB,CACjDF,oBACAG,qBAAsB,CAClB1B,sCAAuCzG,KAAK2G,iCAEjD,GAOM,KAAA7C,WAAa,KAC1B9D,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKwG,gBACzDxG,KAAK8G,oBAAoB,EAQZ,KAAAF,wBAA0B,CAACwB,EAA6BrF,KACrE/C,KAAKuF,iBAAmB6C,EACxBpI,KAAK+C,gBAAkBA,EAEnB/C,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,SAC7F1F,KAAKQ,iBAAmByH,EAAA,GAAKjI,KAAK+C,kBAAqB,CAAC,GACxDxC,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CACvBU,yBAA0BlB,KAAKQ,iBAAiBU,0BAA4BlB,KAAKP,mBAErFc,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEmE,iBAAkB3E,KAAKQ,iBAAiBmE,kBAAoB3E,KAAKJ,qBAAsB,EAO3G,KAAAkH,mBAAqB,KAC9B9G,KAAKuF,mBAAqBC,EAAAA,EAAiBqB,KAC3C7G,KAAKT,MAAMmE,YAAY2E,UAEvBrI,KAAKT,MAAMmE,YAAYqE,YAAa,EAK3B,KAAAO,iBAAoBC,IACjCvI,KAAKT,MAAMqI,UAAUE,MAAMS,GAC3BvI,KAAKT,MAAMmE,YAAY4D,aAAY,GACnCtH,KAAKT,MAAMmE,YAAYqE,aACvB/H,KAAKwI,SAAS,CACVD,gBACF,EAvuBF,MAAM,QAAEE,EAAO,KAAExG,EAAI,UAAES,EAAS,UAAEkF,GAAc5H,KAAKT,MAErDS,KAAKQ,iBAAmB,CAAC,EACzBR,KAAK4B,gBAAkB,CAAC,EACxB5B,KAAK2G,gCAAiC,EACtC3G,KAAK0C,UAAYA,EACjB1C,KAAKuF,iBAAmBC,EAAAA,EAAiBkD,KACzC1I,KAAKL,gBAAkBsC,EAAKtC,gBAAgBU,QAAU,GACtDL,KAAKN,eAAiBuC,EAAKvC,eAAeW,QAAU,GACpDL,KAAKM,kBAAoB2B,EAAKI,cAAchC,QAAU,GACtDL,KAAK2F,cAAgB,IAAIgD,EAAAA,EAAcF,EAAS/F,EAAWkF,GAC3D5H,KAAKG,cAAgB,IAAIyI,EAAAA,EACrB5I,KAAKN,eACL,IAAImJ,EAAAA,EAAeZ,EAAC,CAAC,EAAIvF,GAAa1C,KAAKqE,gCAC3CrE,KAAKL,iBAETK,KAAKoD,kBAAmB0F,EAAAA,EAAAA,oBACpB9I,KAAKT,MAAMkJ,QAAQM,QAAQC,kBAC3BhJ,KAAKT,MAAM0J,aACXjJ,KAAKT,MAAMqI,WAGf5H,KAAK+F,MAAQ,CACTmD,eAAe,EACfC,0BAA0B,EAC1BC,8BAA8B,EAC9Bb,aAAc,GAItB,CAEOxI,0BAAuB,IAAAsJ,EAC1B,MACIZ,SAAS,UACLb,EACA0B,eACIC,gBAAgB,QAAEC,KAG1BlF,QAAQ,sBAAEmF,EAAqB,mBAAEC,IACjC1J,KAAKT,MAoDT,GAjDAS,KAAKgC,gBAAgBhC,KAAKT,OAE1BS,KAAKT,MAAM0C,KAAKyE,SAASb,MAAK,KAC1B7F,KAAK2J,6BACL3J,KAAKiG,kBAAkB,KAG3B/D,EAAAA,EAAAA,KACI,IAAMlC,KAAKP,kBACX,KACIO,KAAKsF,oBAAoB,KAIjCpD,EAAAA,EAAAA,KACI,IAAMlC,KAAKuF,mBACX,KACIvF,KAAKsF,oBAAoB,KAIjCpD,EAAAA,EAAAA,KACI,IAAMlC,KAAKT,MAAM0C,KAAKyE,SAASrG,QAAUL,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAO2G,kBACzEA,IACQhH,KAAKT,MAAMmE,YAAYkG,aACnB5C,GAAmBhH,KAAK2G,gCACxB3G,KAAK2G,gCAAiC,EACtC3G,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAMG,IAC7CA,GAAmBhH,KAAK2G,gCAC/B3G,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAMG,GAAgB,KAMpF9E,EAAAA,EAAAA,KACI,IAAMlC,KAAKqG,2BACXA,IAKY,IAADwD,EAJHxD,EACIrG,KAAKT,MAAMmE,YAAYoG,YACvB9J,KAAKsG,UAGsB,QAA/BuD,EAAA7J,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAwJ,GAA/BA,EAAiCE,qBAAqB,CAAC,GACvD/J,KAAKT,MAAMmE,YAAYsG,YAAY,IAK3CP,EAAuB,CACvB,GAAID,IAAYA,EAAQS,eAEpB,YADArC,EAAUE,MAAM,8BAIpB,GAAI0B,IAAYA,EAAQU,gBAEpB,YADAtC,EAAUE,MAAM,4BAIpB,MAAMqC,EAAOlC,EAAA,GAA6ByB,GAC1C1J,KAAKwB,YAAc,IAAI4I,EAAAA,EACnBxC,EACAuC,EACAX,aAAO,EAAPA,EAASS,eACTT,aAAO,EAAPA,EAASa,4BACTb,aAAO,EAAPA,EAASc,oBAKTtK,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,QACzCL,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,cAExF1F,KAAKwB,YAAY+I,kBAAkBvK,KAAKT,MAAM0C,KAAK6C,4BAG7D5C,EAAAA,EAAAA,KACI,SAAAsI,EAAA,OACoD,QAAhDA,EAAAxK,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,cAAM,IAAAmK,OAAA,EAAhDA,EAAkDC,cACjDzK,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,OAAO,IACzG3F,UAAW,IAAA2K,QACe,QAAtBA,EAAM1K,KAAKwB,mBAAW,IAAAkJ,OAAA,EAAhBA,EAAkBH,kBAAkBvK,KAAKT,MAAM0C,KAAK6C,2BAA0B,KAI5F5C,EAAAA,EAAAA,KACI,SAAAyI,EAAA,OAAsD,QAAtDA,EAAM3K,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,cAAM,IAAAsK,OAAA,EAAhDA,EAAkD3F,cAAc,IACtEjF,gBACUC,KAAK6E,uBAAuB,GAExC,CAG6B,QAAnCwE,EAAIrJ,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAgJ,GAA/BA,EAAiCuB,6CACjC1I,EAAAA,EAAAA,KACI,SAAA2I,EAAA,OAAqC,QAArCA,EAAM7K,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAwK,OAAA,EAA/BA,EAAiCC,aAAa,IACpDA,IAEQA,GACAA,EAAcC,gBAAkBC,EAAAA,cAAc5L,wBAC9C0L,EAAcvC,cAEdvI,KAAKsI,iBAAiBwC,EAAcvC,aAAc,KAK9DrG,EAAAA,EAAAA,KACI,SAAA+I,EAAA,OAAqC,QAArCA,EAAMjL,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA4K,OAAA,EAA/BA,EAAiCC,kBAAkB,IACzDA,IACQA,IAAuBC,EAAAA,eAAe/L,yBACtCgM,EAAAA,EAAAA,GAAqBpL,KAAKH,iBAAkBG,KAAKT,MAAMkJ,QAAQa,cAAe,IAKlG,CAEOvJ,2BACuG,IAADsL,EAIlGC,EAJHtL,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,OACzC,QAApD2F,EAAIrL,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,cAAM,IAAAgL,GAAhDA,EAAkDrG,sBAC5ChF,KAAK6E,wBAGC,QAAhByG,EAAAtL,KAAKwB,mBAAW,IAAA8J,GAAhBA,EAAkBC,oBAE1B,CAEOC,sBACHC,EACAC,GAEA,OAAI1L,KAAK+F,QAAU2F,GAAa1L,KAAKT,MAAM0C,OAASwJ,EAAUxJ,IAIlE,CAEO0J,SACH,IAAK3L,KAAKqG,0BAA4BrG,KAAK4L,gCACvC,OAAO,KAGX,MAAM,UACFlJ,EACAgB,aAAa,SAAEmI,IACf7L,KAAKT,OAEH,WAAEuM,EAAU,OAAExH,GAAWtE,KAAKT,MAE9BgJ,EAAevI,KAAK+F,MAAMwC,aA0ChC,OAAOuD,EAxCQ7D,EAAAA,EAAA,GACRjI,KAAKT,OAAK,IACbgG,iBAAkBvF,KAAKuF,iBACvBxC,gBAAiB/C,KAAK+C,gBACtBvC,iBAAkBR,KAAKQ,iBACvBf,gBAAiBO,KAAKP,gBACtBa,kBAAmBN,KAAKM,kBACxBsB,gBAAiB5B,KAAK4B,gBACtBoB,sBAAuBhD,KAAKgD,sBAC5B+I,UAAWzH,EAAOyH,UAClBC,UAAW,CACP9C,cAAelJ,KAAK+C,iBAAmB/C,KAAKuF,mBAAqBC,EAAAA,EAAiBqB,KAClFsC,yBAA0BnJ,KAAKuF,mBAAqBC,EAAAA,EAAiBqB,KACrEuC,6BAA8BpJ,KAAK+G,gCAAkC/G,KAAKT,MAAMmE,YAAYkG,YAEhGxK,uBAAwB,CACpB6M,YAAajM,KAAKT,MAClBwM,UAAWG,IAAW,8BAA+B5H,EAAOyH,YAEhEI,QAAS9M,EAAAA,cAAC+M,EAAAA,EAAqBC,OAAAC,OAAA,GAAK,CAAEC,KAAM7J,EAAU8J,gCACtDC,MAAOZ,GAAYtD,GAAgBlJ,EAAAA,cAACqN,EAAAA,GAAcL,OAAAC,OAAA,GAAK,CAAEK,MAAOjK,EAAUkK,kBAAmBC,QAAStE,KACtG1I,iBAAkBG,KAAKH,iBAEvBiN,uBACIzN,EAAAA,cAAC0N,EAAAA,EAAsBV,OAAAC,OAAA,GACf,CACAU,UAAWhN,KAAK2G,+BAChBsG,KAAM,WACNnL,MAAO,OACPoL,UAAWxK,EAAUyK,sCACrBZ,KAAM7J,EAAU0K,iCAChBhK,iBAAkBpD,KAAKoD,iBACvBiK,SAAUrN,KAAKiH,yCAI3BqG,YAAatN,KAAKuN,qBAClBC,uBAAwBxN,KAAKuC,8BAIrC,CAkHQgL,qBACuB,IAADE,EAA1B,OAAIzN,KAAK+C,iBACE2K,EAAAA,EAAAA,GAAY,CACfxN,QAASF,KAAK+C,gBACd5C,cAAeH,KAAKG,cAAcc,iBAA8D,QAA9CwM,EAACzN,KAAK+C,gBAAgB7B,gCAAwB,IAAAuM,EAAAA,EAAI,IACpG9N,gBAAiBK,KAAKL,kBAIvB,IACX,CAyHQgK,6BAA0B,IAAAgE,EAC9B,MAAM,QAAE5E,GAAY/I,KAAKT,MAAMkJ,QACzBmF,EAAwB,QAAlBD,EAAG5E,EAAQS,eAAO,IAAAmE,OAAA,EAAfA,EAAiBtD,4BAEhCrK,KAAKP,gBAAkBO,KAAK2F,cAAckI,0BAA0B7N,KAAKP,gBAAiBO,KAAKN,eAAgBkO,EACnH,CAgBsB7G,qCAA8B,IAAA+G,EAAAC,EAAAC,EAAAC,EAChD,MAAM,QAAElF,GAAY/I,KAAKT,MAAMkJ,SAEzB,4BAAEyF,EAA2B,aAAEC,GAAiBnO,KAAKT,MAAM0C,KAC3DmM,EAAuD,QAAtBN,EAAGK,EAAa9N,cAAM,IAAAyN,GAAiE,QAAjEA,EAAnBA,EAAqBO,MAAKC,GAF9B,oEAEyCA,EAAQC,cAAuC,IAAAT,OAAA,EAApFA,EACpCU,UAEAC,EAAwC,QAAlBV,EAAGhF,EAAQS,eAAO,IAAAuE,OAAA,EAAfA,EAAiBW,uBAC1CC,EAAuC,QAAlBX,EAAGjF,EAAQS,eAAO,IAAAwE,OAAA,EAAfA,EAAiBY,sBAG/C,OAAsC,QAA/BX,EAAAjO,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA4N,IAA/BA,EAAiCY,aAAaC,kBAE/CV,GACEpO,KAAKT,MAAM0C,KAAKyE,SAASrG,QAAUL,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOwO,aAAaE,KAAKC,WAAc,IAAIlJ,MAAKmJ,IAAQ,IAAAC,EAAA,OAClHD,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,gBAC6B,QADjBD,EACjBhB,EAA4B7N,cAAM,IAAA6O,GAAyB,QAAzBA,EAAlCA,EAAoCE,+BAAuB,IAAAF,OAAA,EAA3DA,EAA6Db,MACzDgB,GAAgBA,IAAiBJ,EAASE,iBACzCF,EAASE,eAAiBR,EACnCM,CAAQ,KAEhBjP,KAAKT,MAAM0C,KAAKyE,SAASrG,QAAUL,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOwO,aAAaE,KAAKC,WAAc,IAAIlJ,MAAKmJ,GAC1GA,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,eAAiBV,GAA0BQ,EAASE,eAAiBR,EAC9EM,IAEpB,CAEsBzI,qBAAc,IAAA8I,EAChC,OAAsC,QAAtCA,EAAOtP,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAiP,OAAA,EAA/BA,EAAiC9I,cAC5C,CAEsBQ,sBAAe,IAAAuI,EACjC,OAAsC,QAAtCA,EAAOvP,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAkP,OAAA,EAA/BA,EAAiCvI,eAC5C,CAEsBwI,uBAClB,MAAMC,EAAgBzP,KAAKT,MAAM0C,KAAKyE,SAASrG,OAC/C,OAAOoP,SAAAA,EAAeC,cAAgBD,EAAcC,cAAgB,CACxE,CAEsBC,6BAClB,MAAMF,EAAgBzP,KAAKT,MAAM0C,KAAKyE,SAASrG,OAC/C,OAAKoP,GAAkBA,EAAcG,gBAG9BH,EAAcG,gBAAgBC,QAAO,CAACC,EAAeC,IACjDD,GAASC,EAASC,SAAW,IACrC,GAJQ,CAKf,CAEsBC,+BAAwB,IAAAC,EAC1C,MAAMT,EAAgBzP,KAAKT,MAAM0C,KAAKyE,SAASrG,OAG/C,OAA2C,QAA3C6P,EAAOT,aAAa,EAAbA,EAAeU,6BAAqB,IAAAD,EAAAA,EAFrB,CAG1B,CAEsBE,uBAClB,MACInO,MAAM,SAAEyE,GAAU,OAClBpC,GACAtE,KAAKT,MACT,IAAKmH,EAASrG,OACV,OAAO,EAGX,MAAMgQ,EAAiB3J,EAASrG,OAC1B0O,EAAOsB,EAAexB,aAAaE,KACzC,IAAKA,IAASA,EAAKC,WAAuC,IAA1BD,EAAKC,UAAUsB,OAC3C,OAAO,EAGX,MAAM,kBAAEC,EAAiB,qBAAEC,GAAyBH,EAC9CI,EAA6BnM,EAAOoM,mBAAqBH,GAAqBC,EAKpF,OAFmBzB,EAAK4B,aAAe,GAAK3Q,KAAK2P,uBAAyB3P,KAAKwP,iBAAmBxP,KAAKiQ,yBAEpF,IAAMQ,CAC7B,CAEsBpK,+BAAwB,IAAAuK,EAAAC,EAC1C,OACI7Q,KAAKoQ,qBACqB,QAAzBQ,EAAC5Q,KAAKT,MAAM0C,KAAKyE,gBAAQ,IAAAkK,GAAQ,QAARA,EAAxBA,EAA0BvQ,cAAM,IAAAuQ,GAAhCA,EAAkCE,qCACN,QAAzBD,EAAC7Q,KAAKT,MAAM0C,KAAKyE,gBAAQ,IAAAmK,GAAQ,QAARA,EAAxBA,EAA0BxQ,cAAM,IAAAwQ,IAAhCA,EAAkCE,sBAEhD,CAEsBnF,sCAClB,OAAOoF,EAAAA,GAAsBhR,KAAKT,MAAMkJ,QAAQM,UAAwD,IAA5CkI,EAAAA,sBAAsBC,iBACtF,IA1nBYC,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,sDAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,yCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6CA4QXD,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,6CAsBPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,2CAiBPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,wCA+NGF,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,oDA6BCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,oCAICH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,qCAICH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,sCAKCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,4CAUCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,8CAOCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,sCAwBCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,8CAQCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,qDA8ITH,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,uCAtwBLjS,GAAsB+R,EAAAA,EAAAA,IAAA,CAF3BI,EAAAA,gBACAC,EAAAA,IACKpS,GAixBN,gUClzBO,MAAMqS,EAAqEC,IAO7E,IAP8E,gBAC/EC,EAAe,UACfC,EAAS,MACTjF,EAAK,UACLkF,EAAS,UACTnP,EAAS,iCACToP,GAAmC,GACtCJ,EACG,MASMK,GAAgBC,EAAAA,EAAAA,UAAS,CAAEC,QAASC,EAAAA,YAAYC,QAAS1J,QAT9C,CACb2J,aAAc,CACVC,GAAI,CAAEC,EAAG,KACTC,GAAI,CAAED,EAAG,KACTE,GAAI,CAAEF,EAAG,MACTG,GAAI,CAAEH,EAAG,MACTI,GAAI,CAAEJ,EAAG,UAIXK,EAAiC,OAAlBZ,GAA4C,OAAlBA,EAE/C,IAAKa,EAAAA,gBAAgBC,YAAYjB,GAC7B,OAAO,KAKX,OAFmCE,EAG/BzS,EAAAA,cAAA,OAAK0M,UAAW,GAAG4F,0BAAyCjP,EAAUoQ,sCAEtEzT,EAAAA,cAAA,OAAK0M,UAAW,GAAG4F,mBACftS,EAAAA,cAAA,OAAK0M,UAAW,GAAG4F,0BACftS,EAAAA,cAAA,OAAK0M,UAAW,GAAG4F,+BAA8ChF,GACjEtN,EAAAA,cAAA,OAAK0M,UAAW,GAAG4F,+BAA8CE,IAErExS,EAAAA,cAAA,OAAK0M,UAAW,GAAG4F,yBACdC,EAAUmB,KAAK9D,IACZ,MAAM+D,EAAY/D,EAASgE,SAX1B,EAYD,IAAIlH,EAAY,GAAG4F,gCAKnB,OAHIqB,IACAjH,EAAYG,IAAWH,EAAW,wBAGlC1M,EAAAA,cAAA,OAAK0M,UAAWA,EAAWmH,IAAKjE,EAASkE,QACrC9T,EAAAA,cAAC+T,EAAAA,GAAK/G,OAAAC,OAAA,GAAK2C,EAASoE,aACnBV,EACKK,GACI3T,EAAAA,cAAA,OACIiU,KAVT,OAUmB,cACElS,EAAAA,EAAAA,QAAOsB,EAAU6Q,oBAAqBtE,EAASgE,SAAUhE,EAASoE,WAAWG,SACzFzH,UAAW,GAAG4F,uCAEb1C,EAASgE,UAGlBD,GACI3T,EAAAA,cAAA,yBACqB4P,EAASkE,OAAM,cACpB,OACZpH,UAAW,GAAG4F,uCAEb1C,EAASgE,WAGtBN,GAAgBK,GACd3T,EAAAA,cAAA,QAAMoU,GAAIxE,EAASkE,OAAQpH,UAAU,+BAChC3K,EAAAA,EAAAA,QAAOsB,EAAU6Q,oBAAqBtE,EAASgE,SAAUhE,EAASoE,WAAWG,UAGpF,KAKzB,EAMQE,EAAuC,CAChDC,UAAW,CACPtB,GAAI,CAAEuB,EAAG,6BAA8BtB,EAAG,IAAKuB,EAAG,KAClDpB,GAAI,CAAEmB,EAAG,6BAA8BtB,EAAG,IAAKuB,EAAG,KAClDnB,GAAI,CAAEkB,EAAG,6BAA8BtB,EAAG,IAAKuB,EAAG,MAEtDC,UAAU,EACVC,QAAS,2mBCiBb,IAAMC,EAAN,cAAsC3U,EAAAA,UAoDlCC,YAAmBC,GAA4B,IAAA0U,EAC3CzU,MAAMD,GA9CU,KAAAE,gBAA0B,MAI1B,KAAAyU,kBAA+B,GAU/B,KAAAC,2BAAsC,CAAC,EAanD,KAAAzU,eAAsC,GAEtC,KAAAC,gBAAoC,GAI3B,KAAAC,mBAA6B,EAM7B,KAAAwU,8BAAwC,kEAEjD,KAAAhG,mCAA8C,EAErC,KAAAvO,iBAAiDR,EAAAA,YAsU3D,KAAAgV,SAAW,CAACC,EAA2CtH,KAG1D,GAFAsH,EAAKtH,UAAYA,EAEbhN,KAAK+F,MAAMwO,sBAAuB,CAClC,MAAMC,EACFxU,KAAK+F,MAAMwO,sBAAsBxB,KAAI0B,IAAe,IAAAC,EAKhD,OAHyB,QAArBA,EAAAD,EAAaxF,gBAAQ,IAAAyF,GAAU,QAAVA,EAArBA,EAAuBzF,gBAAQ,IAAAyF,OAAA,EAA/BA,EAAiCC,UAAWL,EAAKrF,SAAS0F,SAC1DF,EAAazH,UAAYA,GAEtByH,CAAY,KACjB,GAEVzU,KAAKwI,SAAS,CACV+L,sBAAuBC,GACxB,MAEHI,QAAQ9M,MAAM,8BAA+B,EAoB9C,KAAA+M,wBAA0B,CAACJ,EAAwBvP,KACtD,MAAM4P,EAAkB5P,EAAMgC,cAAcpF,MACtCiB,EAAkB/C,KAAKkU,kBAAkB7F,MAAKnO,IAAYA,EAAQ6U,UAAY,IAAIC,aAAeF,IACvG,GAAI9U,KAAK+F,MAAMkP,eAAgB,CAC3B,MAAMT,EAAUxU,KAAK+F,MAAMkP,eAAelC,KAAIuB,IAC1C,GAAIA,EAAKrF,SAAS0F,SAAWF,EAAaE,OAAQ,CAC9C,MAAMO,EAAejN,EAAAA,EAAA,GACdqM,EAAKrF,UAAQ,IAChBkG,gBAAiBpS,IAErB,OAAAkF,EAAAA,EAAA,GACOqM,GAAI,IACPrF,SAAUiG,GAAe,CAGjC,OAAOZ,CAAI,IAGftU,KAAKwI,SAAS,CACVyM,eAAgBT,GACjB,GAIJ,KAAAY,0BAA4B,CAACX,EAAwBvP,KACxD,MAAM4P,EAAkB5P,EAAMgC,cAAcpF,MACtCiB,EAAkB/C,KAAKkU,kBAAkB7F,MAAKnO,IAAYA,EAAQ6U,UAAY,IAAIC,aAAeF,IACnG9U,KAAK+F,MAAMkP,gBACXjV,KAAKwI,UAAS6M,IAeH,CACHJ,eAfYI,EAAUJ,eAAelC,KAAIuB,IACzC,GAAIA,EAAKrF,SAAS0F,SAAWF,EAAaE,OAAQ,CAC9C,MAAMO,EAAejN,EAAAA,EAAA,GACdqM,EAAKrF,UAAQ,IAChBkG,gBAAiBpS,IAErB,OAAAkF,EAAAA,EAAA,GACOqM,GAAI,IACPrF,SAAUiG,GAAe,CAGjC,OAAOZ,CAAI,OAMhB,EAIJ,KAAAgB,4BAA+BpQ,IAC9BlF,KAAK+F,MAAMwO,uBAAyBvU,KAAK+F,MAAMkP,eAC/CjV,KAAK+F,MAAMwO,sBAAsBpT,SAAQ,CAACsT,EAAcc,KACpD,GAAId,EAAazH,UAAW,CACxB,MAAMwI,EAAWxV,KAAK+F,MAAMkP,eAAe5G,MAEvCiG,IAAI,IAAAmB,EAAA,OAAInB,EAAKrF,SAAS0F,UAAgC,QAA1Bc,EAAKhB,EAAaxF,gBAAQ,IAAAwG,GAAU,QAAVA,EAArBA,EAAuBxG,gBAAQ,IAAAwG,OAAA,EAA/BA,EAAiCd,OAAM,IAGxEa,GACAxV,KAAKoV,0BAA0BI,EAASvG,SAAU/J,EAAM,KAKpE0P,QAAQ9M,MAAM,gCAAiC,EAQtC,KAAA4N,iBAAmB3V,UAChC,MAAM4V,EAA8B3V,KAAK4V,2BACnChE,EAAoC,GAE1C,IAAK,IAAD1L,EACA,MAAM2P,QAAiB7V,KAAK8V,yBACO,QAA/B5P,EAAAlG,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA6F,OAAA,EAA/BA,EAAiC2I,aAAaE,KAAKgH,YAAa,EAChEJ,GAEJ,IAAK,MAAMrB,KAAQqB,EAAiB,CAChC,MAAMK,EAAqCH,EAASxH,MAAK4H,GAAKA,EAAElB,WAAaT,EAAK4B,YAClFtE,EAAUnN,KAAK,CAAEwK,SAAUqF,EAAM0B,WAAW,CAEhDhW,KAAKwI,SAAS,CAAEyM,eAAgBrD,IAChC5R,KAAKwI,SAAS,CAAE2N,qBAAsBvE,IAEtC,MAAMwE,EAA+BxE,EAAUmB,KAAI9D,IAAQ,CACvDjC,WAAW,EACXiC,SAAUA,MAEdjP,KAAKwI,SAAS,CAAE+L,sBAAuB6B,GAMM,CAL/C,MAAOtO,GAEL9H,KAAKT,MAAMqI,UAAUE,MAAMA,GAC3B9H,KAAKwI,SAAS,CAAEyM,eAAgB,KAChCjV,KAAKwI,SAAS,CAAE2N,qBAAsB,KACtCnW,KAAKwI,SAAS,CAAE+L,sBAAuB,IAAM,GASpC,KAAAzU,sBAAwBC,UACrCC,KAAKC,sBACL,MAAMC,EAAUF,KAAKG,cAAcC,qBAAqBC,EAAQL,KAAKM,oBAErEC,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEC,OAAQ,MACrCF,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEE,QAASR,EAAQQ,WAC9CH,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEG,WAAYT,EAAQS,cACjDJ,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEI,KAAMV,EAAQU,QAC3CL,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEK,MAAOX,EAAQW,SAC5CN,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEM,aAAcZ,EAAQY,gBACnDP,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEO,YAAab,EAAQa,cAGlDC,YAAW,MACPT,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEC,OAAQP,EAAQO,QAAS,GAX1C,EAYL,EAOE,KAAAR,oBAAsB,KACnC,MAAMoW,EAAoBrW,KAAKG,cAAcc,iBACzCjB,KAAKQ,iBAAiBU,0BAA4BlB,KAAKP,iBAE3D,IAAK,MAAM6W,KAAiBD,EAAmB,CAAC,IAADhV,OAEOC,IAA9CtB,KAAKQ,iBAAiB8V,EAAc/U,OACnB,QAAjBF,EAACrB,KAAKwB,mBAAW,IAAAH,GAAhBA,EAAkBI,sBAAsBC,SAAS4U,EAAc/U,QAEhEvB,KAAKG,cAAcmW,EAAc/U,MAAQ,GAAE,CAGnDvB,KAAK2B,kBAAkB,EAOV,KAAAA,iBAAmB,KAChC3B,KAAK4B,gBAAkB,CAAC,CAAC,EAgBZ,KAAAI,gBAAmBzC,IAChC,MAAM,KAAE0C,GAAS1C,GAEjB2C,EAAAA,EAAAA,KACI,IAAMD,EAAKvC,eAAeW,SAC1B,KAAK,IAAA8B,EACDnC,KAAKN,eAA2C,QAA7ByC,EAAGF,EAAKvC,eAAeW,cAAM,IAAA8B,EAAAA,EAAI,EAAE,KAI9DD,EAAAA,EAAAA,KACI,IAAMD,EAAKtC,gBAAgBU,SAC3B,KAAK,IAAA+B,EACDpC,KAAKL,gBAA6C,QAA9ByC,EAAGH,EAAKtC,gBAAgBU,cAAM,IAAA+B,EAAAA,EAAI,EAAE,KAIhEF,EAAAA,EAAAA,KACI,IAAMD,EAAK/B,QAAQG,SACnB,KAAK,IAAAkW,EACDvW,KAAKkU,kBAAuC,QAAtBqC,EAAGtU,EAAK/B,QAAQG,cAAM,IAAAkW,EAAAA,EAAI,EAAE,KAI1DrU,EAAAA,EAAAA,KACI,IAAMD,EAAKI,cAAchC,SACzB,KAAK,IAAAiC,EACDtC,KAAKM,kBAA6C,QAA5BgC,EAAGL,EAAKI,cAAchC,cAAM,IAAAiC,EAAAA,EAAI,EAAE,KAIhEJ,EAAAA,EAAAA,KACI,IAAMD,EAAKkM,aAAa9N,SACxB,KAAK,IAAAmW,EACDxW,KAAKoO,kCAA4D,QAA3BoI,EAAGvU,EAAKkM,aAAa9N,cAAM,IAAAmW,GAEhE,QAFgEA,EAAxBA,EAA0BnI,MAC/DC,GAAWA,EAAQC,OAASvO,KAAKoU,uCACpC,IAAAoC,OAAA,EAFwCA,EAEtChI,SAAS,GAEnB,EAOY,KAAAoH,yBAA2B,KAAiB,IAAAxO,EAAAC,EACzD,OAA2G,QAA3GD,EAAsC,QAAtCC,EAAOrH,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAgH,GAA6B,QAA7BA,EAA/BA,EAAiCwH,aAAaE,KAAKC,iBAAS,IAAA3H,OAAA,EAA5DA,EAA8DoP,QAAOnC,GAAQtU,KAAK0W,YAAYpC,YAAM,IAAAlN,EAAAA,EAAI,EAAE,EAQpG,KAAAsP,YAAepC,GACrBtU,KAAK2W,iBAAiBrC,EAAKnF,qBAA8C7N,IAA5BgT,EAAKsC,oBAAgE,KAA5BtC,EAAKsC,oBAQrF,KAAAD,iBAAoBtH,IAA6C,IAAAwH,EAAA/I,EAC9E,MAAMW,EAA2D,QAArCoI,EAAG7W,KAAKT,MAAMkJ,QAAQM,QAAQS,eAAO,IAAAqN,OAAA,EAAlCA,EAAoCnI,wBAE7D,4BAAER,EAA2B,aAAEC,GAAiBnO,KAAKT,MAAM0C,KAGjE,IAF6D,QAAtB6L,EAAGK,EAAa9N,cAAM,IAAAyN,GAAiE,QAAjEA,EAAnBA,EAAqBO,MAAKC,GAF9B,oEAEyCA,EAAQC,cAAuC,IAAAT,OAAA,EAApFA,EACpCU,iBACoDlN,IAAjB+N,EAA4B,CAAC,IAADH,EACjE,MAAM4H,EAAuD,QAArC5H,EAAGhB,EAA4B7N,cAAM,IAAA6O,GAAyB,QAAzBA,EAAlCA,EAAoCE,+BAAuB,IAAAF,OAAA,EAA3DA,EAA6DpJ,MACpFiR,GAAcA,IAAe1H,IAEjC,YAA8B/N,IAAvBwV,GAAmCA,CAA2B,CAEzE,YAAwBxV,IAAjB+N,QAAyD/N,IAA3BmN,GAAwCY,IAAiBZ,CAAsB,EASvG,KAAAqH,wBAA0B/V,MAAOiX,EAAmBpF,KACjE,MAAMtI,EAAgBtJ,KAAKT,MAAMkJ,QAAQa,cACnC2N,EAAgBrF,EACjB6E,QAAOnC,IAAS4C,EAAAA,iBAAiBC,kBAAkB7C,EAAK4B,aACxDnD,KACGuB,GACI,IAAI8C,EAAAA,aACA9C,EAAK4B,WAAa,EAClB5M,EAAcC,eAAe8N,YAC7BL,OACA1V,EACAgI,EAAcC,eACd+K,EAAKgD,WAAa,KAGlC,OAAOC,EAAAA,EAAAA,mBAAkBN,EAAe3N,EAAc,EAQzC,KAAAkO,6BAA+B,CAACC,EAA4BC,KACzE,MAAM,OAAEpT,EAAM,QAAEmE,GAAYzI,KAAKT,OAC3B,cAAEoY,GAAkBrT,EAGpBsT,EAAkD5X,KAAK+F,MAAMkP,eAC9DwB,QAAOR,IAAMiB,EAAAA,iBAAiBC,kBAAkBlB,EAAED,WAClDjD,KAAIuB,IAAI,IAAAuD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,MAAK,CACVhF,OAA4B,QAAtB0E,EAAEvD,EAAKrF,SAAS0F,cAAM,IAAAkD,EAAAA,EAAI,GAChCxE,WAAY,CACR9J,eAAgBd,EAAQa,cAAcC,eACtCwC,UAAW,8DACXyH,QAAqB,QAAdsE,EAAExD,EAAK0B,eAAO,IAAA8B,OAAA,EAAZA,EAAcvJ,KACvB6J,IAAkC,QAA/BL,EAAc,QAAdC,EAAE1D,EAAK0B,eAAO,IAAAgC,OAAA,EAAZA,EAAcK,uBAAe,IAAAN,EAAAA,EAAI,GACtCO,aAAaC,EAAAA,EAAAA,qBACG,QADgBN,EAC5B3D,EAAK0B,eAAO,IAAAiC,OAAA,EAAZA,EAAcO,OACd/P,EAAQa,cAAcC,eAAe8N,YAClB,QAD6Ba,EAChDzP,EAAQM,QAAQ0P,WAAG,IAAAP,GAAQ,QAARA,EAAnBA,EAAqB5T,cAAM,IAAA4T,OAAA,EAA3BA,EAA6BQ,kBAEjCtG,aAAc3J,EAAQM,QAAQqJ,aAC9BuF,cAAeA,QAAAA,EAAiBjE,EAChCiF,oBAAqB,SAEzB1F,SAAgC,QAAxBkF,EAAE7D,EAAKrF,SAAS2J,gBAAQ,IAAAT,EAAAA,EAAI,EACvC,IAUL,OAAOU,EAAAA,EAAAA,GAAoB,CAIvBlV,OAAQA,KACJ3D,KAAKuG,WACLkR,SAAAA,GAAiB,EAGrB5T,SAAW7D,KAAK+C,iBAAoB/C,KAAK2F,cAAcmT,sBAd7BC,KAC1B/Y,KAAK8D,aACL4T,SAAAA,GAAmB,EAY4D,OAE/ErD,SAAUrU,KAAKqU,SAAS2E,KAAKhZ,MAE7BiZ,YAAajZ,KAAKiZ,YAAYD,KAAKhZ,MAEnCkZ,QAASA,KACLlZ,KAAKiZ,aAAY,EAAM,EAG3BpE,wBAAyB7U,KAAK6U,wBAAwBmE,KAAKhZ,MAE3DsV,4BAA6BtV,KAAKsV,4BAA4B0D,KAAKhZ,MAKnEmZ,oBAAqBA,KACjB,MAAMC,EAA6BpZ,KAAK+F,MAAMwO,sBACxCvU,KAAK+F,MAAMwO,sBAAsBxB,KAAI0B,IAAY,CAC7CzH,WAAW,EACXiC,SAAUwF,EAAaxF,aAE3B,GACNjP,KAAKwI,SAAS,CACV+L,sBAAuB6E,EACvBnE,eAAgBjV,KAAK+F,MAAMoQ,uBAE/BnW,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKmU,4BACzDnU,KAAK8G,oBAAoB,EAG7BrD,uBAAwBzD,KAAKT,MAAMmE,YAAYD,uBAE/C4V,cAAerZ,KAAK+F,MAAMkP,eAE1BqE,mBAAoB1B,EAEpBrD,sBAAuBvU,KAAK+F,MAAMwO,sBAAwBvU,KAAK+F,MAAMwO,sBAAwB,GAE7FL,kBAAmBlU,KAAKkU,kBAExBzL,QAASzI,KAAKT,MAAMkJ,QAEpB8Q,aAAcvZ,KAAKuZ,aAEnBC,SAAUxZ,KAAKT,MAAMkU,GAErBgG,eAAgBzZ,KAAKT,MAAMma,SAE3BhX,UAAW1C,KAAK0C,UAEhBU,iBAAkBpD,KAAKoD,iBAEvB4O,SAAUhS,KAAKgS,UACjB,EASW,KAAAzP,0BAA4B,CAACkV,EAA4BC,KACtE,MAAMvX,GACFH,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAK2F,cAAcmT,sBAC/D9Y,KAAKG,eAUf,OAAOsC,EAAAA,EAAAA,GAAiB,CACpBmH,WAAY5J,KAAK4J,WACjBlH,UAAW1C,KAAK0C,UAChBC,YAAaC,EAAAA,EAAY+W,SACzBxZ,cAAeA,EAAcc,iBAAiBjB,KAAKQ,iBAAiBU,0BAA4BlB,KAAKP,iBACrGqD,uBAAwB9C,KAAKP,gBAC7BG,mBAAoBI,KAAKJ,mBACzBmD,gBAAiB/C,KAAKQ,iBACtBoB,gBAAiB5B,KAAK4B,gBACtBiK,SAAU7L,KAAK6L,SACf7I,sBAAuBhD,KAAKgD,sBAC5BI,iBAAkBpD,KAAKoD,iBACvBH,oBAAqB9C,EAAc+C,gCAC/BlD,KAAK0C,UAAUS,iCACfnD,KAAKM,mBAET+C,cAAerD,KAAKsD,+BACpBC,iBAAkBvD,KAAKwD,kCACvBC,uBAAwBzD,KAAKT,MAAMmE,YAAYD,uBAK/CE,OAAQA,KACJ3D,KAAKuG,WACLkR,SAAAA,GAAiB,EAGrB5T,SAAW7D,KAAK+C,iBAAoB/C,KAAK2F,cAAcmT,sBAhC7BC,KAC1B/Y,KAAK8D,aACL4T,SAAAA,GAAmB,EA8B4D,QACjF,EAWW,KAAAkC,qBAAuB,CACpCC,EACAC,EACArC,EACAC,KASOqC,EAAAA,EAAAA,GAAc,CACjB5Z,cAAeH,KAAKG,cACpB6Z,UAAWha,KAAKkU,kBAChBxR,UAAW1C,KAAK0C,UAChB/C,gBAAiBK,KAAKL,gBACtBoD,gBAAiB/C,KAAKmU,2BACtB8F,sBAAuBja,KAAKka,uBAC5BzW,uBAAwBzD,KAAKT,MAAMmE,YAAYD,uBAC/CL,iBAAkBpD,KAAKoD,iBAKvB+W,wBAAyBA,KACrBna,KAAKoa,6BACLP,SAAAA,GAAkC,EAMtCQ,aAAcA,KACVra,KAAKsa,kBACLR,SAAAA,GAAuB,EAM3BnW,OAAQA,KACJ3D,KAAKua,mBACL9C,SAAAA,GAAiB,EAGrB5T,SAAW7D,KAAK+C,gBAtCUgW,KAC1B/Y,KAAK8D,aACL4T,SAAAA,GAAmB,EAoCe,OAElC8C,+BAAgCxa,KAAKT,MAAM+E,OAAOkW,iCAuBzC,KAAA3V,sBAAwB9E,UACrC,MACIkC,MACI6C,2BAA6BzE,OAAQyE,KAEzC9E,KAAKT,MAEuC,IAADyE,EAA3Cc,SAAAA,EAA2BE,iBACX,QAAhBhB,EAAAhE,KAAKwB,mBAAW,IAAAwC,GAAhBA,EAAkBiB,kBAAkB,0BAA2B,oCAAqCjF,KAAKF,uBAAuB,EAQvH,KAAAoa,uBAA0BhV,IACvC,MAAM4P,EAAkB5P,EAAMgC,cAAcpF,MACtCiB,EAAkB/C,KAAKkU,kBAAkB7F,MAAKnO,IAAYA,EAAQ6U,UAAY,IAAIC,aAAeF,IACnG/R,IACA/C,KAAKmU,2BAA6BpR,EAAgB,EASzC,KAAAlB,mBAAqB,CAACN,EAAcO,MACjDvB,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAE,CAACe,GAAOO,IACrC9B,KAAKG,cAAc4B,sBAAsB/B,KAAKQ,iBAAkBR,KAAK4B,gBAAiB5B,KAAKP,gBAAiB8B,EAAK,EAOpG,KAAA+B,+BAAkC4B,IAC/C,GAA0B,aAAtBA,EAAMC,OAAO8H,KACbjN,KAAK6B,mBAAmBqD,EAAMC,OAAO5D,KAAM2D,EAAMC,OAAOgC,aACrD,CACH,MAAMrF,GAASoD,EAAMC,OAAOrD,OAAS,IAAIsD,QAAQ,IAAIC,OAAO,OAAQ,MAAO,IAC3ErF,KAAK6B,mBAAmBqD,EAAMC,OAAO5D,KAAMO,EAAO,GAQzC,KAAA0B,kCAAqC0B,IAClDlF,KAAK6B,mBAAmBqD,EAAMC,OAAO5D,KAAM2D,EAAMC,OAAOrD,OAEpDoD,EAAMC,OAAO5D,OAASmD,EAAAA,GAAgBA,EAAAA,GAAgBxD,2BACtDlB,KAAK+D,iBAAiBmB,EAAMC,OAAOrD,MAAO,EAOjC,KAAA2Y,0BAA4B,KACzC,IAAKza,KAAKG,cAAc4B,sBAAsB/B,KAAKQ,iBAAkBR,KAAK4B,gBAAiB5B,KAAKP,iBAC5F,OAGJ,IAAIib,EAEAA,EADA1a,KAAK2F,cAAcmT,uBAAyB9Y,KAAK2a,cAAc3a,KAAKQ,kBAEhER,KAAKuF,mBAAqBC,EAAAA,EAAiBE,OACrC1F,KAAK2F,cAAciV,sBAAsB5a,KAAKQ,kBAC9CR,KAAK2F,cAAckV,mBAAmB7a,KAAKQ,kBAE1Csa,QAAQC,QAAQ,CAAE7a,QAASF,KAAKQ,mBAG/CR,KAAK4J,YAAa,EAClB5J,KAAK8G,qBAEL4T,EAAS7U,MACJxF,IACGL,KAAK4J,YAAa,EAEdvJ,EAAOH,SACPF,KAAK6L,UAAW,EAChB7L,KAAKgb,cACD3a,EAAO6T,kBACPlU,KAAKib,sBAAsB,CAAE/G,kBAAmB7T,EAAO6T,kBAAmBhU,QAASG,EAAOH,UAE1FF,KAAKib,sBAAsB,CAAE/a,QAASG,EAAOH,YAGjDF,KAAK6L,UAAW,EAChB7L,KAAKgD,sBAAwB3C,EAC7BL,KAAK8G,qBAAqB,IAGlC,KACI9G,KAAK6L,UAAW,EAChB7L,KAAK4J,YAAa,EAClB5J,KAAK8G,oBAAoB,GAEhC,EAOY,KAAA/C,iBAAoBtE,IAA2B,IAAAsF,EAC5D/E,KAAKP,gBAAkBA,EACvB,MAAMwE,EAAyBjE,KAAKG,cAAc+D,0BAA0BzE,IAC5Ec,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEU,yBAA0BzB,KACvDc,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAE2D,uBAAwBF,IACrC,QAAhBc,EAAA/E,KAAKwB,mBAAW,IAAAuD,GAAhBA,EAAkBX,gCAAgCH,GAClDjE,KAAKC,qBAAqB,EAOb,KAAAoE,6BAA+B,KAC5C,MAAM,OAAEC,GAAWtE,KAAKT,MAClBgF,EAA8C,GAQpD,OANKD,EAAOE,iBACRD,EAAyBE,KAAKC,EAAAA,GAAgBC,kBAGlDJ,EAAyBE,KAAKC,EAAAA,GAAgBE,WAEvCL,CAAwB,EAMlB,KAAAe,mBAAqB,MAE7BtF,KAAKP,iBACJO,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,QAKnG1F,KAAK2F,cAAcC,kBAAkB5F,KAAKP,iBAAiBoG,MAAMxF,IAC3CA,EAAOyF,MAAKC,GAASA,EAAMC,UAAYhG,KAAKQ,iBAAiBK,UAI3EN,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CAAEK,MAAO,KAGxCb,KAAKM,kBAAoBD,CAAM,GACjC,EAgBW,KAAA6a,mBAAqB,KAClC,GAAIlb,KAAKkU,kBAAmB,CAExB,OADuBlU,KAAKkU,kBAAkB7F,MAAMnO,GAAqBA,EAAQ0E,cACvD5E,KAAKkU,kBAAkB5D,OAAS,EAAItQ,KAAKkU,kBAAkB,QAAK5S,EAAW,CAEzF,EAOH,KAAA6Z,yCAA2C,KACxD,GAAInb,KAAKob,kCAAmC,CACxC,MAAM,qBAAE5K,EAAoB,QAAEtQ,EAAO,kCAAEmb,GAAsCrb,KAAKob,kCAElF,IAAIE,EAQJ,OALIA,EADAD,EACyBnb,EAAUF,KAAKub,kBAAkBrb,QAAWoB,EAE5CkP,EAAuBxQ,KAAKwb,mCAAmChL,QAAwBlP,EAG7Gga,CAAuB,CAElB,EAQH,KAAAE,mCAAsChL,IACnD,MAAMvM,EAAyBuM,EAAqBiL,QAE9CC,EAA2BzX,EAAyBjE,KAAK2b,4BAA4B1X,QAA0B3C,EAEjHoa,GAA4BA,IAA6B1b,KAAKP,iBAC9DO,KAAK+D,iBAAiB2X,GAgB1B,MAbyB,CACrBvX,uBAAwBF,EACxBsK,KAAMiC,EAAqBoL,WAC3Bnb,OAAQ+P,EAAqBqL,SAC7BC,aAActL,EAAqBuL,SACnCnb,KAAM4P,EAAqB5P,KAC3BC,MAAO2P,EAAqB3P,MAC5BH,QAAS8P,EAAqBwL,IAC9BC,MAAOzL,EAAqByL,MAC5B/a,yBAA0Bwa,EAC1B/W,iBAAkB3E,KAAKJ,mBAGb,EAQD,KAAA2b,kBAAqBW,IAClC,MAAMjY,EAAyBiY,EAAe/X,uBAExCuX,EAA2BzX,EAAyBjE,KAAK2b,4BAA4B1X,QAA0B3C,EAEjHoa,GAA4BA,IAA6B1b,KAAKP,iBAC9DO,KAAK+D,iBAAiB2X,GAS1B,OANazT,EAAAA,EAAA,GACNiU,GAAc,IACjBhb,yBAA0Bwa,EAC1B/W,iBAAkB3E,KAAKJ,oBAGb,EAQD,KAAA+b,4BAA+B1X,IAC5C,MAAMkY,EAAgBnc,KAAKN,eAAe2O,MAAK+N,IAAU,IAAAC,EACrD,OAAsB,QAAfA,EAAAD,EAAQE,eAAO,IAAAD,OAAA,EAAfA,EAAiBE,iBAAkBtY,EAAuBsY,aAAa,IAGlF,OAAOJ,aAAa,EAAbA,EAAeK,eAAe,EAMxB,KAAAvW,iBAAmB,KAChCjG,KAAKT,MAAMmE,YAAYyC,KAAK,CACxBC,OAAQpG,KAAKyc,WAAa,WAAa,WACvCnW,OAAQtG,KAAKsG,OACbzC,SAAU7D,KAAK6D,SACf0C,SAAUvG,KAAKuG,WAGnB,MAAMkJ,EAAgBzP,KAAKT,MAAM0C,KAAKyE,SAASrG,OAE/C,GAAIL,KAAKyc,WAAY,CACjB,IAAIC,EACJ,MAAMC,EAAgC3c,KAAK4V,2BAGvC8G,EADAjN,SAAAA,EAAeZ,aAAaE,KAAKoG,gBAChB1F,EAAcZ,aAAaE,KAAKoG,gBAEjDvC,EAAAA,gBAAgBC,YAAY8J,SACarb,IAAzCqb,EAAkB,GAAGxH,iBACgC,KAArDwH,EAAkB,GAAGxH,gBAAgBpU,YAEpB4b,EAAkB,GAAGxH,gBAC/BnV,KAAKmb,2CACKnb,KAAKmb,2CACfnb,KAAKkb,qBACKlb,KAAKkb,qBAELzL,SAAAA,EAAemN,yBAA2BnN,EAAcoN,wCAAqCvb,EAG9Gob,IAAmB1c,KAAK2F,cAAcmX,QAAQJ,IAC9C1c,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM6V,GACpD1c,KAAK+c,oBAAoBL,GACzB1c,KAAK8G,qBACL2I,SAAAA,EAAeuN,yBAAyB,CAAEC,uBAAuB,MAEjEjd,KAAK4G,wBAAwBpB,EAAAA,EAAiBC,KAC9CgK,SAAAA,EAAeuN,yBAAyB,CAAEC,uBAAuB,IAAQ,GAQpE,KAAA1W,SAAW,KACxB,OAAQvG,KAAKuF,kBACT,KAAKC,EAAAA,EAAiBC,IACtB,KAAKD,EAAAA,EAAiBE,OAClB1F,KAAKT,MAAMqI,UAAUC,YAAY,wDACjC7H,KAAKya,4BACL,MACJ,KAAKjV,EAAAA,EAAiBkD,KAClB1I,KAAKT,MAAMqI,UAAUC,YAAY,+CACjC7H,KAAKua,mBACL,MACJ,KAAK/U,EAAAA,EAAiB0X,SAClBld,KAAKwI,SAAS,CAAE2N,qBAAsBnW,KAAK+F,MAAMkP,iBACjDjV,KAAKmd,wBACL,MAAM/D,EAA6BpZ,KAAK+F,MAAMwO,sBACxCvU,KAAK+F,MAAMwO,sBAAsBxB,KAAI0B,IAAY,CAC7CzH,WAAW,EACXiC,SAAUwF,EAAaxF,aAE3B,GACNjP,KAAKwI,SAAS,CAAE+L,sBAAuB6E,IACvC,MACJ,QACIpZ,KAAKT,MAAMqI,UAAUE,MAAM,qBAAqB,EAO3C,KAAAjE,SAAW,KACxB,OAAQ7D,KAAKuF,kBACT,KAAKC,EAAAA,EAAiBC,IACtB,KAAKD,EAAAA,EAAiBE,OAClB1F,KAAKT,MAAMqI,UAAUC,YAAY,wDACjC7H,KAAKC,uBACED,KAAK+C,iBAAoB/C,KAAK2F,cAAcmT,wBAC/C9Y,KAAK8D,aAGT,MACJ,KAAK0B,EAAAA,EAAiBkD,KAClB1I,KAAKT,MAAMqI,UAAUC,YAAY,+CAC7B7H,KAAK+C,iBACL/C,KAAK8D,aAET,MACJ,KAAK0B,EAAAA,EAAiB0X,SAClBld,KAAKT,MAAMqI,UAAUC,YAAY,mDACjC,MAAMuR,EAA6BpZ,KAAK+F,MAAMwO,sBACxCvU,KAAK+F,MAAMwO,sBAAsBxB,KAAI0B,IAAY,CAC7CzH,WAAW,EACXiC,SAAUwF,EAAaxF,aAE3B,GACNjP,KAAKwI,SAAS,CACV+L,sBAAuB6E,EACvBnE,eAAgBjV,KAAK+F,MAAMoQ,uBAE/BnW,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKmU,4BACzDnU,KAAK8G,qBACL,MACJ,QACI9G,KAAKT,MAAMqI,UAAUE,MAAM,qBAAqB,EAO3C,KAAAxB,OAAS,KACtBtG,KAAKT,MAAMqI,UAAUC,YAAY,sCAE7B7H,KAAK2F,cAAcmT,uBAAyB9Y,KAAKgH,gBACjDhH,KAAK4G,wBAAwBpB,EAAAA,EAAiBkD,KAAM1I,KAAKgH,iBAClDhH,KAAKgH,iBACZhH,KAAK4G,wBAAwBpB,EAAAA,EAAiBE,OAAQ1F,KAAKgH,iBAG/DhH,KAAK8G,oBAAoB,EAOZ,KAAA2V,SAAW,KAAc,IAAAW,EAAAC,EACtC,MAAM,SAAE3W,EAAQ,4BAAEwH,GAAgClO,KAAKT,MAAM0C,MACvD,QAAE8G,GAAY/I,KAAKT,MAAMkJ,QACzBgG,EAAyB1F,GAAWA,EAAQS,SAAWT,EAAQS,QAAQkF,uBAC7E,SAAKhI,EAASrG,SAAW0I,EAAQS,SAAW9C,EAASrG,OAAOwO,aAAaiO,SAAWpW,EAASrG,OAAOwO,aAAaC,kBAK1G9O,KAAKoO,kCACqC,QADJgP,EACvC1W,EAASrG,OAAOwO,aAAaE,KAAKC,iBAAS,IAAAoO,OAAA,EAA3CA,EAA6CtX,MAAKmJ,IAAQ,IAAAqO,EAAA,OACtDrO,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,gBACyB,QADbmO,EACrBpP,EAA4B7N,cAAM,IAAAid,GAAyB,QAAzBA,EAAlCA,EAAoClO,+BAAuB,IAAAkO,OAAA,EAA3DA,EAA6DjP,MACzDgB,GAAgBA,IAAiBJ,EAASE,gBAE9CF,CAAQ,IAEyB,QAD1CoO,EACD3W,EAASrG,OAAOwO,aAAaE,KAAKC,iBAAS,IAAAqO,OAAA,EAA3CA,EAA6CvX,MAAKmJ,GAC9CA,EAASE,cAA0C,KAA1BF,EAASE,aAAsBF,EAASE,eAAiBV,EAAyBQ,IAC9G,EAMM,KAAAsL,iBAAmB,KAChCva,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKmU,4BACzDnU,KAAK+c,oBAAoB/c,KAAKmU,4BAC9BnU,KAAK8G,oBAAoB,EAMZ,KAAAqW,sBAAwB,KACrCnd,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKmU,4BACrDnU,KAAKT,MAAM+E,OAAOkW,+BAClBxa,KAAKud,6BAA6Bvd,KAAKmU,4BAEvCnU,KAAK+c,oBAAoB/c,KAAKmU,4BAGlCnU,KAAK8G,oBAAoB,EAMZ,KAAAsT,2BAA6B,KAC1Cpa,KAAK2J,6BACL3J,KAAKwI,SAAS,CAAE2N,qBAAsBnW,KAAK+F,MAAMkP,iBACjDjV,KAAK4G,wBAAwBpB,EAAAA,EAAiB0X,SAAS,EAM1C,KAAA5C,gBAAkB,KAC/Bta,KAAK2J,6BACL3J,KAAK4G,wBAAwBpB,EAAAA,EAAiBC,IAAI,EAOrC,KAAAwV,sBAAyBP,IAClCA,EAASxG,oBACTlU,KAAKkU,kBAAoBwG,EAASxG,mBAGlCwG,EAASxa,UACTF,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM6T,EAASxa,SAC7DF,KAAK+c,oBAAoBrC,EAASxa,SAClCF,KAAK8G,qBAAqB,EAQjB,KAAAiW,oBAAuB7c,IACpC,GAAIF,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAQ,CACjC,MAAMmd,EAAkBvV,EAAA,GAAQ/H,GAE5BA,EAAQgB,2BAA6Bsc,EAAmBrZ,yBACxDqZ,EAAmBrZ,uBAAyBnE,KAAKG,cAAc+D,0BAA0BhE,EAAQgB,2BAGrGlB,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOod,sBAAsB,CAAED,uBACxDxd,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOwO,aAAa4O,sBAAsB,CAAED,uBAAsBE,OAAM5V,IAC7F9H,KAAKT,MAAMqI,UAAUE,MAAMA,EAAM,GAClC,GAQM,KAAAyV,6BAAgCrd,IAC7C,GAAIF,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAQ,CACjC,MAAMsd,EAAkC3d,KAAK+F,MAAMkP,eAAelC,KAAI6K,GAAiBA,EAAc3O,WACrGjP,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOwd,+BAA+B,CAAEF,oCACjE3d,KAAKT,MAAM0C,KAAKyE,SAASrG,OAAOwO,aAC3BiP,8BAA8B,CAAEC,uBAAwBJ,IACxDD,OAAM5V,IACH9H,KAAKT,MAAMqI,UAAUE,MAAMA,EAAM,GAClC,GAgBE,KAAAkW,aAAe,KAC5B,MAAM,QAAEvV,GAAYzI,KAAKT,MAGzB,GAAIkJ,EAAQM,SAAWN,EAAQM,QAAQkV,QAA0C,WAAhCxV,EAAQM,QAAQkV,OAAOC,KACpE,MAAO,KAGX,GAAIC,EAAAA,GAASC,WAAaC,OAAOC,WAAY,CACzC,MAAMlM,EAAe3J,EAAQM,QAAQqJ,aACrC,GAAIA,EACA,OAAIA,EAAaC,IAAMgM,OAAOC,YAAclM,EAAaC,GAAGC,EACjD,KACAF,EAAaG,IAAM8L,OAAOC,YAAclM,EAAaG,GAAGD,EACxD,KACAF,EAAaI,IAAM6L,OAAOC,YAAclM,EAAaI,GAAGF,EACxD,KACAF,EAAaK,IAAM4L,OAAOC,YAAclM,EAAaK,GAAGH,EACxD,KAEJ,IAAI,CAInB,MAAO,IAAI,EAME,KAAAxO,WAAa,KAC1B,OAAQ9D,KAAKuF,kBACT,KAAKC,EAAAA,EAAiBC,IACtB,KAAKD,EAAAA,EAAiBE,OAClB1F,KAAK4G,wBACD5G,KAAK2F,cAAcmT,sBAAwBtT,EAAAA,EAAiBkD,KAAOlD,EAAAA,EAAiBqB,KACpF7G,KAAKgH,iBAET,MACJ,KAAKxB,EAAAA,EAAiB0X,SAClB,MAAM9D,EAA6BpZ,KAAK+F,MAAMwO,sBACxCvU,KAAK+F,MAAMwO,sBAAsBxB,KAAI0B,IAAY,CAC7CzH,WAAW,EACXiC,SAAUwF,EAAaxF,aAE3B,GACNjP,KAAKwI,SAAS,CACV+L,sBAAuB6E,EACvBnE,eAAgBjV,KAAK+F,MAAMoQ,uBAE/BnW,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKgH,iBACzD,MACJ,QACIhH,KAAK4G,wBAAwBpB,EAAAA,EAAiBqB,KAAM7G,KAAKgH,iBAEjEhH,KAAK8G,oBAAoB,EAQZ,KAAAF,wBAA0B,CAACwB,EAA6BrF,KACrE/C,KAAKuF,iBAAmB6C,EACxBpI,KAAK+C,gBAAkBA,EAEnB/C,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,QAC7F1F,KAAKQ,iBAAmByH,EAAA,GAAKjI,KAAK+C,kBAAqB,CAAC,GACxDxC,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CACvBU,yBAA0BlB,KAAKQ,iBAAiBU,0BAA4BlB,KAAKP,mBAErFc,EAAAA,EAAAA,IAAIP,KAAKQ,iBAAkB,CACvBmE,iBAAkB3E,KAAKQ,iBAAiBmE,kBAAoB3E,KAAKJ,sBAE9DI,KAAKuF,mBAAqBC,EAAAA,EAAiBkD,OAClD1I,KAAKmU,2BAA6BlM,EAAA,GAAKjI,KAAK+C,kBAAqB,CAAC,EAAE,EAO3D,KAAA+D,mBAAqB,KAC9B9G,KAAKuF,mBAAqBC,EAAAA,EAAiBqB,KAC3C7G,KAAKT,MAAMmE,YAAY2E,UAChBrI,KAAK4J,WACZ5J,KAAKT,MAAMmE,YAAY6a,YAEvBve,KAAKT,MAAMmE,YAAYqE,YAAa,EAQ3B,KAAA4S,cAAiBza,IAC9B,IAAK,MAAMse,KAAmBxe,KAAKkU,kBAAmB,CAAC,IAADuK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClD,IACiB,QAAbR,EAACve,EAAQqO,YAAI,IAAAkQ,EAAAA,EAAI,MAAQD,EAAgBjQ,OAC1B,QAAfmQ,EAACxe,EAAQO,cAAM,IAAAie,EAAAA,EAAI,MAAQF,EAAgB/d,SACtB,QAArBke,EAACze,EAAQ4b,oBAAY,IAAA6C,EAAAA,EAAI,MAAQH,EAAgB1C,eACpC,QAAb8C,EAAC1e,EAAQU,YAAI,IAAAge,EAAAA,EAAI,MAAQJ,EAAgB5d,OAC3B,QAAdie,EAAC3e,EAAQW,aAAK,IAAAge,EAAAA,EAAI,MAAQL,EAAgB3d,QAC1B,QAAhBie,EAAC5e,EAAQQ,eAAO,IAAAoe,EAAAA,EAAI,MAAQN,EAAgB9d,UAC9B,QAAdqe,EAAC7e,EAAQ+b,aAAK,IAAA8C,EAAAA,EAAI,MAAQP,EAAgBvC,QACT,QAAjC+C,EAAC9e,EAAQgB,gCAAwB,IAAA8d,EAAAA,EAAI,MAAQR,EAAgBtd,2BACpC,QAAzB+d,EAAC/e,EAAQyE,wBAAgB,IAAAsa,EAAAA,EAAI,MAAQT,EAAgB7Z,iBAErD,OAAO,CAAK,CAIpB,OAAO,CAAI,EAIE,KAAA2D,iBAAoBC,IACjCvI,KAAKT,MAAMqI,UAAUE,MAAMS,GAC3BvI,KAAKT,MAAMmE,YAAY4D,aAAY,GACnCtH,KAAKT,MAAMmE,YAAYqE,aACvB/H,KAAKwI,SAAS,CACVD,gBACF,EAGW,KAAAyS,YAAc,KAC3Bhb,KAAKT,MAAMmE,YAAY4D,aAAY,GACnCtH,KAAKwI,SAAS,CACVD,aAAc,IAChB,EAQW,KAAA2W,YAAeC,GACrBA,EAAUtP,QAAO,CAACC,EAAOwE,IACrBxE,GAASwE,EAAKrB,UAAY,IAClC,GA7/CHjT,KAAKof,UACD7f,EAAMkJ,QAAQM,SAAWxJ,EAAMkJ,QAAQM,QAAQkV,QAAgD,WAAtC1e,EAAMkJ,QAAQM,QAAQkV,OAAOC,KAAoB,KAAO,KACrHle,KAAKqf,gBAAkBrf,KAAKqf,gBAAgBrG,KAAKhZ,MACjDA,KAAK+F,MAAQ,CAAEkP,eAAgB,GAAIkB,qBAAsB,GAAI5B,sBAAuB,IACpF,MAAM,QAAE9L,EAAO,KAAExG,EAAI,UAAES,EAAS,UAAEkF,GAAc5H,KAAKT,MAErDS,KAAKQ,iBAAmB,CAAC,EACzBR,KAAK0C,UAAYA,EACjB1C,KAAKuF,iBAAmBC,EAAAA,EAAiBkD,KACzC1I,KAAKN,eAAiBuC,EAAKvC,eAAeW,QAAU,GACpDL,KAAKL,gBAAkBsC,EAAKtC,gBAAgBU,QAAU,GACtDL,KAAKkU,kBAAoBjS,EAAK/B,QAAQG,QAAU,GAChDL,KAAKM,kBAAoB2B,EAAKI,cAAchC,QAAU,GACtDL,KAAK2F,cAAgB,IAAIgD,EAAAA,EAAcF,EAAS/F,EAAWkF,GAC3D5H,KAAKG,cAAgB,IAAIyI,EAAAA,EACrB5I,KAAKN,eACL,IAAImJ,EAAAA,EAAeZ,EAAC,CAAC,EAAIvF,GAAa1C,KAAKqE,gCAC3CrE,KAAKL,iBAETK,KAAK4B,gBAAkB,CAAC,EACxB5B,KAAKoO,kCAA4D,QAA3B6F,EAAGhS,EAAKkM,aAAa9N,cAAM,IAAA4T,GAEhE,QAFgEA,EAAxBA,EAA0B5F,MAC/DC,GAAWA,EAAQC,OAASvO,KAAKoU,uCACpC,IAAAH,OAAA,EAFwCA,EAEtCzF,UACHxO,KAAKoD,kBAAmB0F,EAAAA,EAAAA,oBACpB9I,KAAKT,MAAMkJ,QAAQM,QAAQC,kBAC3BhJ,KAAKT,MAAM0J,aACXjJ,KAAKT,MAAMqI,WAEf5H,KAAKqf,iBACT,CAzDcrN,eACV,MAA0B,OAAnBhS,KAAKof,WAAyC,OAAnBpf,KAAKof,SAC3C,CAyDOrf,0BAAuB,IAAA8K,EAC1B,MACIpC,SAAS,UACLb,EACA0B,eACIC,gBAAgB,QAAEC,KAG1BlF,QAAQ,sBAAEmF,EAAqB,mBAAEC,GAAoB,UACrDhH,GACA1C,KAAKT,MAoDT,GAjDAS,KAAKgC,gBAAgBhC,KAAKT,OAE1BS,KAAKG,cAAgB,IAAIyI,EAAAA,EACrB5I,KAAKN,eACL,IAAImJ,EAAAA,EAAeZ,EAAC,CAAC,EAAIvF,GAAa1C,KAAKqE,gCAC3CrE,KAAKL,iBAGTK,KAAKT,MAAM0C,KAAKyE,SAASb,MAAK,KAC1B7F,KAAK2J,6BACL3J,KAAKiG,kBAAkB,KAG3B/D,EAAAA,EAAAA,KACI,IAAMlC,KAAKP,kBACX,KACIO,KAAKsF,oBAAoB,KAIjCpD,EAAAA,EAAAA,KACI,IAAMlC,KAAKuF,mBACX,KACIvF,KAAKsF,oBAAoB,KAIjCpD,EAAAA,EAAAA,KACI,SAAA2H,EAAA,OAAqC,QAArCA,EAAM7J,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAwJ,OAAA,EAA/BA,EAAiCgT,kCAAkC,IACzE,KACI,IAAK7c,KAAKob,mCAAqCpb,KAAKyc,WAAY,CAAC,IAADpT,EAAAiW,EAC5D,IAAIpf,EAAyC,QAAlCmJ,EAAGrJ,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAgJ,OAAA,EAA/BA,EAAiCwT,mCAE/C,GAAW,QAAXyC,EAAIpf,SAAO,IAAAof,GAAPA,EAASnb,uBAAwB,CACjC,MAAMuX,EAA2B1b,KAAK2b,4BAA4Bzb,EAAQiE,wBAE1EjE,EAAO+H,EAAAA,EAAA,GAAQ/H,GAAO,IAAEgB,yBAA0Bwa,IAE9CA,GAA4BA,IAA6B1b,KAAKP,iBAC9DO,KAAK+D,iBAAiB2X,EAAyB,CAIvD1b,KAAK4G,wBAAwBpB,EAAAA,EAAiBC,IAAKvF,GACnDF,KAAKya,2BAA4B,KAKzChR,EAAuB,CACvB,GAAID,IAAYA,EAAQS,eAEpB,YADArC,EAAUE,MAAM,8BAIpB,GAAI0B,IAAYA,EAAQU,gBAEpB,YADAtC,EAAUE,MAAM,4BAIpB,MAAMqC,EAAOlC,EAAA,GAA6ByB,GAC1C1J,KAAKwB,YAAc,IAAI4I,EAAAA,EACnBxC,EACAuC,EACAX,aAAO,EAAPA,EAASS,eACTT,aAAO,EAAPA,EAASa,4BACTb,aAAO,EAAPA,EAASc,oBAKTtK,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,QACzCL,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,cAExF1F,KAAKwB,YAAY+I,kBAAkBvK,KAAKT,MAAM0C,KAAK6C,4BAG7D5C,EAAAA,EAAAA,KACI,SAAAsI,EAAA,OACoD,QAAhDA,EAAAxK,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,cAAM,IAAAmK,OAAA,EAAhDA,EAAkDC,cACjDzK,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,OAAO,IACzG3F,UAAW,IAAA2K,QACe,QAAtBA,EAAM1K,KAAKwB,mBAAW,IAAAkJ,OAAA,EAAhBA,EAAkBH,kBAAkBvK,KAAKT,MAAM0C,KAAK6C,2BAA0B,KAI5F5C,EAAAA,EAAAA,KACI,SAAAyI,EAAA,OAAsD,QAAtDA,EAAM3K,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,cAAM,IAAAsK,OAAA,EAAhDA,EAAkD3F,cAAc,IACtEjF,gBACUC,KAAK6E,uBAAuB,GAExC,CAG6B,QAAnCgG,EAAI7K,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAwK,GAA/BA,EAAiCD,6CACjC1I,EAAAA,EAAAA,KACI,SAAA+I,EAAA,OAAqC,QAArCA,EAAMjL,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA4K,OAAA,EAA/BA,EAAiCH,aAAa,IACpDA,IAEQA,GACAA,EAAcC,gBAAkBC,EAAAA,cAAcgJ,yBAC9ClJ,EAAcvC,cAEdvI,KAAKsI,iBAAiBwC,EAAcvC,aAAc,KAK9DrG,EAAAA,EAAAA,KACI,SAAA+L,EAAA,OAAqC,QAArCA,EAAMjO,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAA4N,OAAA,EAA/BA,EAAiC/C,kBAAkB,IACzDA,IACQA,IAAuBC,EAAAA,eAAe6I,0BACtC5I,EAAAA,EAAAA,GAAqBpL,KAAKH,iBAAkBG,KAAKT,MAAMkJ,QAAQa,cAAe,KAM1F6U,EAAAA,GAASC,YACTC,OAAOkB,iBAAiB,SAAUvf,KAAKqf,iBACvCrf,KAAKqf,yBAGHrf,KAAK0V,kBACf,CAEO3V,2BACuG,IAADsL,EAIlGC,EAJHtL,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,OACzC,QAApD2F,EAAIrL,KAAKT,MAAM0C,KAAK6C,0BAA0BzE,cAAM,IAAAgL,GAAhDA,EAAkDrG,sBAC5ChF,KAAK6E,wBAGC,QAAhByG,EAAAtL,KAAKwB,mBAAW,IAAA8J,GAAhBA,EAAkBC,oBAE1B,CAEOiU,uBACCrB,EAAAA,GAASC,WACTC,OAAOoB,oBAAoB,SAAUzf,KAAKqf,gBAElD,CAEO7T,sBAAsBC,EAAkCC,GAC3D,OAAI1L,KAAK+F,QAAU2F,GAAa1L,KAAKT,MAAM0C,OAASwJ,EAAUxJ,IAIlE,CAEO0J,SAAM,IAAA+T,EACT,IAAK1f,KAAKyc,WACN,OAAO,KAGX,MAAM,OACFnY,EAAM,QACNmE,EAAO,WACPqD,EAAU,UACVpJ,EACAgB,aAAa,SAAEmI,IACf7L,KAAKT,OACH,cAAEogB,EAAa,UAAEC,EAAS,eAAEC,EAAc,kBAAEjT,GAAsBlK,GAClE,cAAEiV,GAAkBrT,EAGpBsN,EAA6C5R,KAAK+F,MAAMkP,eACzDwB,QAAOR,IAAMiB,EAAAA,iBAAiBC,kBAAkBlB,EAAED,WAClDjD,KAAIuB,IAAI,IAAAwL,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,MAAK,CACVnN,OAA4B,QAAtB2M,EAAExL,EAAKrF,SAAS0F,cAAM,IAAAmL,EAAAA,EAAI,GAChCzM,WAAY,CACR9J,eAAgBd,EAAQa,cAAcC,eACtCwC,UAAW,8DACXyH,QAAqB,QAAduM,EAAEzL,EAAK0B,eAAO,IAAA+J,OAAA,EAAZA,EAAcxR,KACvB6J,IAAkC,QAA/B4H,EAAc,QAAdC,EAAE3L,EAAK0B,eAAO,IAAAiK,OAAA,EAAZA,EAAc5H,uBAAe,IAAA2H,EAAAA,EAAI,GACtC1H,aAAaC,EAAAA,EAAAA,qBACG,QADgB2H,EAC5B5L,EAAK0B,eAAO,IAAAkK,OAAA,EAAZA,EAAc1H,OACd/P,EAAQa,cAAcC,eAAe8N,YAClB,QAD6B8I,EAChD1X,EAAQM,QAAQ0P,WAAG,IAAA0H,GAAQ,QAARA,EAAnBA,EAAqB7b,cAAM,IAAA6b,OAAA,EAA3BA,EAA6BzH,kBAEjCtG,aAAc3J,EAAQM,QAAQqJ,aAC9BuF,cAAeA,QAAAA,EAAiBjE,EAChCiF,oBAAqB,SAEzB1F,SAAgC,QAAxBmN,EAAE9L,EAAKrF,SAAS2J,gBAAQ,IAAAwH,EAAAA,EAAI,EACpCG,kBAA0D,QAAzCF,EAA+B,QAA/BC,EAAEhM,EAAKrF,SAASkG,uBAAe,IAAAmL,OAAA,EAA7BA,EAA+BvL,gBAAQ,IAAAsL,EAAAA,EAAI,EACjE,IAECG,EAAoBxgB,KAAKkf,YAAYtN,GACrC6O,EAAWD,EAAoB,EAAIZ,EAAYC,EAC/ChO,EAAY,KAAIzQ,EAAAA,EAAAA,QAAOqf,EAAUD,MAEjCE,EAAkD,CACpD/O,gBAAiB,+BACjBC,UAAWA,EAAU6E,QAAOR,IAAMiB,EAAAA,iBAAiBC,kBAAkBlB,KACrEpE,UAAWA,EACXlF,MAAOgT,EACPjd,UAAW1C,KAAKT,MAAMmD,UACtBoP,iCAAkCxN,EAAOkW,gCAGvCmG,EAAkCthB,EAAAA,cAACoS,EAAuBpF,OAAAC,OAAA,GAAKoU,KAE/D,aAAEvS,GAAiBnO,KAAKT,MAAM0C,KAC9B2e,EAAyD,QAAtBlB,EAAGvR,EAAa9N,cAAM,IAAAqf,GAAiE,QAAjEA,EAAnBA,EAAqBrR,MAAKC,GAFhC,oEAE2CA,EAAQC,cAAuC,IAAAmR,OAAA,EAApFA,EACtClR,UAEAjG,EAAevI,KAAK+F,MAAMwC,aAqEhC,OAAOuD,EAnEQ7D,EAAAA,EAAA,GACRjI,KAAKT,OAAK,IACbgG,iBAAkBvF,KAAKuF,iBACvBxC,gBAAiB/C,KAAK+C,gBACtBvC,iBAAkBR,KAAKQ,iBACvB2T,2BAA4BnU,KAAKmU,2BACjC1U,gBAAiBO,KAAKP,gBACtBa,kBAAmBN,KAAKM,kBACxB4T,kBAAmBlU,KAAKkU,kBACxBtS,gBAAiB5B,KAAK4B,gBACtBoB,sBAAuBhD,KAAKgD,sBAC5B4G,WAAY5J,KAAK4J,WACjBiC,SAAU7L,KAAK6L,SACfE,UAAWzH,EAAOyH,UAClBC,UAAW,CACP9C,cAAelJ,KAAKuF,mBAAqBC,EAAAA,EAAiBqB,MAAQ7G,KAAK+C,gBACvE8d,iBAAkB7gB,KAAKuF,mBAAqBC,EAAAA,EAAiBkD,MAAQ1I,KAAKkU,kBAAkB5D,OAAS,EACrGnH,yBACInJ,KAAKuF,mBAAqBC,EAAAA,EAAiBC,KAAOzF,KAAKuF,mBAAqBC,EAAAA,EAAiBE,OACjGob,0BAA2B9gB,KAAKuF,mBAAqBC,EAAAA,EAAiB0X,UAE1ElJ,wBAAyB,CACrB/H,YAAajM,KAAKT,MAClBwM,UAAWG,IAAW,+BAAgC5H,EAAOyH,YAEjEuB,YAAatN,KAAKuN,qBAClBd,MAAOZ,GAAYtD,GAAgBlJ,EAAAA,cAACqN,EAAAA,EAAcL,OAAAC,OAAA,GAAK,CAAEK,MAAOC,EAAmBC,QAAStE,KAC5F1I,iBAAkBG,KAAKH,iBAUvBkhB,yBAA0BA,CACtBlH,EACAC,EACArC,EACAC,IACC1X,KAAK4Z,qBAAqBC,EAAgCC,EAAqBrC,EAAeC,GAQnGsJ,iCAAkCA,CAACvJ,EAA4BC,IAC3D1X,KAAKwX,6BAA6BC,EAAeC,GACrDuJ,0BAA2BjhB,KAAKwX,+BAQhC0J,8BAA+BA,CAACzJ,EAA4BC,IACxD1X,KAAKuC,0BAA0BkV,EAAeC,GAClDlK,uBAAwBxN,KAAKuC,4BAC7Boe,eAAgBC,EAAsCD,OAAiBrf,EACvE6f,kBAAmBnhB,KAAK4Z,yBAIhC,CAuBOX,YAAYjM,GACf,GAAIhN,KAAK+F,MAAMwO,sBAAuB,CAClC,MAAMC,EACFxU,KAAK+F,MAAMwO,sBAAsBxB,KAAI0B,IACjCA,EAAazH,UAAYA,EAClByH,MACL,GAEVzU,KAAKwI,SAAS,CACV+L,sBAAuBC,GACxB,MAEHI,QAAQ9M,MAAM,gCAEtB,CA2JWsT,wCAAiC,IAAAgG,EAAAC,EAExC,MAAMC,EAEe,QAFLF,EACQ,QADRC,EACZrhB,KAAKT,MAAM0C,KAAK8M,YAAI,IAAAsS,GAAQ,QAARA,EAApBA,EAAsBhhB,cAAM,IAAAghB,GAAM,QAANA,EAA5BA,EAA8BtS,YAAI,IAAAsS,GAAqB,QAArBA,EAAlCA,EAAoCE,2BAAmB,IAAAF,GAA4D,QAA5DA,EAAvDA,EAAyDhT,MAAKmT,GAA6B,0BAAjBA,EAASC,aAAgC,IAAAJ,GAAO,QAAPA,EAAnHA,EAAqHK,aAAK,IAAAL,OAAA,EAA1HA,EACMM,mBAAW,IAAAP,EAAAA,EAAI,GAEzB,OAAOE,EAAcM,KAAKC,MAAMP,GAAyC,IAC7E,CA0UQ/T,qBACJ,OAAIvN,KAAK+C,iBACE2K,EAAAA,EAAAA,GAAY,CACfxN,QAASF,KAAK+C,gBACd5C,cAAeH,KAAKG,cAAcc,iBAAiBjB,KAAK+C,gBAAgB7B,0BAA4B,IACpGvB,gBAAiBK,KAAKL,kBAIvB,IACX,CAuKQgK,6BAA0B,IAAAgE,EAC9B,MAAM,QAAE5E,GAAY/I,KAAKT,MAAMkJ,QACzBmF,EAAwB,QAAlBD,EAAG5E,EAAQS,eAAO,IAAAmE,OAAA,EAAfA,EAAiBtD,4BAChCrK,KAAKP,gBAAkBO,KAAK2F,cAAckI,0BAA0B7N,KAAKP,gBAAiBO,KAAKN,eAAgBkO,EACnH,CA6VsB5G,sBAAe,IAAAsI,EACjC,OAAsC,QAAtCA,EAAOtP,KAAKT,MAAM0C,KAAKyE,SAASrG,cAAM,IAAAiP,OAAA,EAA/BA,EAAiCtI,eAC5C,CAEcuS,mBACV,OAAOuI,IAAI9hB,KAAKT,MAAO,mCAC3B,CAEQ8f,kBACJrf,KAAKof,UAAYpf,KAAKge,cAC1B,IAl6CY7M,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,yCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,yCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6CAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,gCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kDAGXD,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,iCAGDD,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,8BA4cTH,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,wCAoCPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,6CAuBPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,2CAoBPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,wCAw2BGF,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,qCAICH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,kCA8HTH,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,uCA1hDL2C,GAAuB7C,EAAAA,EAAAA,IAAA,CAF5BI,EAAAA,gBACAC,EAAAA,IACKwC,GAujDN,yFCzrDA,MAAMtG,EAA2CgE,IAA6B,IAA5B,cAAEqQ,EAAa,MAAEC,GAAOtQ,EACtE,OACIrS,EAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKyV,GACLC,EAAMjP,KAAKmP,GACD7iB,EAAAA,cAAAA,EAAAA,SAAA,KAAG6iB,EAAKC,eAEhB,EAkBT1f,EAAqD2f,IAUtD,IAVuD,YACxDC,EAAW,QACXlW,EAAO,MACP6V,EAAK,SACLnW,EAAQ,MACR/D,EAAK,iBACLwa,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,GACHL,EACG,OACI/iB,EAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAK+V,GACLlW,EACA6V,EAAMjP,KAAKmP,IACR,MAAM,YAAEQ,EAAW,IAAExP,EAAG,MAAEyP,EAAK,MAAElW,EAAK,MAAEmW,GAAUV,EAClD,OACI7iB,EAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKoW,EAAW,CAAExP,IAAKA,IACvByP,EACAlW,EACAmW,EACE,IAGd/W,GACGxM,EAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKxE,EAAM+a,cACX/a,EAAM6E,MACN7E,EAAM+E,SAGdyV,GAAoBC,EACpBC,GAAsBC,EACpB,EAgCf,EAvB+EljB,IAC3E,MAAM,uBACFH,EAAsB,iBACtBS,EAAgB,MAChB4M,EAAK,UACLT,EAAS,QACTG,EAAO,uBACPW,EAAsB,YACtBQ,EAAW,uBACXE,GACAjO,EAEJ,OACIF,EAAAA,cAACyjB,EAAAA,OAAMzW,OAAAC,OAAA,GAAKlN,EAAsB,CAAE2jB,IAAKljB,IACpCsM,EACAM,EACAT,EAAU5C,8BAAgC0D,EAC1Cd,EAAU9C,eAAiB7J,EAAAA,cAACqO,EAAWrB,OAAAC,OAAA,GAAKgB,IAC5CtB,EAAU7C,0BAA4B9J,EAAAA,cAACoD,EAAgB4J,OAAAC,OAAA,GAAKkB,IACxD,0FCjFjB,MAAME,EAA2CgE,IAA6B,IAA5B,cAAEqQ,EAAa,MAAEC,GAAOtQ,EACtE,OACIrS,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKyV,GACLC,EAAMjP,KAAKmP,GACD7iB,IAAAA,cAAAA,IAAAA,SAAA,KAAG6iB,EAAKC,eAEhB,EAiBTpI,EAA+CqI,IAShD,IATiD,cAClDY,EAAa,4BACbC,EAA2B,UAC3BC,EAAS,MACTlB,EAAK,iBACLM,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,GACHL,EACG,OACI/iB,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAK0W,GACN3jB,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,gDACXmX,EACAD,GAEJjB,EAAMjP,KAAKmP,IACR,MAAMiB,EAAajB,EAAKiB,WACxB,OACI9jB,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAK6W,EAAU,CAAEjQ,IAAKgP,EAAKhP,MAC3BgP,EAAKU,MACNvjB,IAAAA,cAACqO,EAAWrB,OAAAC,OAAA,GAAK4V,EAAKkB,YACnB,IAGdd,GAAoBC,EACpBC,GAAsBC,EACpB,EAmBT5J,EAAiEwK,IAclE,IAdmE,oBACpEC,EAAmB,wBACnBC,EAAuB,qBACvBC,EAAoB,gBACpBC,EAAe,cACfC,EAAa,qBACbC,EAAoB,iBACpBC,EAAgB,yBAChBC,EAAwB,iBACxBvB,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,EAAY,SACZzQ,GACHqR,EACG,OAAIC,QAAoChiB,IAAb0Q,EAClBA,EA0BG3S,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKgX,GACNjkB,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,oDAAoDwX,GACpElkB,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,+CAA+C0X,GAC9DC,GAAiBG,GAA4BA,EAAyBvT,OAAS,GAC5EjR,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKoX,GACLC,EACDtkB,IAAAA,cAAA,aACKwkB,GACGA,EAAyB9Q,KAAKuB,GACnBwP,EAA+BxP,EAAMtC,EAAU4R,OAKzEtB,GAAoBC,EACpBC,GAAsBC,GAvC3BpjB,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKgX,GACNjkB,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,oDAAoDwX,GACpElkB,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,gDACZ1M,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,4CAA4CyX,GAE5DnkB,IAAAA,cAAC4iB,EAAAA,KAAI,CAAClW,UAAU,+CAA+C0X,IAElEC,GAAiBG,GAA4BA,EAAyBvT,OAAS,GAC5EjR,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKoX,GACLC,EACDtkB,IAAAA,cAAA,aACKwkB,GACGA,EAAyB9Q,KAAKuB,GACnBwP,EAA+BxP,EAAMtC,EAAU4R,OAKzEtB,GAAoBC,EACpBC,GAAsBC,GAyB5B,IAAK,EAkBdhgB,EAAqDshB,IAUtD,IAVuD,YACxD1B,EAAW,QACXlW,EAAO,MACP6V,EAAK,SACLnW,EAAQ,MACR/D,EAAK,iBACLwa,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,GACHsB,EACG,OACI1kB,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAK+V,GACLlW,EACA6V,EAAMjP,KAAKmP,IACR,MAAM,YAAEQ,EAAW,IAAExP,EAAG,MAAEyP,EAAK,MAAElW,EAAK,MAAEmW,GAAUV,EAClD,OACI7iB,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKoW,EAAW,CAAExP,IAAKA,IACvByP,EACAlW,EACAmW,EACE,IAGd/W,GACGxM,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,GAAKxE,EAAM+a,cACX/a,EAAM6E,MACN7E,EAAM+E,SAGdyV,GAAoBC,EACpBC,GAAsBC,EACpB,EAITqB,EAAiCA,CACnCE,EACAhS,EACA4R,KAEA,IAAKI,EACD,OAAO,KAGX,MAAM,WACFC,EAAU,aACVC,EAAY,cACZC,EAAa,YACbC,EAAW,aACXC,EAAY,gBACZC,EAAe,eACfC,GACAP,EAEJ,OAAKhS,EAgBG3S,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,CAACP,UAAW,GAAG6X,EAAkB7X,aAAiB6X,GACnDvkB,IAAAA,cAAA,UACIA,IAAAA,cAAA,MAAImlB,MAAO,CAAEC,SAAU,WAAYC,IAAK,OAAQC,cAAe,QAAUV,GACzE5kB,IAAAA,cAAA,MAAImlB,MAAO,CAAEC,SAAU,WAAYC,IAAK,SACnCR,EACAE,EACA,QAAQE,KAEbjlB,IAAAA,cAAA,MAAI0M,UAAU,qCAAqCsY,IAEvDhlB,IAAAA,cAAA,UACIA,IAAAA,cAAA,MAAIulB,QAAS,GAAIL,KAzBzBllB,IAAAA,cAAC4iB,EAAAA,KAAI5V,OAAAC,OAAA,CAACP,UAAW,GAAG6X,EAAkB7X,aAAiB6X,GACnDvkB,IAAAA,cAAA,MAAImlB,MAAO,CAAEK,MAAO,QAAUZ,GAC9B5kB,IAAAA,cAAA,MAAImlB,MAAO,CAAEK,MAAO,QAChBxlB,IAAAA,cAAA,OAAKmlB,MAAO,CAAEM,QAAS,iBAAmBZ,GAC1C7kB,IAAAA,cAAA,OAAKmlB,MAAO,CAAEM,QAAS,eAAgBH,cAAe,MAAOI,UAAW,SAAWZ,IAEvF9kB,IAAAA,cAAA,MAAImlB,MAAO,CAAEK,MAAO,QAAUT,GAC9B/kB,IAAAA,cAAA,MAAImlB,MAAO,CAAEK,MAAO,MAAOG,UAAW,UAAYX,GAClDhlB,IAAAA,cAAA,MAAImlB,MAAO,CAAEK,MAAO,MAAOG,UAAW,WAAaV,GACnDjlB,IAAAA,cAAA,MAAImlB,MAAO,CAAEK,MAAO,SAAWN,GAkB5B,EAqCnB,EA3BiFhlB,IAC7E,MAAM,wBACFyU,EAAuB,iBACvBnU,EAAgB,MAChB4M,EAAK,UACLT,EAAS,YACTsB,EAAW,kBACX6T,EAAiB,uBACjB3T,EAAsB,0BACtByT,EAAyB,eACzBN,GACAphB,EAEJ,OACIF,IAAAA,cAACyjB,EAAAA,OAAMzW,OAAAC,OAAA,GAAK0H,EAAuB,CAAE+O,IAAKljB,IACrC4M,GACCT,EAAU8U,2BAA6BH,EACxC3U,EAAU9C,eAAiB7J,IAAAA,cAACqO,EAAWrB,OAAAC,OAAA,GAAKgB,IAC5CtB,EAAU6U,kBAAoBxhB,IAAAA,cAAC0a,EAAa1N,OAAAC,OAAA,GAAK6U,IACjDnV,EAAU7C,0BAA4B9J,IAAAA,cAACoD,EAAgB4J,OAAAC,OAAA,GAAKkB,IAC5DxB,EAAU8U,2BACPzhB,IAAAA,cAACwZ,EAAmBxM,OAAAC,OAAA,GAAM2U,IAEzB,kBC3RV,IAAKgE,EAMAC,EAMAxgB,sCAZZ,SAAYugB,GACRA,EAAA,cACAA,EAAA,oBACAA,EAAA,mBACH,CAJD,CAAYA,IAAAA,EAAsB,KAMlC,SAAYC,GACRA,EAAA,oBACAA,EAAA,gBACAA,EAAA,qBACH,CAJD,CAAYA,IAAAA,EAAyB,KAMrC,SAAYxgB,GACRA,EAAAA,EAAA,kBACAA,EAAAA,EAAA,oBACAA,EAAAA,EAAA,4BACAA,EAAAA,EAAA,0CACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,uDACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,2CACAA,EAAAA,EAAA,sBACAA,EAAAA,EAAA,wBACAA,EAAAA,EAAA,sBACAA,EAAAA,EAAA,2CACH,CAlBD,CAAYA,IAAAA,EAAe,0HCQpB,MA+BP,EA/B4EnF,IACxE,MACIkU,GAAI0R,EAAM,KACV5jB,EAAI,UACJwK,EAAS,KACTkB,EAAI,UACJD,EAAS,qBACToY,EAAoB,iBACpBhiB,EACAiiB,UAAWC,EAAmB,SAC9BjY,GACA9N,EAEEgmB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpiB,EAAmB7B,GACvDkkB,GAAaC,EAAAA,EAAAA,wBAAuBtiB,EAAmBmiB,GAC7D,OACIlmB,EAAAA,cAAA,QAAAgN,OAAAC,OAAA,CACI/K,KAAMA,EACNkS,GAAI0R,EACJpZ,UAAW,GAAGA,YAAoBA,YAAoBkB,IACtDA,KAAK,WACLoY,UAAWC,EAAmB,eAChBtY,EACdK,SAAUA,EACVlG,QAAS6F,GACJoY,GAAwB,CAAC,EAC1BK,GACN,wDC2BV,MAAME,EAAwBC,IACJA,GAAmB,IAAIvX,MAAKwX,GACvCA,EAAe5Y,OAASiY,EAAAA,GAA0BY,WAGvC,CAAE,iBAAiB,GAAS,CAAC,EAGjDC,EAAiBA,CAAChjB,EAA0BxD,KAC9C,MAAM,cACFY,EAAa,YACbwC,EAAW,oBACXM,EAAmB,uBACnBH,EAAsB,mBACtBlD,EAAkB,gBAClBgC,EAAkB,CAAC,EAAC,cACpByB,EAAa,iBACbE,EAAgB,gBAChByiB,GACAzmB,EAEJ,OAAOY,EAAc4S,KAAI,CAACsD,EAAmBd,KACzC,MAAM0Q,EAAY,GAAGtjB,EAAY4Z,wBAAwBlG,EAAkB9U,KAAKgb,gBAC1EhU,GAAeuZ,EAAAA,EAAAA,IAAIlgB,EAAiByU,EAAkB9U,MACtDwK,EAAYma,IAAU,yBAA0B,0BAA0B7P,EAAkB9U,KAAKgb,gBAAiB,CACpH,iCAAkClG,EAAkB8P,UACpD,6BAA8B5d,IAElC,IAAIqa,EAEJ,GAAIvM,EAAkB+P,cAAgBnB,EAAAA,GAAuBoB,MACzDzD,EACIvjB,EAAAA,cAACinB,EAAAA,EAAqBja,OAAAC,OAAA,GACd,CACAmH,GAAIwS,EACJ1kB,KAAM8U,EAAkB9U,KACxBwK,UAAW,mBACXkB,KAAM,OACNoY,UAAWW,QAAAA,EAA6B,IAAVzQ,EAC9BzT,MAAOiB,EAAgBsT,EAAkB9U,MACzCglB,UAAWlQ,EAAkBkQ,UAC7BlZ,SAAUhK,EACV+hB,qBAAsBO,EAAqBtP,EAAkBuP,yBAItE,GAAIvP,EAAkB+P,cAAgBnB,EAAAA,GAAuBuB,SAChE5D,EACIvjB,EAAAA,cAAConB,EAAuBpa,OAAAC,OAAA,GAChB,CACAmH,GAAIwS,EACJ1kB,KAAM8U,EAAkB9U,KACxBwK,UAAW,mBACXkB,KAAM,WACNoY,UAAqB,IAAV9P,EACXvI,UAAWjK,EAAgBsT,EAAkB9U,MAC7C8L,SAAUhK,EACV+hB,qBAAsBO,EAAqBtP,EAAkBuP,wBAItE,CACH,MAAMc,EAAczjB,EAAoBoT,EAAkB9U,MAC1D,IAAIolB,EAAgB5jB,EAAgBsT,EAAkB9U,MAElD8U,EAAkBpJ,OAASvI,EAAAA,GAAgBxD,2BAC3CylB,EAAgBA,GAAiB7jB,GAGjCuT,EAAkBpJ,OAASvI,EAAAA,GAAgBC,mBAC3CgiB,EAAgBA,GAAiB/mB,GAGrCgjB,EACIvjB,EAAAA,cAACunB,EAAAA,EAAuBva,OAAAC,OAAA,GAChB,CACAmH,GAAIwS,EACJ1kB,KAAM8U,EAAkB9U,KACxBwK,UAAW,mBACXjK,MAAO6kB,EACPD,cACArZ,SAAU9J,EACV6hB,qBAAsBO,EAAqBtP,EAAkBuP,mBAGvE,CAGN,MAAO,CACH1S,IAAKmD,EAAkB9U,KACvBmhB,YAAa,CAAE3W,YAAW0H,GAAI,GAAGwS,eACjCtD,MAAOtjB,EAAAA,cAACwnB,EAAAA,EAAqBxa,OAAAC,OAAA,GAAK,CAAEmH,GAAIwS,EAAW1Z,KAAM8J,EAAkBsM,SAC3ElW,MAAOpN,EAAAA,cAACynB,EAAAA,EAAqBza,OAAAC,OAAA,GAAK,CAAEO,QAAStE,KAC7Cqa,QACH,GACH,EAGOngB,EAAoBlD,IAC7B,MAAM,mBACFwnB,EAAkB,kBAClBC,EAAiB,gBACjBjkB,EAAkB,CAAC,EAAC,UACpBL,EAAS,SACTmJ,EAAQ,SACRhI,EAAQ,OACRF,EAAM,uBACNF,EAAsB,WACtBmG,EAAU,sBACV5G,EAAqB,iBACrBI,GACA7D,EACE4M,EAAUpJ,EAAgBgS,SAAWgS,EAAqBC,EAEhE,MAAO,CACH3E,YAAa,CAAEtW,UAAW,oBAC1BI,QAASA,GAAW9M,EAAAA,cAAC4nB,EAAAA,QAAO5a,OAAAC,OAAA,CAACP,UAAU,6BAAgCI,IACvE6V,MAAO+D,EAAehjB,EAAiBxD,GACvC+iB,kBAAmB7e,EACnB8e,WAAY5e,GACRtE,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAWma,IAAU,wCAAyC,CAAE,oCAAqCtc,IACrG2C,KAAM7J,EAAUykB,sBAChBja,UAAWxK,EAAU0kB,2BACrBC,SAAUzd,EACV0d,QAAS3jB,EACTP,sBAIZof,oBAAqB/e,EACrBgf,aAAc5e,GACVxE,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,0CACXQ,KAAM7J,EAAU6kB,wBAChBra,UAAWxK,EAAU8kB,6BACrBF,QAASzjB,EACTT,sBAIZyI,SAAUA,IAAY,EACtB/D,MAAO,CACH+a,aAAc,CAAE9W,UAAW,2BAC3BY,MAAO3J,GAAyBA,EAAsBykB,YAClDpoB,EAAAA,cAACqoB,EAAAA,EAA0Brb,OAAAC,OAAA,GAAK,CAAEK,MAAO3J,EAAsBykB,YAAc,MAEjF5a,QAAS7J,GAAyBA,EAAsBuF,cACpDlJ,EAAAA,cAACsoB,EAAAA,EAA4Btb,OAAAC,OAAA,GAAK,CAAEO,QAAS7J,EAAsBuF,cAAgB,OAG9F,+DCjNE,MAWP,EAXyEhJ,IACrE,MAAM,UAAEwM,EAAS,KAAEQ,EAAI,UAAEW,EAAWma,SAAUvd,EAAU,iBAAE1G,EAAgB,QAAEkkB,EAAO,KAAEhU,GAAS/T,EACxFgmB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpiB,EAAmBmJ,GACvDkZ,GAAaC,EAAAA,EAAAA,wBAAuBtiB,EAAmBmiB,GAC7D,OACIlmB,EAAAA,cAAA,SAAAgN,OAAAC,OAAA,CAAQP,UAAWA,EAAS,aAAcmB,EAAWma,SAAUvd,EAAYwJ,KAAMA,EAAMgU,QAASA,GAAa7B,GACxGlZ,EACI,+ECFV,MAAMmB,EAAenO,IACxB,MAAM,cAAEY,EAAa,gBAAER,EAAe,QAAEO,GAAYX,EAEpD,MAAO,CACHwiB,cAAe,CAAEhW,UAAW,sBAC5BiW,MAAO7hB,EAAc4S,KAAImP,IACrB,GAAIA,EAAK3gB,OAASmD,EAAAA,GAAgBA,EAAAA,GAAgBC,kBAAmB,CACjE,MAAMhC,EAAchD,EAAgB0O,MAChCuZ,GAAoBA,EAAiBhlB,YAAYoS,cAAgB9U,EAAQgiB,EAAK3gB,OAAS,IAAIyT,aAE/F,GAAIrS,EAAa,CACb,MAAMklB,EAAyBllB,EAAYmlB,aAAe,GAC1D,MAAO,CACH5U,IAAKgP,EAAK3gB,KACV4gB,YACI9iB,EAAAA,cAAC0oB,EAAAA,EAA0B1b,OAAAC,OAAA,GACnB,CACA6Z,UAAWjE,EAAKiE,UAChB6B,YAAa9F,EAAKjV,OAASvI,EAAAA,GAAgBuX,MAC3CgM,UAAW/F,EAAKS,MAChBphB,KAAM2gB,EAAK3gB,KACXO,MAAO+lB,KAIrB,CAAD,CAGT,MAAO,CACH3U,IAAKgP,EAAK3gB,KACV4gB,YACI9iB,EAAAA,cAAC0oB,EAAAA,EAA0B1b,OAAAC,OAAA,GACnB,CACA6Z,UAAWjE,EAAKiE,UAChB6B,YAAa9F,EAAKjV,OAASvI,EAAAA,GAAgBuX,MAC3CgM,UAAW/F,EAAKS,MAChBphB,KAAM2gB,EAAK3gB,KACXO,OAAQ5B,EAAQgiB,EAAK3gB,OAAS,IAAIyT,cAIjD,IAER,qEC3CE,MAAMrM,EAOTrJ,YAAYmJ,EAAuB/F,EAA6BkF,GAMzD,KAAAiG,0BAA4B,CAACpO,EAAyBC,EAAqCkO,KAC9F,MAAMsa,EAAgBta,GAAU,KAC1Bua,EAAuBzoB,EAAe2O,MAAK8N,IAAkBA,EAAcG,SAAW,MAAQ4L,IACpG,OAAQC,GAAwBA,EAAqB3L,iBAAoB/c,CAAe,EAGrF,KAAA2oB,qBAAwB1lB,IACpB,CACH+kB,WAAY/kB,EAAU2lB,yBACtB9f,aAAc7F,EAAU4lB,6BAIzB,KAAAxP,oBAAsB,IAClB9Y,KAAKyI,QAAQM,QAAQwf,KAAKC,gBAG9B,KAAA5iB,kBAAoB7F,UACvB,IAAI2a,EAAgC,GACpC,GAAI1a,KAAKyI,SAAWzI,KAAKyI,QAAQa,cAC7B,IACI,MAAMsZ,EAAQ,IAAI6F,EAAAA,GAAuBhpB,EAAiBO,KAAKyI,QAAQM,QAAQsO,aAC/EqD,QAAiBgO,EAAAA,EAAAA,IAAuB9F,EAAO5iB,KAAKyI,QAAQa,cAIH,CAH3D,MAAOxB,GACD9H,KAAK4H,YACL5H,KAAK4H,UAAUE,MAAM,qBAAqBA,KAC1C9H,KAAK4H,UAAU+gB,MAAM,iCAAgC,CAIjE,OAAO7N,QAAQC,QAAQL,EAAS,EAI7B,KAAAoC,QAAW5c,IACVA,IAAWA,EAAQgB,2BAA6BhB,EAAQW,QAASX,EAAQU,KAO1E,KAAAia,mBAAqB9a,gBAClBC,KAAK4oB,oCAAoC1oB,GACxCF,KAAK6oB,sBAAsBC,EAAAA,WAAY5oB,IAG3C,KAAA0a,sBAAwB7a,gBACrBC,KAAK4oB,oCAAoC1oB,GACxCF,KAAK6oB,sBAAsBE,EAAAA,cAAe7oB,IAG9C,KAAA8oB,6BAA+BjpB,SAC3BC,KAAK6oB,sBAAsBI,EAAAA,qBAAsB/oB,GAG3C,KAAA2oB,sBAAwB9oB,MACrCmpB,EACAhpB,KAEAA,EAAQyE,iBAAmBzE,EAAQyE,kBAAoB,EAEvD,MAAMie,EAAQ,IAAIuG,EAAAA,uBAAuBjpB,GACzC,OAAOF,KAAKopB,kBAAkBF,EAAetG,EAAO1iB,EAAQ,EAG/C,KAAAkpB,kBAAoBrpB,MACjCmpB,EACAtG,EACA1iB,KAEA,IAAIwa,EAA6B,CAAC,EAElC,GAAI1a,KAAKyI,SAAWzI,KAAKyI,QAAQa,cAC7B,IACI,MAAM0Q,QAAkBkP,EAActG,EAAO5iB,KAAKyI,QAAQa,eACtD0Q,EAAU1J,OAAS,EACnBoK,EAASxa,QAAUA,EAAQ6U,SAAW7U,EAAU8Z,EAAUA,EAAU1J,OAAS,GAE7EoK,EAASxa,QAAUA,EAEvBwa,EAASxG,kBAAoB8F,CAMwB,CALvD,MAAOlS,GACD9H,KAAK4H,YACL5H,KAAK4H,UAAUE,MAAM,qBAAqBA,KAC1C9H,KAAK4H,UAAU+gB,MAAM,kCAEzBjO,EAAW1a,KAAKooB,qBAAqBpoB,KAAK0C,UAAW,CAG7D,OAAOoY,QAAQC,QAAQL,EAAS,EAQnB,KAAAkO,oCAAsC7oB,UACnD,IAAIJ,EAAoC,GACxC,IACI,MAAMijB,EAAiC,IAAIyG,EAAAA,wBAAwBrpB,KAAKyI,QAAQM,QAAQsO,aACxF1X,QAAwB2pB,EAAAA,EAAAA,0BAAyB1G,EAAO5iB,KAAKyI,QAAQa,cAId,CAHzD,MAAOxB,GAEL9H,KAAK4H,UAAUE,MAAM,qBAAqBA,KAC1C9H,KAAK4H,UAAU+gB,MAAM,iCAAkC,CAE3D,GAAI/V,EAAAA,gBAAgBC,YAAYlT,GAAkB,CAC9C,MAAM4pB,EAA6C5pB,EAAgB0O,MAC/Dmb,GAAWA,EAAQ5mB,cAAgB1C,EAAQyE,mBAE3C4kB,IACArpB,EAAQupB,8BAAgCF,EAAexU,SAAQ,GAtHvE/U,KAAKyI,QAAUA,EACfzI,KAAK0C,UAAYA,EACjB1C,KAAK4H,UAAYA,CACrB,uFCnBG,MAAMgB,EAOTtJ,YAAYoqB,EAAyCC,EAAkChqB,GAyChF,KAAAuD,gCAAkC,CACrC0mB,EACAtpB,KAEA,MAAMupB,EAAmB,CACrB3W,IAAK,GACLpR,MAAO8nB,GAELE,EAAsC,CAAC,EAO7C,OALAA,EAAaplB,EAAAA,GAAgBA,EAAAA,GAAgBxD,2BAA6BlB,KAAK+pB,mBAC/ED,EAAaplB,EAAAA,GAAgBA,EAAAA,GAAgB7D,QAAUb,KAAKgqB,eAAe1pB,GAC3EwpB,EAAaplB,EAAAA,GAAgBA,EAAAA,GAAgB7D,QAAQopB,QAAQJ,GAC7DC,EAAaplB,EAAAA,GAAgBA,EAAAA,GAAgBC,mBAAqB3E,KAAKkqB,uBAEhEJ,CAAY,EAGhB,KAAA5lB,0BAA6BzE,GACNO,KAAKmqB,sBAAsB1qB,GAE3B6c,QAGvB,KAAAva,sBAAwB,CAC3B7B,EACA0B,EACAnC,EACA2qB,KAEA,IACIC,EADAC,GAAmB,EAavB,OAXsBtqB,KAAKiB,iBAAiBf,EAAQgB,0BAA4BzB,GAElE0B,SAAQkV,MACb+T,GAAiBA,GAAgB/T,EAAkB9U,OAAS6oB,KAC7DC,EAAgBrqB,KAAKuqB,iBAAiBlU,EAAmBzU,EAAiB1B,QACpDoB,IAAlB+oB,IACAC,EAAUD,GAAa,IAK5BC,CAAO,EAGX,KAAAlqB,qBAAuB,CAACC,EAA0CC,KACrE,MAAMJ,EAAmB,CAAC,EAU1B,QAPkCoB,IAA9BjB,EAAOH,QAAQsqB,WACftqB,EAAQQ,QAAUL,EAAOH,QAAQsqB,WAEjCtqB,EAAQQ,QAAU,GAIlBJ,EAAmB,CACnB,MAAMmqB,EAAgBnqB,EAAkB+N,MAAKtI,GAASA,EAAM2kB,YAAcrqB,EAAOH,QAAQyqB,gBACpFF,GAIDvqB,EAAQW,MAAQ4pB,EAAczkB,QAC9B9F,EAAQwqB,UAAYD,EAAcC,YAJlCxqB,EAAQW,MAAQ,GAChBX,EAAQwqB,UAAYrqB,EAAOH,QAAQyqB,cAGQ,CA6BnD,YAxBmCrpB,IAA/BjB,EAAOH,QAAQ0qB,YACf1qB,EAAQO,OAASJ,EAAOH,QAAQ0qB,YAEhC1qB,EAAQO,OAAS,SAIWa,IAA5BjB,EAAOH,QAAQ2qB,SACf3qB,EAAQU,KAAOP,EAAOH,QAAQ2qB,SAE9B3qB,EAAQU,KAAO,QAIaU,IAA5BjB,EAAOH,QAAQ4qB,UACf5qB,EAAQY,aAAeT,EAAOH,QAAQ4qB,SACtC5qB,EAAQS,WAAaN,EAAOH,QAAQ4qB,UAEpC5qB,EAAQY,aAAe,GAI3BZ,EAAQa,YAAcV,EAAOH,QAAQ6qB,iBAE9B7qB,CAAO,EAcD,KAAA8qB,eAAiB,CAAC9qB,EAAkBkqB,EAAsBvE,KACvE,GAAIA,EAAeoF,OAASpF,EAAeoF,MAAM3a,OAAS,EAAG,CAEzD,OADc,IAAIjL,OAAOwgB,EAAeoF,OAC3BC,MAAMpJ,EAAAA,EAAAA,IAAI5hB,EAASkqB,IAA4B,GAAI,CAEpE,OAAO,CAAI,EAxJXpqB,KAAK0pB,mBAAqBA,EAC1B1pB,KAAK2pB,gBAAkBA,EACvB3pB,KAAKL,gBAAkBA,CAC3B,CAEOsB,iBAAiBxB,GACpB,MAAM0rB,EAAoBnrB,KAAKmqB,sBAAsB1qB,GACrD,OAAI0rB,EACOnrB,KAAKorB,yBAAyBD,GAElC,EACX,CAEOpB,mBACH,OAAQ/pB,KAAK0pB,oBAAsB,IAAI3W,KAAIoJ,IAChC,CACHjJ,IAAKiJ,EAAcK,gBACnB1a,MAAOqa,EAAckP,aAGjC,CAEOrB,eAAe1pB,GAClB,OAAQA,GAAqB,IAAIyS,KAAIhN,IAC1B,CACHmN,IAAKnN,EAAMC,QACXlE,MAAOiE,EAAM2kB,aAGzB,CAEOR,uBACH,OAAQlqB,KAAKL,iBAAmB,IAAIoT,KAAIwW,IAC7B,CACHrW,IAAKqW,EAAe3mB,YACpBd,MAAOynB,EAAezB,eAGlC,CAkGQyC,iBAAiBlU,EAAiCzU,EAA0B1B,IAChFK,EAAAA,EAAAA,IAAIqB,EAAiB,CAAE,CAACyU,EAAkB9U,MAAO,OACjD,IAAK,MAAMskB,KAAkBxP,EAAkBuP,iBAAmB,GAC9D,IAAK5lB,KAAKgrB,eAAe9qB,EAASmW,EAAkB9U,KAAMskB,GAEtD,OADAtlB,EAAAA,EAAAA,IAAIqB,EAAiB,CAAE,CAACyU,EAAkB9U,MAAOskB,EAAehZ,WACzD,CAInB,CAUQsd,sBAAsB1qB,GAC1B,OAAQO,KAAK0pB,oBAAsB,IAAIrb,MAAK8N,IAChCA,EAAcK,iBAAmB,IAAID,gBAAkB9c,EAAgB8c,eAEvF,CAEQ6O,yBAAyBD,GAC7B,MAAMG,EAAqC,GAE3C,GAAIH,GAAqBA,EAAkBI,mBAAoB,CAC3D,MAAMC,EAAkBxrB,KAAKyrB,4BAA4B/mB,EAAAA,GAAgBC,kBAAkB,GACvF6mB,GACAF,EAAmB7mB,KAAK+mB,GAG5B,MAAME,EAAkB1rB,KAAKyrB,4BAA4B/mB,EAAAA,GAAgB6J,MAAM,GAC3Emd,GACAJ,EAAmB7mB,KAAKinB,GAG5BP,EAAkBI,mBAAmBpqB,SAAQwqB,IACzC,GAAIA,EAAWC,0BAA2B,CACtC,MAAMC,EAAc7rB,KAAK2pB,gBAAgBmC,cAAcH,EAAWC,2BAC9DC,IACAA,EAAY1F,UAAYwF,EAAWI,UAAW,EAC9CT,EAAmB7mB,KAAKonB,GAAY,KAKhD,MAAMG,EAAmBhsB,KAAKyrB,4BAA4B/mB,EAAAA,GAAgBuX,OAAO,GAC7E+P,GACAV,EAAmB7mB,KAAKunB,GAG5B,MAAMC,EAAuBjsB,KAAKyrB,4BAA4B/mB,EAAAA,GAAgBE,WAAW,GACrFqnB,GACAX,EAAmB7mB,KAAKwnB,EAAqB,CAIrD,OAAOX,CACX,CAEQG,4BAA4Bxe,EAAuBkZ,GACvD,MAAM0F,EAAc7rB,KAAK2pB,gBAAgBmC,cAAc7e,GAIvD,OAHI4e,IACAA,EAAY1F,UAAYA,GAErB0F,CACX,gFCtNG,MAAMhjB,EAiBTvJ,YAAYoD,EAA6BwpB,EAA8BC,GAhBtD,KAAAC,SAA2B,GAI3B,KAAAC,mBAA6B,MAE7B,KAAAC,eAAyB,YAEzB,KAAAC,gBAA0B,UAE1B,KAAAhG,UAAoB,GAOjCvmB,KAAK0C,UAAYA,GAAa,CAAC,EAC/B1C,KAAKwsB,cAAgBN,GAAY,GACjClsB,KAAKysB,oBACYnrB,IAAb6qB,EACMA,EACA,CACIznB,EAAAA,GAAgBC,iBAChBD,EAAAA,GAAgB6J,KAChB7J,EAAAA,GAAgBhE,QAChBgE,EAAAA,GAAgB9D,KAChB8D,EAAAA,GAAgB7D,MAChB6D,EAAAA,GAAgBxD,yBAChBwD,EAAAA,GAAgBjE,QAE9BT,KAAK0sB,OACT,CAEOZ,cAAcrY,GACjB,OAAOzT,KAAKosB,SAAS/d,MAAK6T,GACfA,EAAKjV,OAASwG,GAE7B,CAEQiZ,QACJ1sB,KAAK2sB,SAASjoB,EAAAA,GAAgB6J,KAAM0W,EAAAA,GAAuBoB,OAC3DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgBuX,MAAOgJ,EAAAA,GAAuBoB,MAAOuG,EAAAA,WAAWC,cAC9E7sB,KAAK2sB,SAASjoB,EAAAA,GAAgBhE,QAASukB,EAAAA,GAAuBoB,OAC9DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgB9D,KAAMqkB,EAAAA,GAAuBoB,OAC3DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgBooB,OAAQ7H,EAAAA,GAAuBoB,OAC7DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgB7D,MAAOokB,EAAAA,GAAuB8H,UAC5D/sB,KAAK2sB,SAASjoB,EAAAA,GAAgBxD,yBAA0B+jB,EAAAA,GAAuB8H,UAC/E/sB,KAAK2sB,SAASjoB,EAAAA,GAAgBjE,OAAQwkB,EAAAA,GAAuBoB,OAC7DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgB5D,aAAcmkB,EAAAA,GAAuBoB,OACnErmB,KAAK2sB,SAASjoB,EAAAA,GAAgBoX,aAAcmJ,EAAAA,GAAuBoB,OACnErmB,KAAK2sB,SAASjoB,EAAAA,GAAgBsoB,mBAAoB/H,EAAAA,GAAuBoB,OACzErmB,KAAK2sB,SAASjoB,EAAAA,GAAgBuoB,QAAShI,EAAAA,GAAuBoB,OAC9DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgBwoB,SAAUjI,EAAAA,GAAuBoB,OAC/DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgByoB,QAASlI,EAAAA,GAAuBoB,OAC9DrmB,KAAK2sB,SAASjoB,EAAAA,GAAgB0oB,mBAAoBnI,EAAAA,GAAuBoB,OACzErmB,KAAK2sB,SAASjoB,EAAAA,GAAgBC,iBAAkBsgB,EAAAA,GAAuB8H,UACvE/sB,KAAK2sB,SAASjoB,EAAAA,GAAgBE,UAAWqgB,EAAAA,GAAuBuB,SACpE,CAEQmG,SAAS1f,EAAuBmZ,EAAqChlB,GACzE,GAAIpB,KAAKwsB,cAAc9qB,SAASuL,GAC5B,OAGJ,MAAMogB,EAAU3oB,EAAAA,GAAgBuI,GAAM7H,QAAQ,IAAK,IAG7CwgB,EAAkB5lB,KAAKstB,iBAAiBrgB,EAAMogB,EAASjsB,GACvDmsB,EAAa3H,EAAgB9f,MAAK0nB,GAAQA,EAAKvgB,OAASiY,EAAAA,GAA0BY,WAGlF2H,EACFztB,KAAK0C,UAAU,GAAG1C,KAAKusB,kBAAkBc,mBAA2BrtB,KAAK0C,UAAU,GAAG1C,KAAKusB,kBAAkBc,UAC3GnL,EAAqB,CACvBjV,OACAmZ,cACA7kB,KAAMmD,EAAAA,GAAgBuI,GACtB0V,MAAO4K,EAAavtB,KAAK0C,UAAU,GAAG1C,KAAKusB,kBAAkBc,UAAkBI,EAC/ElH,UAAWvmB,KAAKumB,UAChBX,kBACAO,WAAW,GAGfnmB,KAAKosB,SAAS3nB,KAAKyd,EACvB,CAEQoL,iBAAiBrgB,EAAuB1L,EAAcH,GAC1D,MAAMwkB,EAA4C,GAElD,IAAK,MAAM8H,KAAYrhB,OAAOshB,KAAKzI,EAAAA,IAA4B,CAC3D,MAAMhS,EAAM,GAAGlT,KAAKusB,kBAAkBhrB,IAAOmsB,IACvC7gB,EAAkB7M,KAAK0C,UAAU,GAAGwQ,iBAC1C,OAAQwa,GACJ,KAAKxI,EAAAA,GAA0BY,SACvB9lB,KAAKysB,eAAepe,MAAMuf,GAA8BA,IAAa3gB,KACrE2Y,EAAgBnhB,KAAKzE,KAAK6tB,gBAAgBH,EAAU1tB,KAAKqsB,mBAAoBxf,IAEjF,MAEJ,KAAKqY,EAAAA,GAA0B4I,OAC3BlI,EAAgBnhB,KAAKzE,KAAK6tB,gBAAgBH,EAAUtsB,EAASyL,IAC7D,MAEJ,KAAKqY,EAAAA,GAA0B6I,UACvB9gB,IAASvI,EAAAA,GAAgBuX,OACzB2J,EAAgBnhB,KAAKzE,KAAK6tB,gBAAgBH,EAAU1tB,KAAKssB,eAAgBzf,IAKjF,CAGR,OAAO+Y,CACX,CAEQiI,gBAAgB5gB,EAAiCge,EAAepe,GACpE,MAAO,CACHI,OACAge,QACApe,UAER,mBCvIG,IAAKrH,EAQA5C,2BARZ,SAAY4C,GACRA,EAAA,UACAA,EAAA,YACAA,EAAA,gBACAA,EAAA,YACAA,EAAA,mBACH,CAND,CAAYA,IAAAA,EAAgB,KAQ5B,SAAY5C,GACRA,EAAA,oBACAA,EAAA,kBACAA,EAAA,kBACAA,EAAA,iBACH,CALD,CAAYA,IAAAA,EAAW,iDCAhB,MAMP,EANoFrD,IAChF,MAAM,QAAEsN,GAAYtN,EAEpB,OAAOF,EAAAA,cAAA,KAAG0M,UAAU,mCAAmCc,EAAY,8CCHhE,MAMP,EANgFtN,IAC5E,MAAM,MAAEoN,GAAUpN,EAElB,OAAOF,EAAAA,cAAA,KAAG0M,UAAU,iCAAiCY,EAAU,+DCO5D,MAgCP,EAhCsEpN,IAClE,MACIkU,GAAI0R,EAAM,KACV5jB,EAAI,UACJwK,EAAS,KACTkB,EAAI,MACJnL,EAAK,UACLykB,EAAS,qBACTnB,EACAC,UAAW2I,EAAkB,iBAC7B5qB,EAAgB,SAChBiK,GACA9N,EAEEgmB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpiB,EAAmB7B,GACvDkkB,GAAaC,EAAAA,EAAAA,wBAAuBtiB,EAAmBmiB,GAC7D,OACIlmB,EAAAA,cAAA,QAAAgN,OAAAC,OAAA,CACI/K,KAAMA,EACNkS,GAAI0R,EACJpZ,UAAW,GAAGA,YAAoBA,YAAoBkB,IACtDA,KAAMA,EACNoY,UAAW2I,EACXlsB,MAAOA,EACPykB,UAAWA,GACNnB,GAAwB,CAAC,EAC1BK,EAAU,CACdpY,SAAUA,IACZ,4ICwBV,MAAM4gB,EAAqBA,CAAC/gB,EAAmBghB,IACpChhB,EAAU9H,QAAQ,gBAAiB8oB,GAAe,IAGvDC,EAAiBA,CACnBpiB,EACAiO,EACAoU,EACA7uB,EACA4M,KAEA,MAAM,UACFzJ,EAAS,WACTkH,EAAU,sBACV5G,EAAqB,gBACrBD,EAAe,cACf5C,EAAa,cACbkuB,EAAa,gBACbC,EAAe,uBACfC,EAAsB,gBACtB5uB,EAAe,iBACfyD,GACA7D,GACE,WAAEkoB,EAAa,KAAI,aAAElf,EAAe,MAASvF,GAAyB,CAAC,EAE7E,MAAO,CACH0F,KAAM,CAAEqD,aACRyiB,WAAYxU,EAAU1J,OAAS,EAC/BnE,QAASA,GAAW9M,EAAAA,cAAC4nB,EAAAA,QAAO5a,OAAAC,OAAA,CAACP,UAAW,GAAGA,aAAyBI,IACpE6V,MAAOhI,EAAUjH,KACZ7S,IACG,MAAMuuB,EAAoB1rB,GAAmBA,EAAgBgS,WAAa7U,EAAQ6U,SAC5E2Z,EAAcD,GAAqBhH,GAAclf,EAIjDomB,GACFpvB,EAAMqvB,oCAECrvB,EAAMsvB,2CACNtvB,EAAMuvB,iBAA4BvvB,EAAMwvB,gDADU,GAG7D,MAAO,CACHC,KAAM,CAAEjjB,UAAW,GAAGA,UACtBmH,IAAKhT,EAAQ6U,UAAY,EACzBqO,WAAW1V,EAAAA,EAAAA,GAAY,CACnBvN,cAAeA,EAAcc,iBAAiBf,EAAQgB,0BAA4B,IAClFhB,UACAP,oBAEJmI,MAAO,CACHmnB,MAAO,CAAEljB,UAAW,GAAGA,WACvB2iB,cAAeA,EACf/hB,MAAOtN,EAAAA,cAACqoB,EAAAA,EAA0Brb,OAAAC,OAAA,GAAK,CAAEK,MAAO8a,GAAc,MAC9D5a,QAASxN,EAAAA,cAACsoB,EAAAA,EAA4Btb,OAAAC,OAAA,GAAK,CAAEO,QAAStE,GAAgB,OAE1E2mB,oBAAqBd,EAErBe,cACI9vB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAWG,IACP,2CACA,CAAE,oCAAqCtC,GAAc6kB,GACrD,CAAE,oCAAqCE,IAE3CtH,SAAUzd,GAAc+kB,EACxBpiB,KAAM7J,EAAU0sB,yBAChBliB,UAAW+gB,EAAmBvrB,EAAU2sB,8BAA+BnvB,EAAQqO,MAC/EnL,mBACAkkB,QAASA,KACLiH,EAAuBruB,EAAQ,KAK/CovB,WACIjwB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CAEAP,UAAWG,IAAW,gCAAiC,CACnD,oCAAqCyiB,IAEzCtH,SAAUzd,GAAc+kB,EACxBpiB,KAAM7J,EAAU6sB,sBAChBriB,UAAW+gB,EAAmBvrB,EAAU8sB,2BAA4BtvB,EAAQqO,MAC5EnL,mBACAkkB,QAASA,KACL+G,EAAcnuB,EAAQ,EAE1BoT,KAAM,UAIlBmc,aACIpwB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CAEAP,UAAWG,IAAW,kCAAmC,CACrD,oCAAqCyiB,IAEzCtH,SAAUzd,GAAc+kB,EACxBpiB,KAAM7J,EAAUgtB,wBAChBxiB,UAAW+gB,EAAmBvrB,EAAUitB,6BAA8BzvB,EAAQqO,MAC9EnL,mBACAkkB,QAASA,KACLgH,EAAgBpuB,EAAQ,EAE5BoT,KAAM,UAIrB,IAGZ,EAGCsc,EAAyBrwB,IAC3B,MAAM,UAAEya,EAAS,6BAAE6V,GAAiCtwB,EAC9CuwB,EAAmB9V,EAAUvD,QAAQvW,GAAqBA,EAAQ0E,YACxE,OAAOupB,EAAe,4BAA6B2B,GAAkB,EAAOvwB,EAAOswB,EAA6B,EAG9GE,EAAuBxwB,IACzB,MAAM,UAAEya,EAAS,2BAAEgW,GAA+BzwB,EAC5C0wB,EAAiBjW,EAAUvD,QAAQvW,IAAsBA,EAAQ0E,YACvE,OAAOupB,EAAe,4BAA6B8B,GAAgB,EAAM1wB,EAAOywB,EAA2B,EAGlGE,EAAe3wB,IAAoD,IAAA4wB,EAC5E,MAAM,UAAEnW,EAAS,QAAE7N,EAAO,UAAEzJ,EAAS,aAAE2X,EAAY,iBAAEjX,EAAgB,4BAAEgtB,GAAgC7wB,EACjG8wB,GAAmBlkB,aAAO,EAAPA,EAASI,OAC9BlN,EAAAA,cAAC2R,EAAAA,GAAa,CACVjF,UAAU,4BACVukB,IAAuB,QAApBH,EAAEhkB,EAAQokB,kBAAU,IAAAJ,EAAAA,EAAI,KAC3B5jB,KAAMJ,EAAQI,KACdikB,UAAW,CACPlqB,OAAQ8pB,GAEF,SAGN7mB,eAAgBhK,EAAMkxB,kBAO5BC,GACFnxB,EAAMqvB,uCAECrvB,EAAMsvB,2CACNtvB,EAAMuvB,mBACLvvB,EAAMwvB,8CAElB,MAAO,CACH4B,YAAa,CAAE5kB,UAAW,mBAC1BI,QAASkkB,EACTO,uBAA6C,IAArB5W,EAAU1J,OAClCugB,iBAAkBxxB,EAAAA,cAAA,KAAG0M,UAAU,+BAA+BrJ,EAAUouB,gCACxE5N,UACI7jB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,uCACXQ,KAAM7J,EAAUquB,qBAChB7jB,UAAWxK,EAAUsuB,0BACrB5tB,mBACAkkB,QAASjN,EACTgN,SAAUqJ,KAItBO,mBAAoBrB,EAAsBrwB,GAC1C2xB,iBAAkBnB,EAAoBxwB,GACzC,6nBChPE,MAAM6K,EAeT9K,YACIsI,EACA8B,EACAO,EACAknB,EACAC,GAnBY,KAAA3vB,sBAAkC,CAAC,2BAA4B,OAAQ,mBAAoB,SA4BpG,KAAAwD,kBAAoB,CACvBosB,EACAC,EACAC,KAEKvxB,KAAKwxB,oBACNC,UAAUC,KAAKC,WAAW,6BAA8B,CACpDC,SAAUA,KAAK,IAAAC,EACX,MAAM1nB,EAAOlC,EAAAA,EAAA,GAAQjI,KAAK0J,oBAAkB,IAAEynB,YAAanxB,KAAKmxB,cAChEnxB,KAAKwxB,mBAAqB,IAAIC,UAAUC,KAAKI,mBAAmB3nB,GAChEnK,KAAKwxB,mBAAmBO,kBAAkBV,EAASC,EAAaC,GACjC,QAA/BM,EAAAG,SAASC,cAAcZ,UAAQ,IAAAQ,GAA/BA,EAAiCK,aAAa,OAAQ,YACtDlxB,YAAW,KAAK,IAAAmxB,EACmB,QAA/BA,EAAAH,SAASC,cAAcZ,UAAQ,IAAAc,GAA/BA,EAAiCD,aAAa,OAAQ,OAAO,GAC9D,EAAE,EAETE,cAAeA,KACPpyB,KAAK4H,WACL5H,KAAK4H,UAAU+gB,MAAM,qCAAsC,EAGnE0J,YAAaryB,KAAKsyB,gBACnB,EAIJ,KAAAluB,gCAAmC+sB,IAClCnxB,KAAKwxB,qBACLxxB,KAAK0J,mBAAmBynB,YAAcA,EACtCnxB,KAAKwxB,mBAAmBe,WAAWvyB,KAAK0J,oBAAoB,EAI7D,KAAA6B,mBAAqB,KAAW,IAAAinB,EAAAC,EACZ,QAAvBD,EAAAxyB,KAAKwxB,0BAAkB,IAAAgB,GAAvBA,EAAyBE,oBACF,QAAvBD,EAAAzyB,KAAKwxB,0BAAkB,IAAAiB,GAAvBA,EAAyBE,UACzB3yB,KAAKwxB,wBAAqBlwB,CAAS,EAIhC,KAAAiJ,YAAcxK,gBACX+E,EAA0B2F,WAAW,CACvCyI,IAAKlT,KAAKsyB,eACVM,KAAM5yB,KAAKoxB,kBACXxjB,OAAQ5N,KAAKmxB,aACf,EApDFnxB,KAAK4H,UAAYA,EACjB5H,KAAK0J,mBAAqBA,EAC1B1J,KAAKsyB,eAAiBroB,EACtBjK,KAAKmxB,YAAcA,EACnBnxB,KAAKoxB,kBAAoBA,CAC7B,+CCzBG,MASP,EATsE7xB,IAClE,MAAMsN,EAAUtN,EAAMsN,QACtB,OACIxN,EAAAA,cAAA,QAAM0M,UAAU,0BAA0BuH,KAAK,QAAO,YAAW,aAC5DzG,GAAWxN,EAAAA,cAAAA,EAAAA,SAAA,KAAGwN,GACZ,qDCHf,MAqCA,EAjB4EtN,IACxE,MAAQkU,GAAI0R,EAAM,KAAE5jB,EAAI,UAAEwK,EAAS,MAAEjK,EAAK,qBAAEsjB,EAAoB,YAAEsB,EAAW,SAAErZ,EAAQ,SAAEwlB,GAAatzB,EAEtG,OACIF,EAAAA,cAAA,SAAAgN,OAAAC,OAAA,CACImH,GAAI0R,EACJpZ,UAAW,GAAGA,cACdxK,KAAMA,EACNO,MAAO+wB,GAAY/wB,EACnBuL,SAAUA,GACL+X,GAAwB,CAAC,GAE7BsB,GAAeA,EAAY3T,KAAImP,GAhCpB4Q,EAAC5f,EAAuBpR,EAAgB6kB,KAC5D,IAAIoM,EAOJ,OALIA,EADe,iBAAR7f,EACMA,IAAQyT,EAEiB,iBAAlBA,IAA+BzT,GAAO,IAAIqJ,iBAAmBoK,GAAiB,IAAIpK,cAItGld,EAAAA,cAAA,UAAQ6T,IAAKA,EAAKpR,MAAOoR,EAAG,gBAAiB6f,GACxCjxB,EACI,EAqBmCgxB,CAAgB5Q,EAAKhP,IAAKgP,EAAKpgB,MAAOA,KACzE,8CClCV,MAUP,EAVsEvC,IAClE,MAAQkU,GAAI0R,EAAM,KAAE5Y,GAAShN,EAE7B,OACIF,EAAAA,cAAA,SAAO0M,UAAU,0BAA0BinB,QAAS7N,GAC/C5Y,EACG,gECFT,MA2BP,EA3BiFhN,IAC7E,MAAM,UAAE4mB,EAAS,YAAE6B,EAAW,UAAEC,EAAS,KAAE1mB,EAAI,MAAEO,GAAUvC,EAErDwM,EAAY,qDAAqDxK,EAAKgb,gBACtEO,IAAYhb,GAASA,EAAMwO,OAAS,GACpC2iB,EAAYjL,EACZ,oEAAoEC,IACpE/B,IAAUna,EAAW,CAAE,iCAAkC+Q,EAAS,mCAAoCqJ,IAC5G,OACI9mB,EAAAA,cAAA,QAAM0M,UAAWma,IAAU+M,EAAW,CAAE,sCAAuCnW,KAC1EkL,GACG3oB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAM0M,UAAW,GAAGA,WAAoBkc,GACxC5oB,EAAAA,cAAA,QACI0M,UAAWma,IAAUna,EAAW,CAC5B,iCAAkC+Q,EAClC,mCAAoCqJ,IACtC,oBAKbrkB,EACE,oDCpCR/B,eAAeqL,EAAqBvL,EAAgDqzB,GACvF,MAAMzjB,QAAsC0jB,EAAAA,EAAAA,kBAAiBD,GAAKxV,OAAO5V,IAErE,MADAorB,EAAItrB,UAAUwrB,UAAUtrB,GAClBA,CAAK,IAGfjI,EAAiBwzB,SAAWxzB,EAAiBwzB,QAAQC,uBAC/C7jB,EAAc8jB,yBAAyB,CAAEC,sBAAuBroB,EAAAA,eAAesoB,MACzF,6XCQO,MAAM/mB,EAA0CgF,IAAA,IAAC,MAAE/E,EAAK,QAAEE,EAAO,UAAEd,EAAY,kCAAkC2F,EAAA,OACpHrS,EAAAA,cAAA,OAAK0M,UAAW,GAAGA,WAAoBuH,KAAK,QAAO,YAAW,aAC1DjU,EAAAA,cAAA,KAAG0M,UAAW,GAAGA,kBAA2BY,GAC5CtN,EAAAA,cAAA,KAAG0M,UAAW,GAAGA,oBAA6Bc,GAC5C,mGCqBV,MAAM6mB,EAAWA,CAACne,EAAerV,EAAkBX,KAAoD,IAAAo0B,EACnG,MAAM,UAAE3Z,EAAS,sBAAEC,EAAqB,gBAAElX,EAAe,UAAEL,EAAS,gBAAE/C,GAAoBJ,EACpFsoB,EAAyB3nB,EAAQyE,mBACgD,QAAjFgvB,EAAAh0B,EAAgB0O,MAAKmb,GAAWA,EAAQ5mB,cAAgB1C,EAAQyE,0BAAiB,IAAAgvB,OAAA,EAAjFA,EAAmF7L,cACnF,GACA8L,EAAW1zB,EAAQ6U,WAAahS,EAAgBgS,SAChD8e,EAAuB,CACzB1sB,QAASysB,EACT,eAAgBA,EAChB,eAAgB5Z,EAAU1J,OAC1B,gBAAiBiF,EAAQ,EACzB,cAAcnU,EAAAA,EAAAA,QAAOsB,EAAUoxB,+BAAgCjM,IAGnE,OACIxoB,EAAAA,cAACinB,EAAAA,EAAqBja,OAAAC,OAAA,GACd,CACAP,UAAW,qBACXxK,KAAM,uBACN0L,KAAM,QACNnL,OAAQ5B,EAAQ6U,UAAY,IAAIC,WAChC3H,SAAU4M,EACVmL,qBAAsByO,EACtBzwB,iBAAkB7D,EAAM6D,mBAE9B,EAIJ2wB,EAAyBx0B,IAC3B,MAAM,UAAEya,EAAS,cAAE7Z,EAAa,gBAAER,GAAoBJ,EAEtD,OAAOya,EAAUjH,KAAI,CAAC7S,EAASqV,KACpB,CACHrC,IAAKhT,EAAQ6U,UAAY,EACzBoO,WAAY,CAAEpX,UAAW,4BACzB6W,MAAO8Q,EAASne,EAAOrV,EAASX,GAChC6jB,WAAW1V,EAAAA,EAAAA,GAAY,CACnBvN,cAAeA,EAAcc,iBAAiBf,EAAQgB,0BAA4B,IAClFhB,UACAP,uBAGV,EAGOoa,EAAiBxa,IAC1B,MAAM,UACFmD,EAAS,SACTmB,EAAQ,OACRF,EAAM,aACN0W,EAAY,wBACZF,EAAuB,uBACvB1W,EAAsB,+BACtB+W,GACAjb,EAEJ,MAAO,CACHyjB,cAAe,CAAEjX,UAAW,sBAC5BmX,UACI7jB,EAAAA,cAAA,OAAK0M,UAAWyO,EAAiC,uCAAyC,IACtFnb,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,+BAA8ByO,EAAiC,UAAY,OACtFjO,KAAMiO,EAAiC9X,EAAUsxB,wBAA2BtxB,EAAUquB,qBACtF7jB,UAAWsN,EACL9X,EAAUuxB,6BACVvxB,EAAUsuB,0BAChB1J,QAASjN,EACTjX,iBAAkB7D,EAAM6D,qBAKxC6f,4BAA6BzI,GAAkCL,GAC3D9a,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,qDACXQ,KAAM7J,EAAUwxB,wBAChBhnB,UAAWxK,EAAUyxB,6BACrB7M,QAASnN,EACT/W,iBAAkB7D,EAAM6D,oBAIpCkf,kBAAmB7e,EACnB8e,WACIljB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,kCACXQ,KAAM7J,EAAUykB,sBAChBja,UAAWxK,EAAU0kB,2BACrBE,QAAS3jB,EACTP,iBAAkB7D,EAAM6D,oBAIpCof,oBAAqB/e,EACrBgf,aACIpjB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,oCACXQ,KAAM7J,EAAU6kB,wBAChBra,UAAWxK,EAAU8kB,6BACrBF,QAASzjB,EACTT,iBAAkB7D,EAAM6D,oBAIpC4e,MAAO+R,EAAsBx0B,GAChC,+DC5IE,MAAMwN,EAA4D2E,IAOpE,IAPqE,UACtE1E,EAAS,MACTlL,EAAK,UACLoL,EAAS,KACTX,EAAI,iBACJnJ,EAAgB,SAChBiK,GACHqE,EACG,MAAMmiB,EAAuB,CACzB1sB,QAAS6F,EACT,eAAgBA,GAGpB,OACI3N,EAAAA,cAAA,SAAO0M,UAAU,uDACb1M,EAAAA,cAACinB,EAAAA,EAAqBja,OAAAC,OAAA,GACd,CACAW,KAAM,WACNlB,UAAW,8BACXjK,QACAuL,WACA+X,qBAAsByO,EACtBzwB,sBAGR/D,EAAAA,cAAA,QAAM0M,UAAU,+DAA+DQ,GAC3E,8CClCT,MAAMH,EAA0DsF,IAAA,IAAC,KAAEnF,GAAMmF,EAAA,OAC5ErS,EAAAA,cAAA,MAAI0M,UAAU,wCAAwCQ,EAAU,oUC+C7D,MAAMsM,EAAuBtZ,IAChC,MAAM,QACFkJ,EAAO,aACP8Q,EAAY,uBACZ9V,EAAsB,SACtB+V,EAAQ,eACRC,EAAc,cACdJ,EAAa,mBACbC,EAAkB,sBAClB/E,EAAqB,kBACrBL,EAAiB,SACjBlC,EAAQ,SACRqC,EAAQ,YACR4E,EAAW,QACXC,EAAO,wBACPrE,EAAuB,4BACvBS,EAA2B,oBAC3B6D,EAAmB,OACnBxV,EAAM,SACNE,EAAQ,UACRnB,GACAnD,GAEE,+BAAE60B,EAA8B,8BAAEC,GAAkC90B,EAAMmD,UAE1EmhB,EAAkE,GAExE,IAAK,MAAMvP,KAAQ+E,EACfwK,EAAyBpf,KAAK,CAC1BuI,WAAW,EACXiC,SAAUqF,EAAKrF,WA+DvB,MAAO,CACHqU,oBAAqB,CAAEvX,UAAW,sBAClCwX,wBACIlkB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,iDACXQ,KAAM7J,EAAU4xB,sBAChBpnB,UAAWxK,EAAU6xB,2BACrBjN,QAASnO,EACT/V,iBAAkB7D,EAAM6D,oBAIpCogB,qBACInkB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,6CACXQ,KAAM7J,EAAU8xB,yBAChBtnB,UAAWxK,EAAU+xB,8BACrBnN,QAASpO,EACT9V,iBAAkB7D,EAAM6D,iBACxBikB,SAAU9S,EAAsBmgB,OAAMpgB,IAASA,EAAKtH,eAIhEyW,gBACIpkB,EAAAA,cAAA,UACI0M,UAAW,uCACXY,MAAOjK,EAAUiyB,kCAAiC,aACtCjyB,EAAUkyB,uCACtBvnB,SAAUwnB,GAAKvf,EAA4Buf,GAC3CC,aAAc,GACdzN,SAAU9S,EAAsBmgB,OAAMpgB,IAASA,EAAKtH,aAEpD3N,EAAAA,cAAA,UAAQyC,MAAM,GAAE,aAAaY,EAAUqyB,2BAA4B1N,UAAQ,EAAC2N,QAAM,GAC7EtyB,EAAUiyB,mCAEdzgB,aAAiB,EAAjBA,EAAmBnB,KAAI,CAAC7S,EAAkBqV,IACvClW,EAAAA,cAAA,UAAQ6T,IAAKqC,EAAOzT,MAAO5B,EAAQ6U,SAAQ,aAAc7U,EAAQa,aAC5Db,EAAQa,gBAKzB2iB,cAAe,CACX3X,UAAW,2BACXukB,IAAK,QACLhd,KAAM,QAEVsQ,iBAAkB,CACd7X,UAAW,+BACXukB,IAAK,MAET3M,qBAhHJ,WACI,MAAMsR,EAAmD,CACrDC,kBAAmBxyB,EAAUyyB,yBAC7BhR,cAAezhB,EAAU0yB,yBACzBC,YAAa3yB,EAAU4yB,mBACvBC,iBAAkB7yB,EAAU8yB,4BAC5BlR,gBAAiB5hB,EAAU+yB,2BAC3BlR,eAAgB7hB,EAAUgzB,0BAC1BC,aAAe3oB,IACXiM,EAAYjM,EAAU,EAE1B4oB,cAAerhB,GAAyBA,EAAsBmgB,OAAMpgB,GAAQA,EAAKtH,YACjFgF,SAAUA,EACVwR,qBACInkB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,6CACXQ,KAAM7J,EAAU8xB,yBAChBtnB,UAAWxK,EAAU+xB,8BACrBnN,QAASpO,EACT9V,iBAAkB7D,EAAM6D,iBACxBikB,SAAU9S,EAAsBmgB,OAAMpgB,IAASA,EAAKtH,gBAMpE,OAAO3N,EAAAA,cAACw2B,EAAAA,EAAiCxpB,OAAAC,OAAA,GAAK2oB,GAClD,CAoF0Ba,GACtBjS,yBAlFOxK,EAActG,KAAI,CAACuB,EAAMiB,KAAS,IAAAuC,EAAAie,EACrC,MAAMC,EAAoD,CACtDhS,0BAA2B,CACvBhX,UAAYuH,GAAyBA,EAAsBgB,IAAUhB,EAAsBgB,GAAOvI,YAAc,EAChHiC,SAAUqF,EAAKrF,UAEnBgnB,kBAAmB3c,EAAmB/D,GACtCS,QAAS1B,EAAK0B,QAAU1B,EAAK0B,aAAU1U,EACvC40B,MAAmB,QAAdpe,EAAExD,EAAK0B,eAAO,IAAA8B,OAAA,EAAZA,EAAcqe,MACrB1tB,UACAwK,SAAuB,QAAf8iB,EAAEzhB,EAAKrF,gBAAQ,IAAA8mB,OAAA,EAAbA,EAAend,SACzBY,SAAUA,EACVC,eAAgBA,EAChBF,aAAcA,EACdrF,kBAAmBA,EACnBlC,SAAUA,EACVqC,SAAUA,EACVQ,wBAAyBA,EACzBnS,UAAW,CACP0xB,iCACAC,kCAIR,OAAO+B,EAAAA,EAAAA,wWAA6BnuB,CAAC,CAAC,EAAI+tB,GAAoB,IA2DlE1T,kBAAmB7e,EACnB8e,WACIljB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,2CACXQ,KAAM7J,EAAU2zB,wBAChBnpB,UAAWxK,EAAU0kB,2BACrBE,QAAS3jB,EACTP,iBAAkB7D,EAAM6D,oBAIpCof,oBAAqB/e,EACrBgf,aACIpjB,EAAAA,cAAC6nB,EAAAA,EAAsB7a,OAAAC,OAAA,GACf,CACAP,UAAW,oCACXQ,KAAM7J,EAAU6kB,wBAChBra,UAAWxK,EAAU8kB,6BACrBF,QAASzjB,EACTT,iBAAkB7D,EAAM6D,oBAIpC4O,SAAUA,EACb,mDCvME,MAAM6jB,UAA0Cx2B,EAAAA,cAAvDC,cAAA,oBACW,KAAAyG,MAAiD,CACpDiH,WAAW,GAGE,KAAAspB,mBAA6B,WAEvC,KAAAC,YAAc,IAAOrxB,IACxBlF,KAAKwI,SACD,CACIwE,WAAYhN,KAAK+F,MAAMiH,YAE3B,KACIhN,KAAKT,MAAMo2B,aAAa31B,KAAK+F,MAAMiH,UAAU,GAEpD,CAiET,CA9DWrB,SACH,OAAK3L,KAAKT,MAAMyS,SAmCR3S,EAAAA,cAAA,aACIA,EAAAA,cAAA,MAAI0M,UAAW,GAAG/L,KAAKs2B,mCACnBj3B,EAAAA,cAAA,MAAIm3B,MAAM,MAAMhS,MAAO,CAAEiS,SAAU,QAAShS,SAAU,YAAY,aAAczkB,KAAKT,MAAM21B,mBACvF71B,EAAAA,cAAA,SAAO0M,UAAU,qBAAqByY,MAAO,CAAEkS,YAAa,SACxDr3B,EAAAA,cAAA,sBACgBW,KAAKT,MAAM21B,kBACvBnpB,UAAU,iBACVkB,KAAK,WAAU,eACDjN,KAAKT,MAAMq2B,cACzBzuB,QAASnH,KAAKT,MAAMq2B,cACpBvoB,SAAUrN,KAAKu2B,gBAEnBl3B,EAAAA,cAAA,QAAM0M,UAAU,YAAYyY,MAAO,CAAEmS,OAAQ,yBAA2B,cAK5Et3B,EAAAA,cAAA,OAAKmlB,MAAO,CAAEC,SAAU,WAAYC,IAAK,MAAOkS,KAAM,MAAOC,UAAW,0BACnE72B,KAAKT,MAAMikB,yBAnD5BnkB,EAAAA,cAAA,aACIA,EAAAA,cAAA,MAAI0M,UAAW,GAAG/L,KAAKs2B,mCACnBj3B,EAAAA,cAAA,MAAIm3B,MAAM,MAAK,aAAax2B,KAAKT,MAAM21B,mBACnC71B,EAAAA,cAAA,SAAO0M,UAAU,sBACb1M,EAAAA,cAAA,sBACgBW,KAAKT,MAAM21B,kBACvBnpB,UAAU,iBACVkB,KAAK,WAAU,eACDjN,KAAKT,MAAMq2B,cACzBzuB,QAASnH,KAAKT,MAAMq2B,cACpBvoB,SAAUrN,KAAKu2B,gBAEnBl3B,EAAAA,cAAA,QAAM0M,UAAU,gBAGxB1M,EAAAA,cAAA,MAAIm3B,MAAM,OAAOx2B,KAAKT,MAAM4kB,eAC3B9kB,EAAAA,cAAA,MAAIm3B,MAAM,OAAOx2B,KAAKT,MAAM81B,aAEzBh2B,EAAAA,cAAA,MAAIm3B,MAAM,MAAMhS,MAAO,CAAEQ,UAAW,UAC/BhlB,KAAKT,MAAMg2B,kBAIhBl2B,EAAAA,cAAA,MAAIm3B,MAAM,MAAMhS,MAAO,CAAEQ,UAAW,WAC/BhlB,KAAKT,MAAM+kB,iBAGnBjlB,EAAAA,cAAA,MAAIm3B,MAAM,OAAOx2B,KAAKT,MAAMglB,iBA+BjD,yECrDJ,MAAMuS,EAAsBA,CAAC9S,EAAgEpB,IACzF1d,IAEA8e,EAA0BhX,WAAagX,EAA0BhX,UAEjE4V,EAAMvO,SAAS2P,EAA2B9e,EAAMC,OAAOgC,QAAQ,EAGtDivB,EAAiCxT,IAC1C,MAAM,kBAAE1O,EAAiB,0BAAE8P,EAAyB,kBAAEiS,EAAiB,QAAEjgB,EAAO,QAAEvN,EAAO,wBAAEoM,GAA4B+N,EAIvH,GAFAhO,QAAQmiB,IAAI,4CAEP/gB,EACD,OAAO,KAGX,MAAM,OAAEwC,GAAWxC,GACb,SAAE4C,EAAQ,gBAAEzD,GAAoB6O,EAA0B/U,SAEhE,MAAO,CACHgV,WACI5kB,IAAAA,cAAA,SAAO0M,UAAU,sBACb1M,IAAAA,cAAA,SACI0M,UAAU,iBACVkB,KAAK,WACL9F,QAAS6c,EAA0BhX,UAAS,eAC9BgX,EAA0BhX,UACxCK,SAAUypB,EAAoB9S,EAA2BpB,KAE7DvjB,IAAAA,cAAA,QAAM0M,UAAU,eAGxBmY,aAAc8S,EACV,GACAvuB,EACAuN,EAAQzH,KACR0nB,EAAkB5iB,WAAWiF,YAC7B2d,EAAkB5iB,WAAW+E,KAEjCgM,YAAa6S,EAAkBrU,GAC/ByB,aAAc6S,EAAmBtU,GACjCuB,cAAenO,GACX3W,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,WAAMmZ,GACW,SAAhBoK,EAAM9a,MAAmBzI,IAAAA,cAAA,WAAM83B,EAAmBvU,SAAgBthB,GAG3EgjB,gBAAiB1L,EACjB2L,eACIllB,IAAAA,cAAA,UACI0M,UAAW,+CACXsB,SAAUwnB,GAAKhgB,EAAwBmP,EAA0B/U,SAAU4lB,GAC3E/yB,MAAOqT,aAAe,EAAfA,EAAiBJ,UAEvBb,aAAiB,EAAjBA,EAAmBnB,KAAI,CAAC7S,EAAkBqV,IACvClW,IAAAA,cAAA,UACI6T,IAAKqC,EACLzT,MAAO5B,EAAQ6U,SAAQ,aACX7U,EAAQa,YACpBgL,UAAW,4CAEV7L,EAAQa,gBAK5B,EAGCi2B,EAAqBA,CACvBjrB,EACAtD,EACA0D,EACAirB,EACAC,KACoB,IAAAC,EAAAC,EAUpB,OACIl4B,IAAAA,cAAC+T,EAAAA,GAAK,CACF7J,eAAgBd,SAAsB,QAAf6uB,EAAP7uB,EAASa,qBAAa,IAAAguB,OAAA,EAAtBA,EAAwB/tB,eACxCwC,UAAWA,EACXyH,QAASrH,EACTQ,MAAOR,EACPiM,IAAKgf,EACL9e,YAAa+e,EACbjlB,aAAc3J,SAAgB,QAAT8uB,EAAP9uB,EAASM,eAAO,IAAAwuB,OAAA,EAAhBA,EAAkBnlB,aAChCuF,cAlBqC,CACzChE,UAAW,CACPtB,GAAI,CAAEuB,EAAG,gBAAiBtB,EAAG,EAAGuB,EAAG,GACnCpB,GAAI,CAAEmB,EAAG,gBAAiBtB,EAAG,EAAGuB,EAAG,GACnCnB,GAAI,CAAEkB,EAAG,gBAAiBtB,EAAG,EAAGuB,EAAG,IAEvCC,UAAU,GAaN6E,oBAAoB,QACpB6e,SAAU,GACZ,EAiBJP,EAAqB13B,IACvB,MAAM,QAAEyW,GAAYzW,EACdgC,EAAOyU,aAAO,EAAPA,EAASzH,KAChBkpB,EAhBuBl4B,KAC7B,MAAM,QAAEyW,GAAYzW,EACpB,OAAKyW,GAAYA,EAAQ0hB,WAGlB1hB,EAAQ0hB,WAAW3kB,KAAI4kB,IAC1B,GAAKA,EAAUC,gBAAmBD,EAAUC,eAAelW,MAG3D,OAAOiW,EAAUC,eAAelW,KAAK,IAN9B,EAOT,EAMiBmW,CAAwBt4B,GAC3C,IAAKyW,EACD,MAAO,GAEX,MAAMqf,EAAch2B,IAAAA,cAAA,WAAMkC,GACpBu2B,EAAyBL,EAAWM,KAAK,MAC/C,OACI14B,IAAAA,cAAA,WACIA,IAAAA,cAAA,WAAMg2B,GACNh2B,IAAAA,cAAA,WAAMy4B,GACJ,EAIRZ,EAAsB33B,IACxB,MAAM,QAAEyW,GAAYzW,EAEpB,OAAKyW,SAAAA,EAASmgB,MAKV92B,IAAAA,cAAA,YACIA,IAAAA,cAAC24B,EAAAA,eAAc,CACX/1B,KAAM,CACFi0B,MAAO,CACH+B,wBAAyBjiB,EAAQmgB,QAGzC1tB,QAASlJ,EAAMkJ,QACfgL,GAAIlU,EAAMia,SACVE,SAAUna,EAAMka,eAChBF,aAAcha,EAAMga,gBAdrB,IAgBA,EAIT4d,EAAsB53B,IACxB,MAAM,MAAEuI,EAAK,UAAEpF,GAAcnD,EAE7B,IAAKuI,EACD,MAAO,GASX,MANsB,CAClBowB,IAAKx1B,EAAU2xB,8BACf8D,WAAYz1B,EAAU0xB,+BACtBgE,KAAM,IAGWtwB,EAAM","sources":["webpack://lds-commerce/./src/modules/checkout-billing-address/checkout-billing-address.tsx?2aa0","webpack://lds-commerce/./src/modules/checkout-shipping-address/components/checkout-shipping-cartlines-images.tsx?c635","webpack://lds-commerce/./src/modules/checkout-shipping-address/checkout-shipping-address.tsx?de3a","webpack://lds-commerce/./src/modules/checkout-billing-address/checkout-billing-address.view.tsx?b194","webpack://lds-commerce/./src/modules/checkout-shipping-address/checkout-shipping-address.view.tsx?3386","webpack://lds-commerce/./src/common/address-format.data.ts?6cbf","webpack://lds-commerce/./src/common/components/address-checkbox.tsx?eb1a","webpack://lds-commerce/./src/common/components/address-add.tsx?e6a6","webpack://lds-commerce/./src/common/components/address-button.tsx?7f7b","webpack://lds-commerce/./src/common/components/address-show.tsx?3f60","webpack://lds-commerce/./src/common/address-common.ts?cf4b","webpack://lds-commerce/./src/common/address-format.ts?4f04","webpack://lds-commerce/./src/common/address-meta-data.ts?c6e6","webpack://lds-commerce/./src/common/address-module.data.ts?697a","webpack://lds-commerce/./src/common/components/address-error-message.tsx?89ad","webpack://lds-commerce/./src/common/components/address-error-title.tsx?3926","webpack://lds-commerce/./src/common/components/address-input.tsx?8073","webpack://lds-commerce/./src/common/components/address-list.tsx?a628","webpack://lds-commerce/./src/common/address-autosuggest.ts?f5a2","webpack://lds-commerce/./src/common/components/address-alert.tsx?10d1","webpack://lds-commerce/./src/common/components/address-dropdown.tsx?f24b","webpack://lds-commerce/./src/common/components/address-label.tsx?6864","webpack://lds-commerce/./src/common/components/address-detail-item.tsx?5209","webpack://lds-commerce/./src/checkout-errors/checkout-errors.ts?a9e0","webpack://lds-commerce/./src/common/components/address-error-alert.tsx?bcde","webpack://lds-commerce/./src/common/components/address-select.tsx?c1df","webpack://lds-commerce/./src/common/components/address-billing-checkbox.tsx?4008","webpack://lds-commerce/./src/common/components/address-billing-heading.tsx?7bbd","webpack://lds-commerce/./src/common/components/address-ship-multiple.tsx?136d","webpack://lds-commerce/./src/common/components/address-ship-multiple-heading.tsx?5d65","webpack://lds-commerce/./src/common/components/address-ship-multiple-lines.tsx?ce68"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { CheckoutModule, ErrorLocation, IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleStateProps, withModuleState, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { action, computed, observable, reaction, set } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AutoSuggest } from '../../common/address-autosuggest';\nimport { IAutoSuggestOptions } from '../../common/address-autosuggest.data';\nimport { AddressCommon } from '../../common/address-common';\nimport { AddressFormat } from '../../common/address-format';\nimport { AddressItemType } from '../../common/address-format.data';\nimport { AddressMetaData } from '../../common/address-meta-data';\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { AddressBillingCheckbox } from '../../common/components/address-billing-checkbox';\nimport { AddressBillingHeading } from '../../common/components/address-billing-heading';\nimport { AddressShow, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutBillingAddressData } from './checkout-billing-address.data';\nimport { ICheckoutBillingAddressProps } from './checkout-billing-address.props.autogenerated';\nimport { ErrorComponent } from '../../common';\nimport { focusOnCheckoutError } from '../../checkout-errors/checkout-errors';\n\n/**\n * Props interface.\n */\nexport interface IProps extends ICheckoutBillingAddressProps, IModuleStateProps {}\n\n/**\n * Checkout billing address view state interface.\n */\nexport interface ICheckoutBillingAddressViewState {\n isShowAddress: boolean;\n isShowAddOrUpdateAddress: boolean;\n isShowSameAsShippingCheckbox: boolean;\n errorMessage?: string;\n}\n\n/**\n * Checkout billing address view props interface.\n */\nexport interface ICheckoutBillingAddressViewProps extends IProps {\n className: string;\n currentOperation: AddressOperation;\n selectedAddress?: Address;\n addUpdateAddress: Address;\n countryRegionId: string;\n stateProvinceInfo?: StateProvinceInfo[];\n validationError: object;\n addressActionResponse?: IAddressResponse;\n viewState: ICheckoutBillingAddressViewState;\n CheckoutBillingAddress: IModuleProps;\n sameAsShippingCheckbox: React.ReactNode;\n heading: React.ReactNode;\n showAddress: IAddressShowProps;\n showAddOrUpdateAddress: IAddressAddUpdateProps;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n}\n\n/**\n *\n * CheckoutBillingAddress component.\n * @extends {React.PureComponent>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass CheckoutBillingAddress extends React.Component {\n @observable private currentOperation: AddressOperation;\n\n @observable private isBillingAddressSameAsShipping: boolean;\n\n @observable private selectedAddress?: Address;\n\n @observable private addUpdateAddress: Address;\n\n @observable private countryRegionId: string = 'USA';\n\n @observable private stateProvinceInfo?: StateProvinceInfo[];\n\n @observable private validationError: object;\n\n @observable private readonly addressActionResponse?: IAddressResponse;\n\n private readonly addressCommon: AddressCommon;\n\n private addressFormat: AddressFormat;\n\n private countryRegions: CountryRegionInfo[] = [];\n\n private addressPurposes: AddressPurpose[] = [];\n\n private readonly resources: IAddressResource;\n\n private readonly defaultAddressType: number = 6; // Default to Home\n\n // private addRenderRef: React.RefObject;\n private readonly telemetryContent?: ITelemetryContent;\n\n private autoSuggest?: AutoSuggest;\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n public constructor(props: IProps) {\n super(props);\n const { context, data, resources, telemetry } = this.props;\n\n this.addUpdateAddress = {};\n this.validationError = {};\n this.isBillingAddressSameAsShipping = false;\n this.resources = resources;\n this.currentOperation = AddressOperation.List;\n this.addressPurposes = data.addressPurposes.result || [];\n this.countryRegions = data.countryRegions.result || [];\n this.stateProvinceInfo = data.countryStates.result || [];\n this.addressCommon = new AddressCommon(context, resources, telemetry);\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\n this.addressPurposes\n );\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = {\n isShowAddress: false,\n isShowAddOrUpdateAddress: false,\n isShowSameAsShippingCheckbox: false,\n errorMessage: ''\n };\n\n // This.addRenderRef = React.createRef();\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n },\n config: { autoSuggestionEnabled, autoSuggestOptions }\n } = this.props;\n\n // Initializing data props\n this._dataInitialize(this.props);\n\n this.props.data.checkout.then(() => {\n this._setDefaultCountryRegionId();\n this._initModuleState();\n });\n\n reaction(\n () => this.countryRegionId,\n () => {\n this._getStateProvinces();\n }\n );\n\n reaction(\n () => this.currentOperation,\n () => {\n this._getStateProvinces();\n }\n );\n\n reaction(\n () => this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress,\n shippingAddress => {\n if (this.props.moduleState.isUpdating) {\n if (shippingAddress && this.isBillingAddressSameAsShipping) {\n this.isBillingAddressSameAsShipping = true;\n this._updateCurrentOperation(AddressOperation.Show, shippingAddress);\n } else if (shippingAddress && this.isBillingAddressSameAsShipping) {\n this._updateCurrentOperation(AddressOperation.Show, shippingAddress);\n }\n }\n }\n );\n\n reaction(\n () => this.isBillingAddressRequried,\n isBillingAddressRequried => {\n if (isBillingAddressRequried) {\n if (this.props.moduleState.isDisabled) {\n this.onEdit();\n }\n } else {\n this.props.data.checkout.result?.removeBillingAddress({});\n this.props.moduleState.onDisable();\n }\n }\n );\n\n if (autoSuggestionEnabled) {\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\n this.autoSuggest = new AutoSuggest(\n telemetry,\n options,\n channel?.BingMapsApiKey,\n channel?.ChannelCountryRegionISOCode,\n channel?.DefaultLanguageId\n );\n\n // Customer doesn't have any address. Then add view will be loaded directly. Code for the same to handle that\n if (\n this.props.data.storeSelectorStateManager.result &&\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\n ) {\n await this.autoSuggest._loadMapAPI(await this.props.data.storeSelectorStateManager);\n }\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager.result?.loadMapApi &&\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\n async () => {\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\n async () => {\n await this._attachMapAutoSuggest();\n }\n );\n }\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (\n checkoutError &&\n checkoutError.errorLocation === ErrorLocation.CheckoutBillingAddress &&\n checkoutError.errorMessage\n ) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutBillingAddress) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public async componentDidUpdate(): Promise {\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n await this._attachMapAutoSuggest();\n }\n } else {\n this.autoSuggest?.disposeAutoSuggest();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: ICheckoutBillingAddressProps,\n nextState: ICheckoutBillingAddressViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n if (!this.isBillingAddressRequried || this._shouldHideBillingAddressForOBO) {\n return null;\n }\n\n const {\n resources,\n moduleState: { hasError }\n } = this.props;\n\n const { renderView, config } = this.props;\n\n const errorMessage = this.state.errorMessage;\n\n const viewProps = {\n ...this.props,\n currentOperation: this.currentOperation,\n selectedAddress: this.selectedAddress,\n addUpdateAddress: this.addUpdateAddress,\n countryRegionId: this.countryRegionId,\n stateProvinceInfo: this.stateProvinceInfo,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n className: config.className,\n viewState: {\n isShowAddress: this.selectedAddress && this.currentOperation === AddressOperation.Show,\n isShowAddOrUpdateAddress: this.currentOperation !== AddressOperation.Show,\n isShowSameAsShippingCheckbox: this.isCartContainsItemsForShipping && this.props.moduleState.isUpdating\n },\n CheckoutBillingAddress: {\n moduleProps: this.props,\n className: classnames('ms-checkout-billing-address', config.className)\n },\n heading: ,\n alert: hasError && errorMessage && ,\n checkoutErrorRef: this.checkoutErrorRef,\n\n sameAsShippingCheckbox: (\n \n ),\n showAddress: this._renderShowAddress(),\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * On suggestion selected.\n * @param result - The suggestion result.\n */\n @action\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\n this._clearAddressFields();\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\n set(this.addUpdateAddress, { Street: '' });\n set(this.addUpdateAddress, { ZipCode: address.ZipCode });\n set(this.addUpdateAddress, { CountyName: address.CountyName });\n set(this.addUpdateAddress, { City: address.City });\n set(this.addUpdateAddress, { State: address.State });\n set(this.addUpdateAddress, { DistrictName: address.DistrictName });\n set(this.addUpdateAddress, { FullAddress: address.FullAddress });\n\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\n setTimeout(() => {\n set(this.addUpdateAddress, { Street: address.Street });\n }, 0);\n };\n\n /**\n * Clear address fields.\n */\n @action\n private readonly _clearAddressFields = (): void => {\n const addressFormatItem = this.addressFormat.getAddressFormat(\n this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\n );\n addressFormatItem.forEach(format => {\n if (this.addUpdateAddress[format.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(format.name)) {\n this.addressFormat[format.name] = '';\n }\n });\n this._clearValidation();\n };\n\n /**\n * Clear validation.\n */\n @action\n private readonly _clearValidation = (): void => {\n this.validationError = {};\n };\n\n /**\n * On address update.\n * @param name - Name.\n * @param value - Value.\n */\n private readonly onAddressAddUpdate = (name: string, value: string) => {\n set(this.addUpdateAddress, { [name]: value });\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\n };\n\n /**\n * Method data initialization.\n * @param props -The checkout address properties.\n */\n private readonly _dataInitialize = (props: IProps): void => {\n const { data } = props;\n\n reaction(\n () => data.countryRegions.result,\n () => {\n this.countryRegions = data.countryRegions.result ?? [];\n }\n );\n\n reaction(\n () => data.addressPurposes.result,\n () => {\n this.addressPurposes = data.addressPurposes.result ?? [];\n }\n );\n\n reaction(\n () => data.countryStates.result,\n () => {\n this.stateProvinceInfo = data.countryStates.result ?? [];\n }\n );\n };\n\n /**\n * Render add or update address function.\n * @returns - Address add update props.\n */\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\n return AddressAddUpdate({\n resources: this.resources,\n addressType: AddressType.Billing,\n addressFormat: this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName ?? this.countryRegionId),\n defaultCountryRegionId: this.countryRegionId,\n defaultAddressType: this.defaultAddressType,\n selectedAddress: this.addUpdateAddress,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\n this.resources.addressStateDefaultSelectionText,\n this.stateProvinceInfo\n ),\n telemetryContent: this.telemetryContent,\n onInputChange: this._onAddressAddUpdateInputChange,\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\n onSave: this._onSubmitAddress,\n onCancel: this._resetView\n });\n };\n\n private _renderShowAddress(): IAddressShowProps | null {\n if (this.selectedAddress) {\n return AddressShow({\n address: this.selectedAddress,\n addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName ?? ''),\n addressPurposes: this.addressPurposes\n });\n }\n\n return null;\n }\n\n /**\n * On country region change function.\n * @param countryRegionId - Country region Id.\n */\n private readonly _onCountryChange = (countryRegionId: string) => {\n this.countryRegionId = countryRegionId;\n const twoLetterIsoRegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\n set(this.addUpdateAddress, { ThreeLetterISORegionName: countryRegionId });\n set(this.addUpdateAddress, { TwoLetterISORegionName: twoLetterIsoRegionName });\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterIsoRegionName);\n this._clearAddressFields();\n };\n\n /**\n * Gets address format for exclude list.\n * @returns - Address item type.\n */\n private readonly _getAddressFormatExcludeList = (): AddressItemType[] => {\n const { config } = this.props;\n const addressFormatExcludeList: AddressItemType[] = [];\n\n if (!config.showAddressType) {\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\n }\n\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\n\n return addressFormatExcludeList;\n };\n\n /**\n * Attach map auto suggest.\n */\n private readonly _attachMapAutoSuggest = async (): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.autoSuggest?.attachAutoSuggest('#billing_addressstreet', '#billing_addressstreet_container', this._onSuggestionSelected);\n }\n };\n\n /**\n * On address add update input change.\n * @param event - The event.\n */\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\n this.onAddressAddUpdate(event.target.name, value);\n };\n\n /**\n * On address add update dropdown change.\n * @param event - The event.\n */\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\n this.onAddressAddUpdate(event.target.name, event.target.value);\n\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\n this._onCountryChange(event.target.value);\n }\n };\n\n /**\n * Gets state provinces.\n */\n private readonly _getStateProvinces = (): void => {\n if (\n !this.countryRegionId ||\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\n ) {\n return;\n }\n\n this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\n\n // Reset state if selected state not found in the list.\n if (!stateInfo) {\n set(this.addUpdateAddress, { State: '' });\n }\n this.stateProvinceInfo = result;\n });\n };\n\n /**\n * Initialize module state.\n */\n private readonly _initModuleState = (): void => {\n this.props.moduleState.init({\n status: this.isBillingAddressRequried ? 'updating' : 'disabled',\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit\n });\n\n const { billingAddress, isBillingAddressSameAsShippingAddress } = this.props.data.checkout.result ?? {};\n\n if (this.isBillingAddressRequried) {\n if (billingAddress) {\n this.isBillingAddressSameAsShipping = isBillingAddressSameAsShippingAddress ?? false;\n this._updateCurrentOperation(AddressOperation.Show, billingAddress);\n this._updateModuleState();\n } else if (this.isCartContainsItemsForShipping) {\n this.isBillingAddressSameAsShipping = true;\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\n } else {\n this.isBillingAddressSameAsShipping = false;\n this._updateCurrentOperation(AddressOperation.Add);\n }\n }\n };\n\n /**\n * Sets default country region Id.\n */\n private _setDefaultCountryRegionId(): void {\n const { request } = this.props.context;\n const market = request.channel?.ChannelCountryRegionISOCode;\n\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\n }\n\n /**\n * On change - Billing address same as shipping.\n * @param event - The event.\n */\n private readonly _onBillingAddressSameAsShippingChange = (event: React.ChangeEvent) => {\n this.isBillingAddressSameAsShipping = event.currentTarget.checked;\n\n if (this.isBillingAddressSameAsShipping && this.shippingAddress) {\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\n } else {\n this._updateCurrentOperation(AddressOperation.Add, this.billingAddress);\n }\n };\n\n @computed private get isCartContainsItemsForShipping(): boolean {\n const { request } = this.props.context;\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const { channelDeliveryOptionConfig, featureState } = this.props.data;\n const retailMultiplePickUpOptionEnabled = featureState.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\n ?.IsEnabled;\n\n const pickupDeliveryModeCode = request.channel?.PickupDeliveryModeCode;\n const emailDeliveryModeCode = request.channel?.EmailDeliveryModeCode;\n\n // If hasInvoiceLine is true, there are only invoices no items in cart and return false here\n return this.props.data.checkout.result?.checkoutCart.hasInvoiceLine\n ? false\n : retailMultiplePickUpOptionEnabled\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(cartLine =>\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\n ? cartLine.DeliveryMode !==\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\n deliveryMode => deliveryMode === cartLine.DeliveryMode\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\n : cartLine\n )\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(cartLine =>\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\n : cartLine\n );\n }\n\n @computed private get billingAddress(): Address | undefined {\n return this.props.data.checkout.result?.billingAddress;\n }\n\n @computed private get shippingAddress(): Address | undefined {\n return this.props.data.checkout.result?.shippingAddress;\n }\n\n @computed private get getLoyaltyAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n return checkoutState?.loyaltyAmount ? checkoutState.loyaltyAmount : 0;\n }\n\n @computed private get getGiftCardTotalAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n if (!checkoutState || !checkoutState.giftCardExtends) {\n return 0;\n }\n return checkoutState.giftCardExtends.reduce((count: number, giftCard: IGiftCardExtend) => {\n return count + (giftCard.Balance || 0);\n }, 0);\n }\n\n @computed private get getCustomerAccountAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n const defaultAmount = 0;\n\n return checkoutState?.customerAccountAmount ?? defaultAmount;\n }\n\n @computed private get shouldPaidByCard(): boolean {\n const {\n data: { checkout },\n config\n } = this.props;\n if (!checkout.result) {\n return false;\n }\n\n const checkoutResult = checkout.result;\n const cart = checkoutResult.checkoutCart.cart;\n if (!cart || !cart.CartLines || cart.CartLines.length === 0) {\n return false;\n }\n\n const { paymentTenderType, tokenizedPaymentCard } = checkoutResult;\n const isPaidByOtherPaymentSource = config.paymenTenderType !== paymentTenderType && tokenizedPaymentCard;\n\n // Use payment card when it is not free or gift card balance + Loyalty amount can not cover the total amount\n const amountDue = (cart.TotalAmount || 0) - this.getGiftCardTotalAmount - this.getLoyaltyAmount - this.getCustomerAccountAmount;\n\n return amountDue > 0 && !isPaidByOtherPaymentSource;\n }\n\n @computed private get isBillingAddressRequried(): boolean {\n return (\n this.shouldPaidByCard &&\n (!this.props.data.checkout?.result?.isPaymentVerificationRedirection ||\n !!this.props.data.checkout?.result?.isCheckoutCallFailed)\n );\n }\n\n @computed private get _shouldHideBillingAddressForOBO(): boolean {\n return Msdyn365.isOboRequest(this.props.context.request) && EnabledPaymentsForOBO.PaymentInstrument === 0;\n }\n\n /**\n * On submit address.\n */\n private readonly _onSubmitAddress = (): void => {\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\n this.props.moduleState.setHasError(true);\n\n if (\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout &&\n this.props.data.checkout.result?.isPaymentSectionContainerHasError\n ) {\n this.props.data.checkout.result.updateIsBillingAddressHasError({ newIsBillingAddressHasError: true });\n }\n\n return;\n }\n\n this._setBillingAddress(this.addUpdateAddress);\n this._updateCurrentOperation(AddressOperation.Show, this.addUpdateAddress);\n this._updateModuleState();\n };\n\n /**\n * On submit.\n */\n private readonly onSubmit = (): void => {\n switch (this.currentOperation) {\n case AddressOperation.Add:\n case AddressOperation.Update:\n this.props.telemetry.information('Billing address submit for Add or Update operation.');\n this._onSubmitAddress();\n break;\n case AddressOperation.Show:\n this.props.telemetry.information('Billing address submit for Show operation.');\n if (this.selectedAddress) {\n this._setBillingAddress(this.selectedAddress);\n this._updateCurrentOperation(AddressOperation.Show, this.selectedAddress);\n this._updateModuleState();\n }\n break;\n default:\n this.props.telemetry.error('Invalid operation');\n }\n };\n\n /**\n * On cancel.\n */\n private readonly onCancel = (): void => {\n switch (this.currentOperation) {\n case AddressOperation.Add:\n case AddressOperation.Update:\n this.props.telemetry.information('Billing address cancel for Add or Update operation.');\n this._resetView();\n this._clearAddressFields();\n break;\n case AddressOperation.Show:\n this.props.telemetry.information('Billing address cancel for Show operation.');\n this._resetView();\n break;\n default:\n this.props.telemetry.error('Invalid operation');\n }\n };\n\n /**\n * On edit.\n */\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Billing address onEdit is called.');\n\n if (this.isBillingAddressSameAsShipping && this.shippingAddress && this.isCartContainsItemsForShipping) {\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\n } else {\n this._updateCurrentOperation(AddressOperation.Add, this.billingAddress);\n }\n this.props.moduleState.onUpdating();\n };\n\n /**\n * Sets billing address.\n * @param address - The address.\n */\n private readonly _setBillingAddress = (address: Address): void => {\n if (this.props.data.checkout.result) {\n const newBillingAddress = { ...address };\n\n if (address.ThreeLetterISORegionName && !newBillingAddress.TwoLetterISORegionName) {\n newBillingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\n }\n\n this.props.data.checkout.result.updateBillingAddress({\n newBillingAddress,\n additionalProperties: {\n isBillingAddressSameAsShippingAddress: this.isBillingAddressSameAsShipping\n }\n });\n }\n };\n\n /**\n * Reset view.\n */\n private readonly _resetView = () => {\n this._updateCurrentOperation(AddressOperation.Show, this.billingAddress);\n this._updateModuleState();\n };\n\n /**\n * Update current operation.\n * @param operation - Address operation\n * @param selectedAddress - The selected address.\n */\n private readonly _updateCurrentOperation = (operation: AddressOperation, selectedAddress?: Address) => {\n this.currentOperation = operation;\n this.selectedAddress = selectedAddress;\n\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\n this.addUpdateAddress = { ...this.selectedAddress } || {};\n set(this.addUpdateAddress, {\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\n });\n set(this.addUpdateAddress, { AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType });\n }\n };\n\n /**\n * Updates the module state.\n */\n private readonly _updateModuleState = () => {\n if (this.currentOperation === AddressOperation.Show) {\n this.props.moduleState.onReady();\n } else {\n this.props.moduleState.onUpdating();\n }\n };\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n errorMessage\n });\n };\n}\n\nexport default CheckoutBillingAddress;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageProps, IImageSettings, Image, IRequestContext } from '@msdyn365-commerce/core';\nimport { CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { format, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ICheckoutShippingAddressResources } from '../checkout-shipping-address.props.autogenerated';\n\n/**\n * The cartline product interface.\n */\nexport interface ICartLineWithProduct {\n cartLine: CartLine;\n product?: SimpleProduct;\n}\n\n/**\n * The checkout shipping cartline interface.\n */\nexport interface ICheckoutShippingCartLineInfo {\n lineId: string;\n imageProps: IImageProps;\n quantity: number;\n shippingAddressId?: number;\n}\n\n/**\n * The checkout shipping cartline props.\n */\nexport interface ICheckoutShippingCartLinesProps {\n moduleClassName: string;\n cartLines: ICheckoutShippingCartLineInfo[];\n title: string;\n itemTitle: string;\n resources: ICheckoutShippingAddressResources;\n isMultipleAddressShippingEnabled?: boolean;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Following as per module\nexport const CheckoutPickupCartLines: React.FC = ({\n moduleClassName,\n cartLines,\n title,\n itemTitle,\n resources,\n isMultipleAddressShippingEnabled = false\n}) => {\n const context = ({\n gridSettings: {\n xs: { w: 767 },\n sm: { w: 991 },\n md: { w: 1199 },\n lg: { w: 1599 },\n xl: { w: 1600 }\n }\n } as unknown) as IRequestContext;\n const isMobileCheck = isMobile({ variant: VariantType.Browser, context });\n const isMobileView = isMobileCheck === 'xs' || isMobileCheck === 'sm';\n\n if (!ArrayExtensions.hasElements(cartLines)) {\n return null;\n }\n\n const renderShipMultiAddressView = isMultipleAddressShippingEnabled;\n const quantity = 1;\n return renderShipMultiAddressView ? (\n
{resources.headingAfterMultiSelectAddressSelect}
\n ) : (\n
\n
\n
{title}
\n
{itemTitle}
\n
\n
\n {cartLines.map((cartLine: ICheckoutShippingCartLineInfo) => {\n const isShowQty = cartLine.quantity > quantity;\n let className = `${moduleClassName}__group-images-lines-product`;\n const role = 'text';\n if (isShowQty) {\n className = classnames(className, ' product-image-wide');\n }\n return (\n
\n \n {isMobileView\n ? isShowQty && (\n \n {cartLine.quantity}\n
\n )\n : isShowQty && (\n
\n )}\n {!isMobileView && isShowQty && (\n \n {format(resources.productQuantityInfo, cartLine.quantity, cartLine.imageProps.altText)}\n \n )}\n
\n );\n })}\n \n \n );\n};\n\n/**\n * The checkout shipping cartline image settings.\n */\nexport const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\n lg: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\n xl: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 }\n },\n lazyload: true,\n quality: 80\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport {\n Address,\n AddressPurpose,\n CartLine,\n CountryRegionInfo,\n SimpleProduct,\n StateProvinceInfo,\n TenderLine,\n TokenizedPaymentCard\n} from '@msdyn365-commerce/retail-proxy';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport {\n ArrayExtensions,\n getFallbackImageUrl,\n getSimpleProducts,\n ObjectExtensions,\n ProductInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { format, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { action, computed, observable, reaction, set } from 'mobx';\nimport { observer } from 'mobx-react';\nimport get from 'lodash/get';\nimport * as React from 'react';\n\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport { AutoSuggest } from '../../common/address-autosuggest';\nimport { IAutoSuggestOptions } from '../../common/address-autosuggest.data';\nimport { AddressCommon } from '../../common/address-common';\nimport { AddressFormat } from '../../common/address-format';\nimport { AddressItemType } from '../../common/address-format.data';\nimport { AddressMetaData } from '../../common/address-meta-data';\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { AddressSelect, IAddressSelectProps } from '../../common/components/address-select';\nimport { AddressShow, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutShippingAddressData } from './checkout-shipping-address.data';\nimport { ICheckoutShippingAddressProps } from './checkout-shipping-address.props.autogenerated';\nimport {\n CheckoutPickupCartLines,\n defaultImageSettings,\n ICartLineWithProduct,\n ICheckoutShippingCartLineInfo,\n ICheckoutShippingCartLinesProps\n} from './components/checkout-shipping-cartlines-images';\nimport { ErrorComponent } from '../../common/components/address-error-alert';\nimport { focusOnCheckoutError } from '../../checkout-errors/checkout-errors';\nimport { AddressShipMultiple, IShipMultipleAddressesViewProps } from '../../common/components/address-ship-multiple';\nimport { IShipMultipleAddressesLineViewProps } from '../../common/components/address-ship-multiple-lines';\n\n/**\n * The checkout address props interface.\n */\nexport interface ICheckoutAddressProps extends ICheckoutShippingAddressProps, IModuleStateProps {}\n\n/**\n * The checkout shipping address view state.\n */\nexport interface ICheckoutShippingAddressViewState {\n isShowAddress: boolean;\n isShowAddresList: boolean;\n isShowAddOrUpdateAddress: boolean;\n isShowShipMultipleAddress?: boolean;\n}\n\n/**\n * The checkout shipping address state.\n */\nexport interface ICheckoutAddresState {\n shippingGroups: ICartLineWithProduct[];\n shippingGroupsBuffer: ICartLineWithProduct[];\n selectedShippingLines: IShipMultipleAddressesLineViewModel[];\n errorMessage?: string;\n}\n\n/**\n * The checkout shipping address view props.\n */\nexport interface ICheckoutShippingAddressViewProps extends ICheckoutAddressProps {\n className: string;\n currentOperation: AddressOperation;\n selectedAddress?: Address;\n addUpdateAddress: Address;\n addressListSelectedAddress: Address;\n countryRegionId: string;\n stateProvinceInfo?: StateProvinceInfo[];\n customerAddresses: Address[];\n validationError: object;\n addressActionResponse?: IAddressResponse;\n viewState: ICheckoutShippingAddressViewState;\n CheckoutShippingAddress: IModuleProps;\n isUpdating: boolean;\n hasError: boolean;\n showAddress: IAddressShowProps;\n showAddOrUpdateAddress: IAddressAddUpdateProps;\n cartLineImages?: React.ReactNode;\n showAddressSelect: IAddressSelectProps;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n showShipMultipleAddresses?: IShipMultipleAddressesViewProps;\n ProductsTable?: INodeProps;\n ProductsTableRow?: INodeProps;\n ProductsTableHeading?: React.ReactNode;\n orderLines?: IShipMultipleAddressesLineViewProps[];\n showAddOrUpdateAddressHandler?(onSaveHandler?: () => void, onCancelHandler?: () => void): IAddressAddUpdateProps;\n showAddressSelectHandler?(\n onShipMultipleAddressesHandler?: () => void,\n onAddAddressHandler?: () => void,\n onSaveHandler?: () => void,\n onCancelHandler?: () => void\n ): IAddressSelectProps;\n}\n\nexport interface IShipMultipleAddressesLineViewModel {\n isChecked: boolean;\n cartLine: CartLine;\n}\n\n/**\n * IExpressPaymentDetail interface.\n */\ninterface IExpressPaymentDetails {\n email?: string;\n tenderLine?: TenderLine;\n tokenizedPaymentCard?: TokenizedPaymentCard;\n paymentTenderType?: string;\n address?: Address;\n isExpressCheckoutAppliedInCartPage: boolean;\n isExpressAddressAppliedInCartPage?: boolean;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n *\n * Address component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass CheckoutShippingAddress extends React.Component {\n @observable private currentOperation: AddressOperation;\n\n @observable private selectedAddress?: Address;\n\n @observable private addUpdateAddress: Address;\n\n @observable private countryRegionId: string = 'USA';\n\n @observable private stateProvinceInfo?: StateProvinceInfo[];\n\n @observable private customerAddresses: Address[] = [];\n\n @observable private validationError: object;\n\n @observable private addressActionResponse?: IAddressResponse;\n\n @observable private isUpdating?: boolean;\n\n @observable private hasError?: boolean;\n\n @observable private addressListSelectedAddress: Address = {};\n\n @observable\n private _viewport: GridSize;\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n private readonly addressCommon: AddressCommon;\n\n private addressFormat!: AddressFormat;\n\n private countryRegions: CountryRegionInfo[] = [];\n\n private addressPurposes: AddressPurpose[] = [];\n\n private readonly resources: IAddressResource;\n\n private readonly defaultAddressType: number = 6; // Default to Home\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private autoSuggest?: AutoSuggest;\n\n private readonly multiplePickupStoreSwitchName: string = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n\n private retailMultiplePickUpOptionEnabled?: boolean = false;\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n public constructor(props: ICheckoutAddressProps) {\n super(props);\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.state = { shippingGroups: [], shippingGroupsBuffer: [], selectedShippingLines: [] };\n const { context, data, resources, telemetry } = this.props;\n\n this.addUpdateAddress = {};\n this.resources = resources;\n this.currentOperation = AddressOperation.List;\n this.countryRegions = data.countryRegions.result || [];\n this.addressPurposes = data.addressPurposes.result || [];\n this.customerAddresses = data.address.result || [];\n this.stateProvinceInfo = data.countryStates.result || [];\n this.addressCommon = new AddressCommon(context, resources, telemetry);\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\n this.addressPurposes\n );\n this.validationError = {};\n this.retailMultiplePickUpOptionEnabled = data.featureState.result?.find(\n feature => feature.Name === this.multiplePickupStoreSwitchName\n )?.IsEnabled;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this._updateViewport();\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n },\n config: { autoSuggestionEnabled, autoSuggestOptions },\n resources\n } = this.props;\n\n // Initializing data props\n this._dataInitialize(this.props);\n\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\n this.addressPurposes\n );\n\n this.props.data.checkout.then(() => {\n this._setDefaultCountryRegionId();\n this._initModuleState();\n });\n\n reaction(\n () => this.countryRegionId,\n () => {\n this._getStateProvinces();\n }\n );\n\n reaction(\n () => this.currentOperation,\n () => {\n this._getStateProvinces();\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.shippingAddressFromExpressCheckout,\n () => {\n if (!this.expressPaymentDetailsFromCartPage && this._canShip()) {\n let address = this.props.data.checkout.result?.shippingAddressFromExpressCheckout;\n\n if (address?.TwoLetterISORegionName) {\n const threeLetterIsoRegionName = this.getThreeLetterIsoRegionName(address.TwoLetterISORegionName);\n\n address = { ...address, ThreeLetterISORegionName: threeLetterIsoRegionName };\n\n if (threeLetterIsoRegionName && threeLetterIsoRegionName !== this.countryRegionId) {\n this._onCountryChange(threeLetterIsoRegionName);\n }\n }\n\n this._updateCurrentOperation(AddressOperation.Add, address);\n this._onAddressAddUpdateSubmit();\n }\n }\n );\n\n if (autoSuggestionEnabled) {\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\n this.autoSuggest = new AutoSuggest(\n telemetry,\n options,\n channel?.BingMapsApiKey,\n channel?.ChannelCountryRegionISOCode,\n channel?.DefaultLanguageId\n );\n\n // Customer doesn't have any address. Then add view will be loaded directly. Code for the same to handle that\n if (\n this.props.data.storeSelectorStateManager.result &&\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\n ) {\n await this.autoSuggest._loadMapAPI(await this.props.data.storeSelectorStateManager);\n }\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager.result?.loadMapApi &&\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\n async () => {\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\n async () => {\n await this._attachMapAutoSuggest();\n }\n );\n }\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (\n checkoutError &&\n checkoutError.errorLocation === ErrorLocation.CheckoutShippingAddress &&\n checkoutError.errorMessage\n ) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutShippingAddress) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n\n if (MsDyn365.isBrowser) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n\n await this._initPickupGroup();\n }\n\n public async componentDidUpdate(): Promise {\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n await this._attachMapAutoSuggest();\n }\n } else {\n this.autoSuggest?.disposeAutoSuggest();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutAddressProps, nextState: ICheckoutAddresState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n if (!this._canShip()) {\n return null;\n }\n\n const {\n config,\n context,\n renderView,\n resources,\n moduleState: { hasError }\n } = this.props;\n const { headingImages, itemsText, singleItemText, errorMessageTitle } = resources;\n const { imageSettings } = config;\n\n // Line images\n const cartLines: ICheckoutShippingCartLineInfo[] = this.state.shippingGroups\n .filter(x => !ObjectExtensions.isNullOrUndefined(x.product))\n .map(line => ({\n lineId: line.cartLine.LineId ?? '',\n imageProps: {\n requestContext: context.actionContext.requestContext,\n className: 'ms-checkout-shipping-address__group-images-lines-line-image',\n altText: line.product?.Name,\n src: line.product?.PrimaryImageUrl ?? '',\n fallBackSrc: getFallbackImageUrl(\n line.product?.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n ),\n gridSettings: context.request.gridSettings!,\n imageSettings: imageSettings ?? defaultImageSettings,\n loadFailureBehavior: 'empty'\n },\n quantity: line.cartLine.Quantity ?? 0,\n shippingAddressId: line.cartLine.ShippingAddress?.RecordId ?? 0\n }));\n\n const numberOfCartLines = this._countItems(cartLines);\n const itemText = numberOfCartLines > 1 ? itemsText : singleItemText;\n const itemTitle = `(${format(itemText, numberOfCartLines)})`;\n\n const lineImageProps: ICheckoutShippingCartLinesProps = {\n moduleClassName: 'ms-checkout-shipping-address',\n cartLines: cartLines.filter(x => !ObjectExtensions.isNullOrUndefined(x)),\n itemTitle: itemTitle,\n title: headingImages,\n resources: this.props.resources,\n isMultipleAddressShippingEnabled: config.multipleAddressShippingEnabled\n };\n\n const cartLineImages: React.ReactNode = ;\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const { featureState } = this.props.data;\n const isRetailMultiplePickUpOptionEnabled = featureState.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\n ?.IsEnabled;\n\n const errorMessage = this.state.errorMessage;\n\n const viewProps = {\n ...this.props,\n currentOperation: this.currentOperation,\n selectedAddress: this.selectedAddress,\n addUpdateAddress: this.addUpdateAddress,\n addressListSelectedAddress: this.addressListSelectedAddress,\n countryRegionId: this.countryRegionId,\n stateProvinceInfo: this.stateProvinceInfo,\n customerAddresses: this.customerAddresses,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n isUpdating: this.isUpdating,\n hasError: this.hasError,\n className: config.className,\n viewState: {\n isShowAddress: this.currentOperation === AddressOperation.Show && this.selectedAddress,\n isShowAddresList: this.currentOperation === AddressOperation.List && this.customerAddresses.length > 0,\n isShowAddOrUpdateAddress:\n this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update,\n isShowShipMultipleAddress: this.currentOperation === AddressOperation.Multiple\n },\n CheckoutShippingAddress: {\n moduleProps: this.props,\n className: classnames('ms-checkout-shipping-address', config.className)\n },\n showAddress: this._renderShowAddress(),\n alert: hasError && errorMessage && ,\n checkoutErrorRef: this.checkoutErrorRef,\n\n /**\n * Show address select.\n * @param onShipMultipleAddressesHandler - On ship to multiple addresses click function.\n * @param onAddAddressHandler - On add address click function.\n * @param onSaveHandler - On save click function.\n * @param onCancelHandler - On cancel click function.\n * @returns - Renders select address.\n */\n showAddressSelectHandler: (\n onShipMultipleAddressesHandler?: () => void,\n onAddAddressHandler?: () => void,\n onSaveHandler?: () => void,\n onCancelHandler?: () => void\n ) => this._renderSelectAddress(onShipMultipleAddressesHandler, onAddAddressHandler, onSaveHandler, onCancelHandler),\n\n /**\n * Show ship multiple addresses.\n * @param onSaveHandler - On save click function.\n * @param onCancelHandler - On cancel click function.\n * @returns - Renders ship multiple addresses.\n */\n showShipMultipleAddressesHandler: (onSaveHandler?: () => void, onCancelHandler?: () => void) =>\n this._renderShipMultipleAddresses(onSaveHandler, onCancelHandler),\n showShipMultipleAddresses: this._renderShipMultipleAddresses(),\n\n /**\n * Show add/update address.\n * @param onSaveHandler - On save click function.\n * @param onCancelHandler - On cancel click function.\n * @returns - Renders add/update address.\n */\n showAddOrUpdateAddressHandler: (onSaveHandler?: () => void, onCancelHandler?: () => void) =>\n this._renderAddOrUpdateAddress(onSaveHandler, onCancelHandler),\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\n cartLineImages: isRetailMultiplePickUpOptionEnabled ? cartLineImages : undefined,\n showAddressSelect: this._renderSelectAddress()\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n\n public onSelect = (line: IShipMultipleAddressesLineViewModel, isChecked: boolean): void => {\n line.isChecked = isChecked;\n\n if (this.state.selectedShippingLines) {\n const updated =\n this.state.selectedShippingLines.map(shippingLine => {\n // @ts-ignore\n if (shippingLine.cartLine?.cartLine?.LineId === line.cartLine.LineId) {\n shippingLine.isChecked = isChecked;\n }\n return shippingLine;\n }) || [];\n\n this.setState({\n selectedShippingLines: updated\n });\n } else {\n console.error(`Shipping lines are invalid.`);\n }\n };\n\n public onSelectAll(isChecked: boolean): void {\n if (this.state.selectedShippingLines) {\n const updated =\n this.state.selectedShippingLines.map(shippingLine => {\n shippingLine.isChecked = isChecked;\n return shippingLine;\n }) || [];\n\n this.setState({\n selectedShippingLines: updated\n });\n } else {\n console.error(`Shipping lines are undefined.`);\n }\n }\n\n public onShippingAddressChange = (shippingLine: CartLine, event: React.ChangeEvent): void => {\n const addressRecordId = event.currentTarget.value;\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\n if (this.state.shippingGroups) {\n const updated = this.state.shippingGroups.map(line => {\n if (line.cartLine.LineId === shippingLine.LineId) {\n const updatedCartLine = {\n ...line.cartLine,\n ShippingAddress: selectedAddress\n };\n return {\n ...line,\n cartLine: updatedCartLine\n };\n }\n return line;\n });\n\n this.setState({\n shippingGroups: updated\n });\n }\n };\n\n public updateIndividualAddresses = (shippingLine: CartLine, event: React.ChangeEvent): void => {\n const addressRecordId = event.currentTarget.value;\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\n if (this.state.shippingGroups) {\n this.setState(prevState => {\n const updated = prevState.shippingGroups.map(line => {\n if (line.cartLine.LineId === shippingLine.LineId) {\n const updatedCartLine = {\n ...line.cartLine,\n ShippingAddress: selectedAddress\n };\n return {\n ...line,\n cartLine: updatedCartLine\n };\n }\n return line;\n });\n\n return {\n shippingGroups: updated\n };\n });\n }\n };\n\n public onBulkShippingAddressChange = (event: React.ChangeEvent): void => {\n if (this.state.selectedShippingLines && this.state.shippingGroups) {\n this.state.selectedShippingLines.forEach((shippingLine, index) => {\n if (shippingLine.isChecked) {\n const cartline = this.state.shippingGroups.find(\n // @ts-ignore\n line => line.cartLine.LineId === shippingLine.cartLine?.cartLine?.LineId\n );\n\n if (cartline) {\n this.updateIndividualAddresses(cartline.cartLine, event);\n }\n }\n });\n } else {\n console.error(`Shipping lines are undefined.`);\n }\n };\n\n /**\n * Initialize pickup group.\n */\n @action\n private readonly _initPickupGroup = async (): Promise => {\n const pickupCartLines: CartLine[] = this._getCartLinesforDelivery();\n const cartLines: ICartLineWithProduct[] = [];\n\n try {\n const products = await this._getProductsByCartLines(\n this.props.data.checkout.result?.checkoutCart.cart.ChannelId || 0,\n pickupCartLines\n );\n for (const line of pickupCartLines) {\n const product: SimpleProduct | undefined = products.find(x => x.RecordId === line.ProductId);\n cartLines.push({ cartLine: line, product });\n }\n this.setState({ shippingGroups: cartLines });\n this.setState({ shippingGroupsBuffer: cartLines });\n\n const initialShippingLineSelection = cartLines.map(cartLine => ({\n isChecked: false,\n cartLine: cartLine as CartLine\n }));\n this.setState({ selectedShippingLines: initialShippingLineSelection });\n } catch (error) {\n // @ts-ignore\n this.props.telemetry.error(error);\n this.setState({ shippingGroups: [] });\n this.setState({ shippingGroupsBuffer: [] });\n this.setState({ selectedShippingLines: [] });\n }\n };\n\n /**\n * On suggestion selected.\n * @param result - Suggestion result interface.\n */\n @action\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\n this._clearAddressFields();\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\n const timeout = 0;\n set(this.addUpdateAddress, { Street: '' });\n set(this.addUpdateAddress, { ZipCode: address.ZipCode });\n set(this.addUpdateAddress, { CountyName: address.CountyName });\n set(this.addUpdateAddress, { City: address.City });\n set(this.addUpdateAddress, { State: address.State });\n set(this.addUpdateAddress, { DistrictName: address.DistrictName });\n set(this.addUpdateAddress, { FullAddress: address.FullAddress });\n\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\n setTimeout(() => {\n set(this.addUpdateAddress, { Street: address.Street });\n }, timeout);\n };\n\n /**\n * Method to clear address fields.\n */\n @action\n private readonly _clearAddressFields = (): void => {\n const addressFormatItem = this.addressFormat.getAddressFormat(\n this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\n );\n for (const formatAddress of addressFormatItem) {\n if (\n this.addUpdateAddress[formatAddress.name] !== undefined &&\n !this.autoSuggest?.excludedAddressFields.includes(formatAddress.name)\n ) {\n this.addressFormat[formatAddress.name] = '';\n }\n }\n this._clearValidation();\n };\n\n /**\n * Method to clear validation.\n */\n @action\n private readonly _clearValidation = (): void => {\n this.validationError = {};\n };\n\n public get expressPaymentDetailsFromCartPage(): IExpressPaymentDetails | null {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const properties =\n this.props.data.cart?.result?.cart?.ExtensionProperties?.find(property => property.Key === 'expressPaymentDetails')?.Value\n ?.StringValue ?? '';\n\n return properties ? (JSON.parse(properties) as IExpressPaymentDetails) : null;\n }\n\n /**\n * Method data initialization.\n * @param props -The checkout address properties.\n */\n private readonly _dataInitialize = (props: ICheckoutAddressProps): void => {\n const { data } = props;\n\n reaction(\n () => data.countryRegions.result,\n () => {\n this.countryRegions = data.countryRegions.result ?? [];\n }\n );\n\n reaction(\n () => data.addressPurposes.result,\n () => {\n this.addressPurposes = data.addressPurposes.result ?? [];\n }\n );\n\n reaction(\n () => data.address.result,\n () => {\n this.customerAddresses = data.address.result ?? [];\n }\n );\n\n reaction(\n () => data.countryStates.result,\n () => {\n this.stateProvinceInfo = data.countryStates.result ?? [];\n }\n );\n\n reaction(\n () => data.featureState.result,\n () => {\n this.retailMultiplePickUpOptionEnabled = data.featureState.result?.find(\n feature => feature.Name === this.multiplePickupStoreSwitchName\n )?.IsEnabled;\n }\n );\n };\n\n /**\n * Method to get cart lines for delivery.\n * @returns The cart line collection.\n */\n private readonly _getCartLinesforDelivery = (): CartLine[] => {\n return this.props.data.checkout.result?.checkoutCart.cart.CartLines?.filter(line => this._isDelivery(line)) ?? [];\n };\n\n /**\n * Method to check cart line for delivery.\n * @param line -The cart line.\n * @returns True/false as per cart line delivery mode.\n */\n private readonly _isDelivery = (line: CartLine): boolean => {\n return this._isNotPickupMode(line.DeliveryMode) && (line.FulfillmentStoreId === undefined || line.FulfillmentStoreId === '');\n };\n\n /**\n * Method to check cart line for delivery.\n * @param deliveryMode -The delivery mode.\n * @returns True/false as per cart line delivery mode.\n */\n private readonly _isNotPickupMode = (deliveryMode: string | undefined): boolean => {\n const pickupDeliveryModeCode = this.props.context.request.channel?.PickupDeliveryModeCode;\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const { channelDeliveryOptionConfig, featureState } = this.props.data;\n const retailMultiplePickUpOptionEnabled = featureState.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\n ?.IsEnabled;\n if (retailMultiplePickUpOptionEnabled && deliveryMode !== undefined) {\n const pickupDeliveryMode = channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.some(\n pickupMode => pickupMode !== deliveryMode\n );\n return pickupDeliveryMode !== undefined ? pickupDeliveryMode : false;\n }\n return deliveryMode !== undefined && pickupDeliveryModeCode !== undefined && deliveryMode !== pickupDeliveryModeCode;\n };\n\n /**\n * Method to check cart line for delivery.\n * @param channelId - The channelId.\n * @param cartLines - Cart line collections.\n * @returns Collection of SimpleProduct.\n */\n private readonly _getProductsByCartLines = async (channelId: number, cartLines: CartLine[]): Promise => {\n const actionContext = this.props.context.actionContext;\n const productInputs = cartLines\n .filter(line => !ObjectExtensions.isNullOrUndefined(line.ProductId))\n .map(\n line =>\n new ProductInput(\n line.ProductId || 0,\n actionContext.requestContext.apiSettings,\n channelId,\n undefined,\n actionContext.requestContext,\n line.CatalogId || 0\n )\n );\n return getSimpleProducts(productInputs, actionContext);\n };\n\n /**\n * Method to render ship multiple addresses.\n * @param onSaveHandler -- Handles onsave functionality.\n * @param onCancelHandler -- Handles oncancel functionality.\n */\n private readonly _renderShipMultipleAddresses = (onSaveHandler?: () => void, onCancelHandler?: () => void) => {\n const { config, context } = this.props;\n const { imageSettings } = config;\n\n // Line images\n const cartlineImages: ICheckoutShippingCartLineInfo[] = this.state.shippingGroups\n .filter(x => !ObjectExtensions.isNullOrUndefined(x.product))\n .map(line => ({\n lineId: line.cartLine.LineId ?? '',\n imageProps: {\n requestContext: context.actionContext.requestContext,\n className: 'ms-checkout-shipping-address__group-images-lines-line-image',\n altText: line.product?.Name,\n src: line.product?.PrimaryImageUrl ?? '',\n fallBackSrc: getFallbackImageUrl(\n line.product?.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n ),\n gridSettings: context.request.gridSettings!,\n imageSettings: imageSettings ?? defaultImageSettings,\n loadFailureBehavior: 'empty'\n },\n quantity: line.cartLine.Quantity ?? 0\n }));\n\n /**\n * On Cancel Button Function.\n */\n const onCancelButtonHandler = () => {\n this._resetView();\n onCancelHandler?.();\n };\n\n return AddressShipMultiple({\n /**\n * On Save Function.\n */\n onSave: () => {\n this.onSubmit();\n onSaveHandler?.();\n },\n\n onCancel: !this.selectedAddress && !this.addressCommon.isAuthenticatedFlow() ? () => {} : onCancelButtonHandler,\n\n onSelect: this.onSelect.bind(this),\n\n onSelectAll: this.onSelectAll.bind(this),\n\n onClear: () => {\n this.onSelectAll(false);\n },\n\n onShippingAddressChange: this.onShippingAddressChange.bind(this),\n\n onBulkShippingAddressChange: this.onBulkShippingAddressChange.bind(this),\n\n /**\n * On Ship to Single Address Function.\n */\n onShipSingleAddress: () => {\n const resetSelectedShippingLines = this.state.selectedShippingLines\n ? this.state.selectedShippingLines.map(shippingLine => ({\n isChecked: false,\n cartLine: shippingLine.cartLine\n }))\n : [];\n this.setState({\n selectedShippingLines: resetSelectedShippingLines,\n shippingGroups: this.state.shippingGroupsBuffer\n });\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\n this._updateModuleState();\n },\n\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\n\n shippingLines: this.state.shippingGroups,\n\n shippingLineImages: cartlineImages,\n\n selectedShippingLines: this.state.selectedShippingLines ? this.state.selectedShippingLines : [],\n\n customerAddresses: this.customerAddresses,\n\n context: this.props.context,\n\n currencyCode: this.currencyCode,\n\n moduleId: this.props.id,\n\n moduleTypeName: this.props.typeName,\n\n resources: this.resources,\n\n telemetryContent: this.telemetryContent,\n\n isMobile: this.isMobile\n });\n };\n\n /**\n * Method to render add/update address.\n * @param onSaveHandler -- Handles onsave functionality.\n * @param onCancelHandler -- Handles oncancel functionality.\n * @returns Address app/update props.\n */\n private readonly _renderAddOrUpdateAddress = (onSaveHandler?: () => void, onCancelHandler?: () => void): IAddressAddUpdateProps => {\n const addressFormat =\n this.currentOperation === AddressOperation.Add && this.addressCommon.isAuthenticatedFlow()\n ? this.addressFormat\n : this.addressFormat;\n\n /**\n * On Cancel Button Function.\n */\n const onCancelButtonHandler = () => {\n this._resetView();\n onCancelHandler?.();\n };\n return AddressAddUpdate({\n isUpdating: this.isUpdating,\n resources: this.resources,\n addressType: AddressType.Shipping,\n addressFormat: addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\n defaultCountryRegionId: this.countryRegionId,\n defaultAddressType: this.defaultAddressType,\n selectedAddress: this.addUpdateAddress,\n validationError: this.validationError,\n hasError: this.hasError,\n addressActionResponse: this.addressActionResponse,\n telemetryContent: this.telemetryContent,\n dropdownDisplayData: addressFormat.getPrefilledAddressDropdownData(\n this.resources.addressStateDefaultSelectionText,\n this.stateProvinceInfo\n ),\n onInputChange: this._onAddressAddUpdateInputChange,\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\n\n /**\n * On Save Function.\n */\n onSave: () => {\n this.onSubmit();\n onSaveHandler?.();\n },\n\n onCancel: !this.selectedAddress && !this.addressCommon.isAuthenticatedFlow() ? () => {} : onCancelButtonHandler\n });\n };\n\n /**\n * Method to render select address.\n * @param onShipMultipleAddressesHandler - To handle ship to multiple addresses button click.\n * @param onAddAddressHandler - To handle add address button click.\n * @param onSaveHandler - To handle save button click.\n * @param onCancelHandler - To handle cancel button click.\n * @returns Select address props.\n */\n private readonly _renderSelectAddress = (\n onShipMultipleAddressesHandler?: () => void,\n onAddAddressHandler?: () => void,\n onSaveHandler?: () => void,\n onCancelHandler?: () => void\n ): IAddressSelectProps => {\n /**\n * On Cancel Button Function.\n */\n const onCancelButtonHandler = () => {\n this._resetView();\n onCancelHandler?.();\n };\n return AddressSelect({\n addressFormat: this.addressFormat,\n addresses: this.customerAddresses,\n resources: this.resources,\n addressPurposes: this.addressPurposes,\n selectedAddress: this.addressListSelectedAddress,\n onAddressOptionChange: this._onAddressOptionChange,\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\n telemetryContent: this.telemetryContent,\n\n /**\n * On Ship to Multiple Addresses Function.\n */\n onShipMultipleAddresses: () => {\n this._goToShipMultipleAddresses();\n onShipMultipleAddressesHandler?.();\n },\n\n /**\n * On Add Address Function.\n */\n onAddAddress: () => {\n this._goToAddAddress();\n onAddAddressHandler?.();\n },\n\n /**\n * On Save Function.\n */\n onSave: () => {\n this._onSelectAddress();\n onSaveHandler?.();\n },\n\n onCancel: !this.selectedAddress ? () => {} : onCancelButtonHandler,\n\n multipleAddressShippingEnabled: this.props.config.multipleAddressShippingEnabled\n });\n };\n\n /**\n * Method to render show address.\n * @returns Show address props.\n */\n private _renderShowAddress(): IAddressShowProps | null {\n if (this.selectedAddress) {\n return AddressShow({\n address: this.selectedAddress,\n addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''),\n addressPurposes: this.addressPurposes\n });\n }\n\n return null;\n }\n\n /**\n * Method to render map auto suggest.\n */\n private readonly _attachMapAutoSuggest = async (): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\n }\n };\n\n /**\n * Method gets called on address option change.\n * @param event - To get current option.\n */\n private readonly _onAddressOptionChange = (event: React.ChangeEvent) => {\n const addressRecordId = event.currentTarget.value;\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\n if (selectedAddress) {\n this.addressListSelectedAddress = selectedAddress;\n }\n };\n\n /**\n * Method to render map auto suggest.\n * @param name - Address name field.\n * @param value - Address name value field.\n */\n private readonly onAddressAddUpdate = (name: string, value: string | boolean) => {\n set(this.addUpdateAddress, { [name]: value });\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\n };\n\n /**\n * Method to get called on address update change.\n * @param event - Input element.\n */\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\n if (event.target.type === 'checkbox') {\n this.onAddressAddUpdate(event.target.name, event.target.checked);\n } else {\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\n this.onAddressAddUpdate(event.target.name, value);\n }\n };\n\n /**\n * Method to get called on address update dropdown change.\n * @param event - Select element.\n */\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\n this.onAddressAddUpdate(event.target.name, event.target.value);\n\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\n this._onCountryChange(event.target.value);\n }\n };\n\n /**\n * Method to get called on address update submit.\n */\n private readonly _onAddressAddUpdateSubmit = (): void => {\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\n return;\n }\n\n let response: Promise;\n if (this.addressCommon.isAuthenticatedFlow() && this._isNewAddress(this.addUpdateAddress)) {\n response =\n this.currentOperation === AddressOperation.Update\n ? this.addressCommon.updateCustomerAddress(this.addUpdateAddress)\n : this.addressCommon.addCustomerAddress(this.addUpdateAddress);\n } else {\n response = Promise.resolve({ address: this.addUpdateAddress });\n }\n\n this.isUpdating = true;\n this._updateModuleState();\n\n response.then(\n (result: IAddressResponse) => {\n this.isUpdating = false;\n\n if (result.address) {\n this.hasError = false;\n this._clearError();\n if (result.customerAddresses) {\n this._onAddOrUpdateSuccess({ customerAddresses: result.customerAddresses, address: result.address });\n } else {\n this._onAddOrUpdateSuccess({ address: result.address });\n }\n } else {\n this.hasError = true;\n this.addressActionResponse = result;\n this._updateModuleState();\n }\n },\n () => {\n this.hasError = true;\n this.isUpdating = false;\n this._updateModuleState();\n }\n );\n };\n\n /**\n * Method to get called on country change.\n * @param countryRegionId - Country region id.\n */\n private readonly _onCountryChange = (countryRegionId: string) => {\n this.countryRegionId = countryRegionId;\n const twoLetterIsoRegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\n set(this.addUpdateAddress, { ThreeLetterISORegionName: countryRegionId });\n set(this.addUpdateAddress, { TwoLetterISORegionName: twoLetterIsoRegionName });\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterIsoRegionName);\n this._clearAddressFields();\n };\n\n /**\n * Method to get all address format exclude list.\n * @returns Collection of address items.\n */\n private readonly _getAddressFormatExcludeList = (): AddressItemType[] => {\n const { config } = this.props;\n const addressFormatExcludeList: AddressItemType[] = [];\n\n if (!config.showAddressType) {\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\n }\n\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\n\n return addressFormatExcludeList;\n };\n\n /**\n * Method to get all state/provinces.\n */\n private readonly _getStateProvinces = (): void => {\n if (\n !this.countryRegionId ||\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\n ) {\n return;\n }\n\n this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\n\n // Reset state if selected state not found in the list.\n if (!stateInfo) {\n set(this.addUpdateAddress, { State: '' });\n }\n\n this.stateProvinceInfo = result;\n });\n };\n\n /**\n * Method to set default country region id.\n */\n private _setDefaultCountryRegionId(): void {\n const { request } = this.props.context;\n const market = request.channel?.ChannelCountryRegionISOCode;\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\n }\n\n /**\n * Method to get default address region id.\n * @returns - Address object from existing addresses.\n */\n private readonly _getDefaultAddress = (): Address | undefined => {\n if (this.customerAddresses) {\n const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\n return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\n }\n return undefined;\n };\n\n /**\n * Method to get address from express payment details from cart page.\n * @returns - Address.\n */\n private readonly _getAddressFromCartExpressPaymentDetails = (): Address | undefined => {\n if (this.expressPaymentDetailsFromCartPage) {\n const { tokenizedPaymentCard, address, isExpressAddressAppliedInCartPage } = this.expressPaymentDetailsFromCartPage;\n\n let addressFromCartExpress: Address | undefined;\n\n if (isExpressAddressAppliedInCartPage) {\n addressFromCartExpress = address ? this.getExpressAddress(address) : undefined;\n } else {\n addressFromCartExpress = tokenizedPaymentCard ? this.getAddressFromTokenizedPaymentCard(tokenizedPaymentCard) : undefined;\n }\n\n return addressFromCartExpress;\n }\n return undefined;\n };\n\n /**\n * Get address from tokenizedPaymentCard.\n * @param tokenizedPaymentCard -- The tokenizedPaymentCard from the payment.\n * @returns The address.\n */\n private readonly getAddressFromTokenizedPaymentCard = (tokenizedPaymentCard: TokenizedPaymentCard): Address => {\n const twoLetterIsoRegionName = tokenizedPaymentCard.Country;\n\n const threeLetterIsoRegionName = twoLetterIsoRegionName ? this.getThreeLetterIsoRegionName(twoLetterIsoRegionName) : undefined;\n\n if (threeLetterIsoRegionName && threeLetterIsoRegionName !== this.countryRegionId) {\n this._onCountryChange(threeLetterIsoRegionName);\n }\n\n const address: Address = {\n TwoLetterISORegionName: twoLetterIsoRegionName,\n Name: tokenizedPaymentCard.NameOnCard,\n Street: tokenizedPaymentCard.Address1,\n StreetNumber: tokenizedPaymentCard.Address2,\n City: tokenizedPaymentCard.City,\n State: tokenizedPaymentCard.State,\n ZipCode: tokenizedPaymentCard.Zip,\n Phone: tokenizedPaymentCard.Phone,\n ThreeLetterISORegionName: threeLetterIsoRegionName,\n AddressTypeValue: this.defaultAddressType\n };\n\n return address;\n };\n\n /**\n * Get address from expressAddress.\n * @param expressAddress -- The expressAddress.\n * @returns The address.\n */\n private readonly getExpressAddress = (expressAddress: Address): Address => {\n const twoLetterIsoRegionName = expressAddress.TwoLetterISORegionName;\n\n const threeLetterIsoRegionName = twoLetterIsoRegionName ? this.getThreeLetterIsoRegionName(twoLetterIsoRegionName) : undefined;\n\n if (threeLetterIsoRegionName && threeLetterIsoRegionName !== this.countryRegionId) {\n this._onCountryChange(threeLetterIsoRegionName);\n }\n\n const address: Address = {\n ...expressAddress,\n ThreeLetterISORegionName: threeLetterIsoRegionName,\n AddressTypeValue: this.defaultAddressType\n };\n\n return address;\n };\n\n /**\n * Get three letter ISO region name from two letter ISO region name.\n * @param twoLetterIsoRegionName -- The three letter ISO region name.\n * @returns The three letter ISO region name.\n */\n private readonly getThreeLetterIsoRegionName = (twoLetterIsoRegionName: string): string | undefined => {\n const countryRegion = this.countryRegions.find(country => {\n return country.ISOCode?.toLowerCase() === twoLetterIsoRegionName.toLowerCase();\n });\n\n return countryRegion?.CountryRegionId;\n };\n\n /**\n * Method to initialize all module state.\n */\n private readonly _initModuleState = (): void => {\n this.props.moduleState.init({\n status: this._canShip() ? 'updating' : 'disabled',\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit\n });\n\n const checkoutState = this.props.data.checkout.result;\n\n if (this._canShip()) {\n let defaultAddress;\n const shippingCartLines: CartLine[] = this._getCartLinesforDelivery();\n\n if (checkoutState?.checkoutCart.cart.ShippingAddress) {\n defaultAddress = checkoutState.checkoutCart.cart.ShippingAddress;\n } else if (\n ArrayExtensions.hasElements(shippingCartLines) &&\n shippingCartLines[0].ShippingAddress !== undefined &&\n shippingCartLines[0].ShippingAddress.FullAddress !== ''\n ) {\n defaultAddress = shippingCartLines[0].ShippingAddress;\n } else if (this._getAddressFromCartExpressPaymentDetails()) {\n defaultAddress = this._getAddressFromCartExpressPaymentDetails();\n } else if (this._getDefaultAddress()) {\n defaultAddress = this._getDefaultAddress();\n } else {\n defaultAddress = checkoutState?.isExpressCheckoutApplied ? checkoutState.shippingAddressFromExpressCheckout : undefined;\n }\n\n if (defaultAddress && !this.addressCommon.isEmpty(defaultAddress)) {\n this._updateCurrentOperation(AddressOperation.Show, defaultAddress);\n this._setShippingAddress(defaultAddress);\n this._updateModuleState();\n checkoutState?.updateHasShippingAddress({ newHasShippingAddress: true });\n } else {\n this._updateCurrentOperation(AddressOperation.Add);\n checkoutState?.updateHasShippingAddress({ newHasShippingAddress: false });\n }\n }\n };\n\n /**\n * Method get called on submit address.\n */\n private readonly onSubmit = (): void => {\n switch (this.currentOperation) {\n case AddressOperation.Add:\n case AddressOperation.Update:\n this.props.telemetry.information('Shipping address submit for Add or Update operation.');\n this._onAddressAddUpdateSubmit();\n break;\n case AddressOperation.List:\n this.props.telemetry.information('Shipping address submit for List operation.');\n this._onSelectAddress();\n break;\n case AddressOperation.Multiple:\n this.setState({ shippingGroupsBuffer: this.state.shippingGroups });\n this._onSelectMultiAddress();\n const resetSelectedShippingLines = this.state.selectedShippingLines\n ? this.state.selectedShippingLines.map(shippingLine => ({\n isChecked: false,\n cartLine: shippingLine.cartLine\n }))\n : [];\n this.setState({ selectedShippingLines: resetSelectedShippingLines });\n break;\n default:\n this.props.telemetry.error('Invalid operation');\n }\n };\n\n /**\n * Method get called on cancel.\n */\n private readonly onCancel = (): void => {\n switch (this.currentOperation) {\n case AddressOperation.Add:\n case AddressOperation.Update:\n this.props.telemetry.information('Shipping address cancel for Add or Update operation.');\n this._clearAddressFields();\n if (!(!this.selectedAddress && !this.addressCommon.isAuthenticatedFlow())) {\n this._resetView();\n }\n\n break;\n case AddressOperation.List:\n this.props.telemetry.information('Shipping address cancel for List operation.');\n if (this.selectedAddress) {\n this._resetView();\n }\n break;\n case AddressOperation.Multiple:\n this.props.telemetry.information('Shipping address cancel for Multiple operation.');\n const resetSelectedShippingLines = this.state.selectedShippingLines\n ? this.state.selectedShippingLines.map(shippingLine => ({\n isChecked: false,\n cartLine: shippingLine.cartLine\n }))\n : [];\n this.setState({\n selectedShippingLines: resetSelectedShippingLines,\n shippingGroups: this.state.shippingGroupsBuffer\n });\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\n this._updateModuleState();\n break;\n default:\n this.props.telemetry.error('Invalid operation');\n }\n };\n\n /**\n * Method get called on edit address.\n */\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Shipping address onEdit is called.');\n\n if (this.addressCommon.isAuthenticatedFlow() && this.shippingAddress) {\n this._updateCurrentOperation(AddressOperation.List, this.shippingAddress);\n } else if (this.shippingAddress) {\n this._updateCurrentOperation(AddressOperation.Update, this.shippingAddress);\n }\n\n this._updateModuleState();\n };\n\n /**\n * Method to check if checkout cartlines are available fro shipping.\n * @returns - True/false as per the delivery mode.\n */\n private readonly _canShip = (): boolean => {\n const { checkout, channelDeliveryOptionConfig } = this.props.data;\n const { request } = this.props.context;\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\n if (!checkout.result || !request.channel || checkout.result.checkoutCart.isEmpty || checkout.result.checkoutCart.hasInvoiceLine) {\n return false;\n }\n\n // @ts-expect-error: Type-checker not realizing above request.channel check\n return this.retailMultiplePickUpOptionEnabled\n ? checkout.result.checkoutCart.cart.CartLines?.some(cartLine =>\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\n ? cartLine.DeliveryMode !==\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\n deliveryMode => deliveryMode === cartLine.DeliveryMode\n )\n : cartLine\n )\n : checkout.result.checkoutCart.cart.CartLines?.some(cartLine =>\n cartLine.DeliveryMode && cartLine.DeliveryMode !== '' ? cartLine.DeliveryMode !== pickupDeliveryModeCode : cartLine\n );\n };\n\n /**\n * Method get called on select address.\n */\n private readonly _onSelectAddress = () => {\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\n this._setShippingAddress(this.addressListSelectedAddress);\n this._updateModuleState();\n };\n\n /**\n * Method get called on select address.\n */\n private readonly _onSelectMultiAddress = () => {\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\n if (this.props.config.multipleAddressShippingEnabled) {\n this._setCartLinesShippingAddress(this.addressListSelectedAddress);\n } else {\n this._setShippingAddress(this.addressListSelectedAddress);\n }\n\n this._updateModuleState();\n };\n\n /**\n * Method get called on ship to multiple addresses.\n */\n private readonly _goToShipMultipleAddresses = () => {\n this._setDefaultCountryRegionId();\n this.setState({ shippingGroupsBuffer: this.state.shippingGroups });\n this._updateCurrentOperation(AddressOperation.Multiple);\n };\n\n /**\n * Method get called on goto add address.\n */\n private readonly _goToAddAddress = () => {\n this._setDefaultCountryRegionId();\n this._updateCurrentOperation(AddressOperation.Add);\n };\n\n /**\n * Method get called on add/update success.\n * @param response - Retail api response.\n */\n private readonly _onAddOrUpdateSuccess = (response: IAddressResponse) => {\n if (response.customerAddresses) {\n this.customerAddresses = response.customerAddresses;\n }\n\n if (response.address) {\n this._updateCurrentOperation(AddressOperation.Show, response.address);\n this._setShippingAddress(response.address);\n this._updateModuleState();\n }\n };\n\n /**\n * Method get called on set Shipping Address.\n * @param address - Retail Api address result.\n */\n private readonly _setShippingAddress = (address: Address): void => {\n if (this.props.data.checkout.result) {\n const newShippingAddress = { ...address };\n\n if (address.ThreeLetterISORegionName && !newShippingAddress.TwoLetterISORegionName) {\n newShippingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\n }\n\n this.props.data.checkout.result.updateShippingAddress({ newShippingAddress });\n this.props.data.checkout.result.checkoutCart.updateShippingAddress({ newShippingAddress }).catch(error => {\n this.props.telemetry.error(error);\n });\n }\n };\n\n /**\n * Method get called on set Shipping Address.\n * @param address - Retail Api address result.\n */\n private readonly _setCartLinesShippingAddress = (address: Address): void => {\n if (this.props.data.checkout.result) {\n const newCartLinesWithShippingAddress = this.state.shippingGroups.map(shippingGroup => shippingGroup.cartLine);\n this.props.data.checkout.result.updateCartLinesShippingAddress({ newCartLinesWithShippingAddress });\n this.props.data.checkout.result.checkoutCart\n .updateCartLineShippingAddress({ updatedCartLinesObject: newCartLinesWithShippingAddress })\n .catch(error => {\n this.props.telemetry.error(error);\n });\n }\n };\n\n @computed private get shippingAddress(): Address | undefined {\n return this.props.data.checkout.result?.shippingAddress;\n }\n\n @computed get currencyCode(): string | undefined {\n return get(this.props, 'context.request.channel.Currency');\n }\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n /**\n * Method get called on reset view.\n */\n private readonly _resetView = (): void => {\n switch (this.currentOperation) {\n case AddressOperation.Add:\n case AddressOperation.Update:\n this._updateCurrentOperation(\n this.addressCommon.isAuthenticatedFlow() ? AddressOperation.List : AddressOperation.Show,\n this.shippingAddress\n );\n break;\n case AddressOperation.Multiple:\n const resetSelectedShippingLines = this.state.selectedShippingLines\n ? this.state.selectedShippingLines.map(shippingLine => ({\n isChecked: false,\n cartLine: shippingLine.cartLine\n }))\n : [];\n this.setState({\n selectedShippingLines: resetSelectedShippingLines,\n shippingGroups: this.state.shippingGroupsBuffer\n });\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\n break;\n default:\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\n }\n this._updateModuleState();\n };\n\n /**\n * Update current operation.\n * @param operation - The address operation.\n * @param selectedAddress - The selected address.\n */\n private readonly _updateCurrentOperation = (operation: AddressOperation, selectedAddress?: Address) => {\n this.currentOperation = operation;\n this.selectedAddress = selectedAddress;\n\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\n this.addUpdateAddress = { ...this.selectedAddress } || {};\n set(this.addUpdateAddress, {\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\n });\n set(this.addUpdateAddress, {\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType\n });\n } else if (this.currentOperation === AddressOperation.List) {\n this.addressListSelectedAddress = { ...this.selectedAddress } || {};\n }\n };\n\n /**\n * Update module state.\n */\n private readonly _updateModuleState = () => {\n if (this.currentOperation === AddressOperation.Show) {\n this.props.moduleState.onReady();\n } else if (this.isUpdating) {\n this.props.moduleState.onPending();\n } else {\n this.props.moduleState.onUpdating();\n }\n };\n\n /**\n * Method to check if the customer already has the address.\n * @param address - The address.\n */\n private readonly _isNewAddress = (address: Address): boolean => {\n for (const existingAddress of this.customerAddresses) {\n if (\n (address.Name ?? '') === existingAddress.Name &&\n (address.Street ?? '') === existingAddress.Street &&\n (address.StreetNumber ?? '') === existingAddress.StreetNumber &&\n (address.City ?? '') === existingAddress.City &&\n (address.State ?? '') === existingAddress.State &&\n (address.ZipCode ?? '') === existingAddress.ZipCode &&\n (address.Phone ?? '') === existingAddress.Phone &&\n (address.ThreeLetterISORegionName ?? '') === existingAddress.ThreeLetterISORegionName &&\n (address.AddressTypeValue ?? '') === existingAddress.AddressTypeValue\n ) {\n return false;\n }\n }\n\n return true;\n };\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n errorMessage\n });\n };\n\n private readonly _clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.setState({\n errorMessage: ''\n });\n };\n\n /**\n * Returns count of products.\n * @param cartLine - The checkout shipping cart line info props.\n * @returns Number of products.\n */\n private readonly _countItems = (cartlines: ICheckoutShippingCartLineInfo[]): number => {\n return cartlines.reduce((count, line) => {\n return count + (line.quantity || 0);\n }, 0);\n };\n}\n\nexport default CheckoutShippingAddress;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutBillingAddressViewProps } from './checkout-billing-address';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\n return (\n \n {items.map((item: IAddressShowItem) => {\n return <>{item.description};\n })}\n \n );\n};\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address Heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - IAddressError.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - AddressForm Node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Checkout Billing Address View Component.\n * @param props - Props.\n * @returns - CheckoutBillingAddress Module.\n */\nconst CheckoutBillingAddressView: React.FC = props => {\n const {\n CheckoutBillingAddress,\n checkoutErrorRef,\n alert,\n viewState,\n heading,\n sameAsShippingCheckbox,\n showAddress,\n showAddOrUpdateAddress\n } = props;\n\n return (\n \n {heading}\n {alert}\n {viewState.isShowSameAsShippingCheckbox && sameAsShippingCheckbox}\n {viewState.isShowAddress && }\n {viewState.isShowAddOrUpdateAddress && }\n \n );\n};\n\nexport default CheckoutBillingAddressView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressSelectItem, IAddressSelectProps } from '../../common/components/address-select';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutShippingAddressViewProps } from './checkout-shipping-address';\nimport { IShipMultipleAddressesViewProps } from '../../common/components/address-ship-multiple';\nimport { IShipMultipleAddressesLineViewProps } from '../../common/components/address-ship-multiple-lines';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\n return (\n \n {items.map((item: IAddressShowItem) => {\n return <>{item.description};\n })}\n \n );\n};\n\n/**\n * Address Select Component.\n * @param param0 - Root param.\n * @param param0.SelectAddress - Select address.\n * @param param0.shipMultipleAddressesButton - Ship to multiple addresses button.\n * @param param0.addButton - Add button.\n * @param param0.items - IAddressSelectItem[].\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - SelectAddress Node.\n */\nconst AddressSelect: React.FC = ({\n SelectAddress,\n shipMultipleAddressesButton,\n addButton,\n items,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n \n {addButton}\n {shipMultipleAddressesButton}\n \n {items.map((item: IAddressSelectItem) => {\n const SelectItem = item.SelectItem;\n return (\n \n {item.input}\n \n \n );\n })}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Address Ship Multiple Component.\n * @param param0 - Root param.\n * @param param0.ShipMultipleAddress - Ship multiple address form.\n * @param param0.shipSingleAddressButton - Ship single address button.\n * @param param0.clearSelectionButton - Clear selection button.\n * @param param0.addressDropdown - Address dropdown button.\n * @param param0.ProductsTable - Products table component.\n * @param param0.ProductsTableHeading - Products table heading component.\n * @param param0.ProductsTableRow - Products table row component.\n * @param param0.shipMultipleAddressLines - Ship multiple address lines.\n * @param param0.hasError - Boolean.\n * @param param0.error - Error message.\n * @returns Address ship multiple component node.\n */\nconst AddressShipMultiple: React.FC = ({\n ShipMultipleAddress,\n shipSingleAddressButton,\n clearSelectionButton,\n addressDropdown,\n ProductsTable,\n ProductsTableHeading,\n ProductsTableRow,\n shipMultipleAddressLines,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton,\n isMobile\n}) => {\n if (ShipMultipleAddress && isMobile !== undefined) {\n if (!isMobile) {\n return (\n \n {shipSingleAddressButton}\n \n {clearSelectionButton}\n\n {addressDropdown}\n \n {ProductsTable && shipMultipleAddressLines && shipMultipleAddressLines.length > 0 && (\n \n {ProductsTableHeading}\n \n {shipMultipleAddressLines &&\n shipMultipleAddressLines.map((line: IShipMultipleAddressesLineViewProps) => {\n return _renderShipMultipleAddressLine(line, isMobile, ProductsTableRow);\n })}\n \n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n } else {\n return (\n \n {shipSingleAddressButton}\n {addressDropdown}\n {ProductsTable && shipMultipleAddressLines && shipMultipleAddressLines.length > 0 && (\n \n {ProductsTableHeading}\n \n {shipMultipleAddressLines &&\n shipMultipleAddressLines.map((line: IShipMultipleAddressesLineViewProps) => {\n return _renderShipMultipleAddressLine(line, isMobile, ProductsTableRow);\n })}\n \n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n }\n } else {\n return null;\n }\n};\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - Error message.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns Address add update component node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\nconst _renderShipMultipleAddressLine = (\n shipMultipleAddressesLine: IShipMultipleAddressesLineViewProps,\n isMobile: boolean,\n ProductsTableRow?: INodeProps\n): JSX.Element | null => {\n if (!shipMultipleAddressesLine) {\n return null;\n }\n\n const {\n selectLine,\n productImage,\n productNumber,\n productInfo,\n productPrice,\n productQuantity,\n productAddress\n } = shipMultipleAddressesLine;\n\n if (!isMobile) {\n return (\n \n {selectLine}\n \n
{productImage}
\n
{productNumber}
\n \n {productInfo}\n {productPrice}\n {productQuantity}\n {productAddress}\n
\n );\n } else {\n return (\n \n \n {selectLine}\n \n {productImage}\n {productInfo}\n {`QTY: ${productQuantity}`}\n \n {productPrice}\n \n \n {productAddress}\n \n \n );\n }\n};\n\n/**\n * Checkout Shipping Address View Component.\n * @param props - Props.\n * @returns - CheckoutShippingAddress Module.\n */\nconst CheckoutShippingAddressView: React.FC = props => {\n const {\n CheckoutShippingAddress,\n checkoutErrorRef,\n alert,\n viewState,\n showAddress,\n showAddressSelect,\n showAddOrUpdateAddress,\n showShipMultipleAddresses,\n cartLineImages\n } = props;\n\n return (\n \n {alert}\n {!viewState.isShowShipMultipleAddress && cartLineImages}\n {viewState.isShowAddress && }\n {viewState.isShowAddresList && }\n {viewState.isShowAddOrUpdateAddress && }\n {viewState.isShowShipMultipleAddress && (\n \n )}\n \n );\n};\n\nexport default CheckoutShippingAddressView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport enum AddressItemDisplayType {\n Input = 'Input',\n Dropdown = 'Dropdown',\n Checkbox = 'Checkbox'\n}\n\nexport enum AddressValidationRuleType {\n Required = 'Required',\n Format = 'Format',\n MaxLength = 'MaxLength'\n}\n\nexport enum AddressItemType {\n Name = 1001,\n Phone = 1002,\n IsPrimary = 1003,\n AddressTypeValue = 1004,\n ZipCode = 1,\n City = 2,\n County = 3,\n State = 4,\n ThreeLetterISORegionName = 5,\n Street = 6,\n DistrictName = 7,\n StreetNumber = 8,\n BuildingCompliment = 9,\n Postbox = 10,\n House_RU = 21,\n Flat_RU = 22,\n CountryOKSMCode_RU = 23\n}\n\nexport interface IAddressItem {\n name: string;\n type: AddressItemType;\n label: string;\n maxLength: number;\n displayType: AddressItemDisplayType;\n validationRules?: IAddressValidationRule[];\n isNewLine: boolean;\n}\n\nexport interface IAddressValidationRule {\n type: AddressValidationRuleType;\n regEx: string;\n message: string;\n}\n\nexport interface IAddressDropdownsData {\n [index: string]: { key?: string | number; value?: string }[];\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAdressCheckbox {\n id?: string;\n name?: string;\n className: string;\n type: string;\n isChecked: boolean;\n autoFocus?: boolean;\n additionalAddributes?: object;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Address checkbox.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressCheckboxFunctionComponent: React.FC = (props: IAdressCheckbox) => {\n const {\n id: itemId,\n name,\n className,\n type,\n isChecked,\n additionalAddributes,\n telemetryContent,\n autoFocus: shouldBeAutoFocused,\n onChange\n } = props;\n\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default AddressCheckboxFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { get } from 'mobx';\nimport * as React from 'react';\n\nimport {\n AddressItemDisplayType,\n AddressItemType,\n AddressValidationRuleType,\n IAddressDropdownsData,\n IAddressItem,\n IAddressValidationRule\n} from '../address-format.data';\nimport { AddressType, IAddressResource, IAddressResponse } from '../address-module.data';\nimport AddressAlertComponent from './address-alert';\nimport AddressButtonComponent from './address-button';\nimport AdressCheckboxComponent from './address-checkbox';\nimport AdressDropdownComponent from './address-dropdown';\nimport AddressErrorMessageComponent from './address-error-message';\nimport AddressErrorTitleComponent from './address-error-title';\nimport AddressInputComponent from './address-input';\nimport AddressLabelComponent from './address-label';\n\nexport interface IAddressAddInputProps {\n isUpdating?: boolean;\n hasError?: boolean;\n hasExternalSubmitGroup?: boolean;\n addressType: AddressType;\n addressFormat: IAddressItem[];\n defaultCountryRegionId: string;\n defaultAddressType: number;\n selectedAddress?: Address;\n dropdownDisplayData: IAddressDropdownsData;\n resources: IAddressResource;\n addressActionResponse?: IAddressResponse;\n addAddressHeading?: HeadingData;\n editAddressHeading?: HeadingData;\n validationError?: object;\n telemetryContent?: ITelemetryContent;\n shouldAutoFocus?: boolean;\n onInputChange(event: React.ChangeEvent): void;\n onDropdownChange(event: React.ChangeEvent): void;\n onSave?(): void;\n onCancel?(): void;\n}\n\nexport interface IAddressError {\n AddressError: INodeProps;\n title: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAddressAddItem {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAddressAddUpdateProps {\n AddressForm: INodeProps;\n heading: React.ReactNode;\n items: IAddressAddItem[];\n hasError: boolean;\n error: IAddressError;\n isShowSaveButton: boolean;\n saveButton: React.ReactNode;\n isShowCancelButton: boolean;\n cancelButton: React.ReactNode;\n}\n\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\n const requriedRule = (validationRules || []).find(validationRule => {\n return validationRule.type === AddressValidationRuleType.Required;\n });\n\n return requriedRule ? { 'aria-required': true } : {};\n};\n\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps): IAddressAddItem[] => {\n const {\n addressFormat,\n addressType,\n dropdownDisplayData,\n defaultCountryRegionId,\n defaultAddressType,\n validationError = {},\n onInputChange,\n onDropdownChange,\n shouldAutoFocus\n } = props;\n\n return addressFormat.map((addressFormatItem, index) => {\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\n const errorMessage = get(validationError, addressFormatItem.name);\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, {\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\n 'address-form__item-invalid': errorMessage\n });\n let input;\n\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\n input = (\n \n );\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\n input = (\n \n );\n } else {\n const displayData = dropdownDisplayData[addressFormatItem.name];\n let selectedValue = selectedAddress[addressFormatItem.name];\n\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\n selectedValue = selectedValue || defaultCountryRegionId;\n }\n\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\n selectedValue = selectedValue || defaultAddressType;\n }\n\n input = (\n \n );\n }\n\n return {\n key: addressFormatItem.name,\n AddressItem: { className, id: `${elementId}_container` },\n label: ,\n alert: ,\n input\n };\n });\n};\n\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\n const {\n editAddressHeading,\n addAddressHeading,\n selectedAddress = {},\n resources,\n hasError,\n onCancel,\n onSave,\n hasExternalSubmitGroup,\n isUpdating,\n addressActionResponse,\n telemetryContent\n } = props;\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\n\n return {\n AddressForm: { className: 'msc-address-form' },\n heading: heading && ,\n items: getAddessItems(selectedAddress, props),\n isShowSaveButton: !hasExternalSubmitGroup,\n saveButton: onSave && (\n \n ),\n isShowCancelButton: !hasExternalSubmitGroup,\n cancelButton: onCancel && (\n \n ),\n hasError: hasError || false,\n error: {\n AddressError: { className: 'msc-address-form__error' },\n title: addressActionResponse && addressActionResponse.errorTitle && (\n \n ),\n message: addressActionResponse && addressActionResponse.errorMessage && (\n \n )\n }\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAddressButton {\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n role?: string;\n onClick(event: React.MouseEvent): void;\n}\n\n/**\n * Address button.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressButtonFunctionComponent: React.FC = (props: IAddressButton) => {\n const { className, text, ariaLabel, disabled: isDisabled, telemetryContent, onClick, role } = props;\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default AddressButtonFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { AddressItemType, IAddressItem } from '../address-format.data';\nimport AddressDetailItemComponent from './address-detail-item';\n\nexport interface IAddressShowItem {\n key: string;\n description: React.ReactNode;\n}\n\nexport interface IAddressShowProps {\n AddressDetail: INodeProps;\n items: IAddressShowItem[];\n}\n\nexport interface IAddressShowInputProps {\n addressFormat: IAddressItem[];\n address: Address;\n addressPurposes: AddressPurpose[];\n}\n\nexport const AddressShow = (props: IAddressShowInputProps): IAddressShowProps => {\n const { addressFormat, addressPurposes, address } = props;\n\n return {\n AddressDetail: { className: 'msc-address-detail' },\n items: addressFormat.map(item => {\n if (item.name === AddressItemType[AddressItemType.AddressTypeValue]) {\n const addressType = addressPurposes.find(\n addressTypeValue => addressTypeValue.AddressType.toString() === (address[item.name] || '').toString()\n );\n if (addressType) {\n const addressTypeDescription = addressType.Description || '';\n return {\n key: item.name,\n description: (\n \n )\n };\n }\n }\n return {\n key: item.name,\n description: (\n \n )\n };\n })\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\nimport {\n Address,\n AddressPurpose,\n CountryRegionInfo,\n StateProvinceInfo\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n addAddress,\n AddressManagementInput,\n ArrayExtensions,\n updateAddress,\n updatePrimaryAddress\n} from '@msdyn365-commerce-modules/retail-actions';\n\nimport { getAddressPurposesAction, GetAddressPurposesInput } from '../actions/get-address-purposes';\nimport { getStateProvinceAction, GetStateProvincesInput } from '../actions/get-state-provinces';\nimport { IAddressResource, IAddressResponse } from './address-module.data';\n\n/**\n *\n * Address common.\n */\nexport class AddressCommon {\n private readonly context: ICoreContext;\n\n private readonly resources: IAddressResource;\n\n private readonly telemetry: ITelemetry;\n\n constructor(context: ICoreContext, resources: IAddressResource, telemetry: ITelemetry) {\n this.context = context;\n this.resources = resources;\n this.telemetry = telemetry;\n }\n\n public getDefaultCountryRegionId = (countryRegionId: string, countryRegions: CountryRegionInfo[], market?: string): string => {\n const marketISOCode = market || 'US';\n const currentCountryRegion = countryRegions.find(countryRegion => (countryRegion.ISOCode || '') === marketISOCode);\n return (currentCountryRegion && currentCountryRegion.CountryRegionId) || countryRegionId;\n };\n\n public parseRetailException = (resources: IAddressResource): IAddressResponse => {\n return {\n errorTitle: resources.addressErrorMessageTitle,\n errorMessage: resources.addressGenericErrorMessage\n };\n };\n\n public isAuthenticatedFlow = (): boolean => {\n return this.context.request.user.isAuthenticated;\n };\n\n public getStateProvinces = async (countryRegionId: string): Promise => {\n let response: StateProvinceInfo[] = [];\n if (this.context && this.context.actionContext) {\n try {\n const input = new GetStateProvincesInput(countryRegionId, this.context.request.apiSettings);\n response = await getStateProvinceAction(input, this.context.actionContext);\n } catch (error) {\n if (this.telemetry) {\n this.telemetry.error(`Error encountered ${error}`);\n this.telemetry.debug('Unable to get state provinces');\n }\n }\n }\n return Promise.resolve(response);\n };\n\n // For any address, check for common requried field else treat it as invalid\\empty address.\n public isEmpty = (address: Address): boolean => {\n if (address && address.ThreeLetterISORegionName && (address.State || address.City)) {\n return false;\n }\n\n return true;\n };\n\n public addCustomerAddress = async (address: Address): Promise => {\n await this.updateLogisticsLocationRoleRecordId(address);\n return this.submitCustomerAddress(addAddress, address);\n };\n\n public updateCustomerAddress = async (address: Address): Promise => {\n await this.updateLogisticsLocationRoleRecordId(address);\n return this.submitCustomerAddress(updateAddress, address);\n };\n\n public updateCustomerPrimaryAddress = async (address: Address): Promise => {\n return this.submitCustomerAddress(updatePrimaryAddress, address);\n };\n\n private readonly submitCustomerAddress = async (\n addressAction: IObservableAction,\n address: Address\n ): Promise => {\n address.AddressTypeValue = address.AddressTypeValue || 7; // 7 sets it to HOME by default\n\n const input = new AddressManagementInput(address);\n return this.execAddressAction(addressAction, input, address);\n };\n\n private readonly execAddressAction = async (\n addressAction: IObservableAction,\n input: IActionInput | IActionInput[],\n address: Address\n ): Promise => {\n let response: IAddressResponse = {};\n\n if (this.context && this.context.actionContext) {\n try {\n const addresses = await addressAction(input, this.context.actionContext);\n if (addresses.length > 0) {\n response.address = address.RecordId ? address : addresses[addresses.length - 1];\n } else {\n response.address = address;\n }\n response.customerAddresses = addresses;\n } catch (error) {\n if (this.telemetry) {\n this.telemetry.error(`Error encountered ${error}`);\n this.telemetry.debug('Unable to exec address action');\n }\n response = this.parseRetailException(this.resources);\n }\n }\n return Promise.resolve(response);\n };\n\n /**\n * Function to get the address purposes and update the LogisticsLocationRoleRecordId to update the address type.\n * @param address - Address object.\n * @returns Returns void.\n */\n private readonly updateLogisticsLocationRoleRecordId = async (address: Address): Promise => {\n let addressPurposes: AddressPurpose[] = [];\n try {\n const input: GetAddressPurposesInput = new GetAddressPurposesInput(this.context.request.apiSettings);\n addressPurposes = await getAddressPurposesAction(input, this.context.actionContext);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- Supparsing the any type for error.\n this.telemetry.error(`Error encountered ${error}`);\n this.telemetry.debug('Unable to get address purposes');\n }\n if (ArrayExtensions.hasElements(addressPurposes)) {\n const addressPurpose: AddressPurpose | undefined = addressPurposes.find(\n purpose => purpose.AddressType === address.AddressTypeValue\n );\n if (addressPurpose) {\n address.LogisticsLocationRoleRecordId = addressPurpose.RecordId;\n }\n }\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Address,\n AddressPurpose,\n CountryRegionInfo,\n StateProvinceInfo\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { get, set } from 'mobx';\n\nimport { AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule } from './address-format.data';\nimport { AddressMetaData } from './address-meta-data';\n\n/**\n *\n * Retail Service Address format parser.\n */\nexport class AddressFormat {\n private readonly countryRegionsInfo?: CountryRegionInfo[];\n\n private readonly addressPurposes?: AddressPurpose[];\n\n private readonly addressMetaData: AddressMetaData;\n\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\n this.countryRegionsInfo = countryRegionsInfo;\n this.addressMetaData = addressMetaData;\n this.addressPurposes = addressPurposes;\n }\n\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\n if (countryRegionInfo) {\n return this._getAddressDisplayFormat(countryRegionInfo);\n }\n return [];\n }\n\n public getCountryFormat(): { key?: string; value?: string }[] {\n return (this.countryRegionsInfo || []).map(countryRegion => {\n return {\n key: countryRegion.CountryRegionId,\n value: countryRegion.ShortName\n };\n });\n }\n\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\n return (stateProvinceInfo || []).map(state => {\n return {\n key: state.StateId,\n value: state.StateName\n };\n });\n }\n\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\n return (this.addressPurposes || []).map(addressPurpose => {\n return {\n key: addressPurpose.AddressType,\n value: addressPurpose.Description\n };\n });\n }\n\n public getPrefilledAddressDropdownData = (\n stateDefaultSelectionText: string,\n stateProvinceInfo?: StateProvinceInfo[]\n ): IAddressDropdownsData => {\n const defaultStateText = {\n key: '',\n value: stateDefaultSelectionText\n };\n const dropdownData: IAddressDropdownsData = {};\n\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\n\n return dropdownData;\n };\n\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\n\n return countryRegionInfo!.ISOCode;\n };\n\n public validateAddressFormat = (\n address: Address,\n validationError: Address,\n countryRegionId: string,\n propertyName?: string\n ): boolean => {\n let isValid: boolean = true;\n let validationtor;\n const addressFormat = this.getAddressFormat(address.ThreeLetterISORegionName || countryRegionId);\n\n addressFormat.forEach(addressFormatItem => {\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\n validationtor = this._inputValidation(addressFormatItem, validationError, address);\n if (validationtor !== undefined) {\n isValid = validationtor;\n }\n }\n });\n\n return isValid;\n };\n\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\n const address: Address = {};\n\n // Zip Code\n if (result.address.postalCode !== undefined) {\n address.ZipCode = result.address.postalCode;\n } else {\n address.ZipCode = '';\n }\n\n // State\n if (stateProvinceInfo) {\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\n if (!selectedState) {\n address.State = '';\n address.StateName = result.address.adminDistrict;\n } else {\n address.State = selectedState.StateId;\n address.StateName = selectedState.StateName;\n }\n }\n\n // Street\n if (result.address.addressLine !== undefined) {\n address.Street = result.address.addressLine;\n } else {\n address.Street = ' ';\n }\n\n // City\n if (result.address.locality !== undefined) {\n address.City = result.address.locality;\n } else {\n address.City = '';\n }\n\n // District\n if (result.address.district !== undefined) {\n address.DistrictName = result.address.district;\n address.CountyName = result.address.district;\n } else {\n address.DistrictName = '';\n }\n\n // Formatted Address\n address.FullAddress = result.address.formattedAddress;\n\n return address;\n };\n\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address): boolean | undefined {\n set(validationError, { [addressFormatItem.name]: null });\n for (const validationRule of addressFormatItem.validationRules || []) {\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\n set(validationError, { [addressFormatItem.name]: validationRule.message });\n return false;\n }\n }\n return undefined;\n }\n\n private readonly _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\n if (validationRule.regEx && validationRule.regEx.length > 0) {\n const regex = new RegExp(validationRule.regEx);\n return regex.test((get(address, propertyName) as string) || '');\n }\n return true;\n };\n\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\n return (this.countryRegionsInfo || []).find(countryRegion => {\n return (countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase();\n });\n }\n\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\n const addressDisplayItem: IAddressItem[] = [];\n\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\n if (AddressTypeItem) {\n addressDisplayItem.push(AddressTypeItem);\n }\n\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\n if (nameDisplayItem) {\n addressDisplayItem.push(nameDisplayItem);\n }\n\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\n if (formatLine.AddressComponentNameValue) {\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\n if (addressItem) {\n addressItem.isNewLine = formatLine.NewLine || false;\n addressDisplayItem.push(addressItem);\n }\n }\n });\n\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\n if (phoneDisplayItem) {\n addressDisplayItem.push(phoneDisplayItem);\n }\n\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\n if (isPrimaryDisplayItem) {\n addressDisplayItem.push(isPrimaryDisplayItem);\n }\n }\n\n return addressDisplayItem;\n }\n\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\n const addressItem = this.addressMetaData.getItemFormat(type);\n if (addressItem) {\n addressItem.isNewLine = isNewLine;\n }\n return addressItem;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PhoneRegex } from '@msdyn365-commerce-modules/retail-actions';\n\nimport {\n AddressItemDisplayType,\n AddressItemType,\n AddressValidationRuleType,\n IAddressItem,\n IAddressValidationRule\n} from './address-format.data';\nimport { IAddressResource } from './address-module.data';\n\n/**\n * Address meta data.\n */\nexport class AddressMetaData {\n private readonly metaData: IAddressItem[] = [];\n\n private readonly resources: IAddressResource;\n\n private readonly requiredFieldRegEx: string = '\\\\S';\n\n private readonly maxLengthRegEx: string = '^.{0,20}$';\n\n private readonly resourcesPrefix: string = 'address';\n\n private readonly maxLength: number = 64;\n\n private readonly requiredFields: AddressItemType[];\n\n private readonly excludedTypes: AddressItemType[];\n\n constructor(resources: IAddressResource, excluded?: AddressItemType[], required?: AddressItemType[]) {\n this.resources = resources || {};\n this.excludedTypes = excluded || [];\n this.requiredFields =\n required !== undefined\n ? required\n : [\n AddressItemType.AddressTypeValue,\n AddressItemType.Name,\n AddressItemType.ZipCode,\n AddressItemType.City,\n AddressItemType.State,\n AddressItemType.ThreeLetterISORegionName,\n AddressItemType.Street\n ];\n this._init();\n }\n\n public getItemFormat(id: number): IAddressItem | undefined {\n return this.metaData.find(item => {\n return item.type === id;\n });\n }\n\n private _init(): void {\n this._addItem(AddressItemType.Name, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.Phone, AddressItemDisplayType.Input, PhoneRegex.defaultRegex);\n this._addItem(AddressItemType.ZipCode, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.City, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.County, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.State, AddressItemDisplayType.Dropdown);\n this._addItem(AddressItemType.ThreeLetterISORegionName, AddressItemDisplayType.Dropdown);\n this._addItem(AddressItemType.Street, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.DistrictName, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.StreetNumber, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.BuildingCompliment, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.Postbox, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.House_RU, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.Flat_RU, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.CountryOKSMCode_RU, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.AddressTypeValue, AddressItemDisplayType.Dropdown);\n this._addItem(AddressItemType.IsPrimary, AddressItemDisplayType.Checkbox);\n }\n\n private _addItem(type: AddressItemType, displayType: AddressItemDisplayType, format?: string): void {\n if (this.excludedTypes.includes(type)) {\n return;\n }\n\n const nameKey = AddressItemType[type].replace('_', '');\n\n // Find out if currentItem is required field\n const validationRules = this._validationRules(type, nameKey, format);\n const isRequired = validationRules.some(rule => rule.type === AddressValidationRuleType.Required);\n\n // If no optional string is provided in resource file, use the original label text\n const optionalString =\n this.resources[`${this.resourcesPrefix}${nameKey}LabelOptional`] || this.resources[`${this.resourcesPrefix}${nameKey}Label`];\n const item: IAddressItem = {\n type,\n displayType,\n name: AddressItemType[type],\n label: isRequired ? this.resources[`${this.resourcesPrefix}${nameKey}Label`] : optionalString,\n maxLength: this.maxLength,\n validationRules,\n isNewLine: true\n };\n\n this.metaData.push(item);\n }\n\n private _validationRules(type: AddressItemType, name: string, format?: string): IAddressValidationRule[] {\n const validationRules: IAddressValidationRule[] = [];\n\n for (const ruleType of Object.keys(AddressValidationRuleType)) {\n const key = `${this.resourcesPrefix}${name}${ruleType}`;\n const message: string = this.resources[`${key}ErrorMessage`];\n switch (ruleType) {\n case AddressValidationRuleType.Required: {\n if (this.requiredFields.find((itemType: AddressItemType) => itemType === type)) {\n validationRules.push(this._validationRule(ruleType, this.requiredFieldRegEx, message));\n }\n break;\n }\n case AddressValidationRuleType.Format: {\n validationRules.push(this._validationRule(ruleType, format!, message));\n break;\n }\n case AddressValidationRuleType.MaxLength: {\n if (type === AddressItemType.Phone) {\n validationRules.push(this._validationRule(ruleType, this.maxLengthRegEx, message));\n }\n\n break;\n }\n default:\n }\n }\n return validationRules;\n }\n\n private _validationRule(type: AddressValidationRuleType, regEx: string, message: string): IAddressValidationRule {\n return {\n type,\n regEx,\n message\n };\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Address } from '@msdyn365-commerce/retail-proxy';\nimport { Heading } from '@msdyn365-commerce-modules/data-types';\n\nexport enum AddressOperation {\n Add = 'Add',\n Show = 'Show',\n Update = 'Update',\n List = 'List',\n Multiple = 'Multiple'\n}\n\nexport enum AddressType {\n Shipping = 'Shipping',\n Billing = 'Billing',\n Invoice = 'Invoice',\n Company = 'Company'\n}\n\nexport interface IDropdownDisplayData {\n [index: string]: { key?: string; value?: string }[];\n}\n\nexport interface IAddressResponse {\n errorTitle?: string;\n errorMessage?: string;\n customerAddresses?: Address[];\n address?: Address;\n}\n\nexport interface IAddressConfig {\n heading?: Heading;\n primaryAddressSectionHeading?: Heading;\n otherAddressSectionHeading?: Heading;\n addAddressHeading?: Heading;\n editAddressHeading?: Heading;\n}\n\nexport interface IAddressResource {\n addressChangeCheckboxAriaLabel: string;\n addressAddButtonText: string;\n addressAddButtonAriaLabel: string;\n addressAddNewButtonText?: string;\n addressAddNewButtonAriaLabel?: string;\n addressPrimaryButtonText: string;\n addressPrimaryButtonAriaLabel: string;\n addressEditButtonText: string;\n addressEditButtonAriaLabel: string;\n addressRemoveButtonText: string;\n addressRemoveButtonAriaLabel: string;\n addressSaveButtonText: string;\n addressSaveButtonAriaLabel: string;\n addressCancelButtonText: string;\n addressCancelButtonAriaLabel: string;\n addressStateDefaultSelectionText: string;\n addressNameLabel: string;\n addressNameLabelOptional?: string;\n addressNameRequiredErrorMessage: string;\n addressPhoneLabel: string;\n addressPhoneLabelOptional?: string;\n addressPhoneRequiredErrorMessage: string;\n addressPhoneMaxLengthErrorMessage?:string;\n addressZipCodeLabel: string;\n addressZipCodeLabelOptional?: string;\n addressZipCodeRequiredErrorMessage: string;\n addressCityLabel: string;\n addressCityLabelOptional?: string;\n addressCityRequiredErrorMessage: string;\n addressCountyLabel: string;\n addressCountyLabelOptional?: string;\n addressCountyRequiredErrorMessage: string;\n addressStateLabel: string;\n addressStateLabelOptional?: string;\n addressStateRequiredErrorMessage: string;\n addressThreeLetterISORegionNameLabel: string;\n addressThreeLetterISORegionNameLabelOptional?: string;\n addressThreeLetterISORegionNameRequiredErrorMessage: string;\n addressStreetRequiredErrorMessage: string;\n addressDistrictLabel: string;\n addressDistrictLabelOptional?: string;\n addressDistrictNameLabel: string;\n addressDistrictNameLabelOptional?: string;\n addressDistrictRequiredErrorMessage: string;\n addressStreetNumberLabel: string;\n addressStreetNumberLabelOptional?: string;\n addressStreetNumberRequiredErrorMessage: string;\n addressBuildingComplimentLabel: string;\n addressBuildingComplimentLabelOptional?: string;\n addressBuildingComplimentRequiredErrorMessage: string;\n addressPostboxLabel: string;\n addressPostboxLabelOptional?: string;\n addressPostboxRequiredErrorMessage: string;\n addressHouseRULabel: string;\n addressHouseRULabelOptional?: string;\n addressHouseRURequiredErrorMessage: string;\n addressFlatRULabel: string;\n addressFlatRULabelOptional?: string;\n addressFlatRURequiredErrorMessage: string;\n addressCountryOKSMCodeRULabel: string;\n addressCountryOKSMCodeRURequiredErrorMessage: string;\n addressErrorMessageTitle: string;\n addressGenericErrorMessage: string;\n addressEmptyListAddressMessage: string;\n removeAddressNotification?: string;\n addressProductImage?: string;\n addressProductNumberText?: string;\n addressProductText?: string;\n addressProductUnitPriceText?: string;\n addressProductUOMText?: string;\n addressProductQuantityText?: string;\n addressProductActionsText?: string;\n addressSelectAllRowsText?: string;\n addressProductAddressText?: string;\n addressShipMultipleText?: string;\n addressShipMultipleAriaLabel?: string;\n saveAndContinueBtnLabel?: string;\n addressShipSingleText?: string;\n addressShipSingleAriaLabel?: string;\n clearSelectionButtonText?: string;\n clearSelectionButtonAriaLabel?: string;\n chooseAddressForSelectedItemsText?: string;\n chooseAddressForSelectedItemsAriaLabel?: string;\n noAddressSelectedAriaLabel?: string;\n unavailableProductErrorMessage?: string;\n outOfStockProductErrorMessage?: string;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAdressErrorMessage {\n message: string;\n}\n\n/**\n * Address error message.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressErrorMessageFunctionComponent: React.FC = (props: IAdressErrorMessage) => {\n const { message } = props;\n\n return

{message}

;\n};\n\nexport default AddressErrorMessageFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAdressErrorTitle {\n title: string;\n}\n\n/**\n * Address error title.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressErrorTitleFunctionComponent: React.FC = (props: IAdressErrorTitle) => {\n const { title } = props;\n\n return

{title}

;\n};\n\nexport default AddressErrorTitleFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAdressInput {\n id?: string;\n name?: string;\n className: string;\n type: string;\n value: string;\n maxLength?: number;\n autoFocus?: boolean;\n additionalAddributes?: object;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Address input.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressInputFunctionComponent: React.FC = (props: IAdressInput) => {\n const {\n id: itemId,\n name,\n className,\n type,\n value,\n maxLength,\n additionalAddributes,\n autoFocus: shouldUseAutoFocus,\n telemetryContent,\n onChange\n } = props;\n\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default AddressInputFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AddressFormat } from '../address-format';\nimport { IAddressResource, IAddressResponse } from '../address-module.data';\nimport AddressButtonComponent from './address-button';\nimport AddressErrorMessageComponent from './address-error-message';\nimport AddressErrorTitleComponent from './address-error-title';\nimport { AddressShow, IAddressShowProps } from './address-show';\n\nexport interface IAddressListError {\n Error: INodeProps;\n isShowError: boolean;\n title: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAddressListItem {\n Item: INodeProps;\n key: number;\n error: IAddressListError;\n showItems: IAddressShowProps;\n isShowPrimaryButton: boolean;\n primaryButton: React.ReactNode;\n editButton: React.ReactNode;\n removeButton: React.ReactNode;\n}\n\nexport interface IAddressList {\n List: INodeProps;\n isShowList: boolean;\n heading: React.ReactNode;\n items: IAddressListItem[];\n}\n\nexport interface IAddressListProps {\n ListAddress: INodeProps;\n heading: React.ReactNode;\n isShowEmptyListMessage: boolean;\n emptyListMessage: React.ReactNode;\n addButton: React.ReactNode;\n primaryAddressList: IAddressList;\n otherAddressList: IAddressList;\n}\n\nexport interface IAddressListInputProps {\n isUpdating?: boolean;\n selectedAddress?: Address;\n addressFormat: AddressFormat;\n addresses: Address[];\n addressPurposes: AddressPurpose[];\n heading?: HeadingData;\n primaryAddressSectionHeading?: HeadingData;\n otherAddressSectionHeading?: HeadingData;\n addressActionResponse?: IAddressResponse;\n resources: IAddressResource;\n contextRequest: Msdyn365.IRequestContext;\n telemetryContent?: ITelemetryContent;\n handleLineItemHeadingChange?(event: Msdyn365.ContentEditableEvent): void;\n onAddAddress(): void;\n onEditAddress(address?: Address): void;\n onRemoveAddress(address?: Address): void;\n onUpdatePrimaryAddress(address: Address): void;\n canRenderAsyncCustomerDataAsUnmodifiable?: boolean;\n isAsyncCustomer?: boolean;\n isAsyncCustomerAddressCreationFeatureEnabled?: boolean;\n isEditAsyncCustomerFeatureEnabled?: boolean;\n}\n\nconst getButtonAriaLabel = (ariaLabel: string, addressName?: string): string => {\n return ariaLabel.replace('{addressName}', addressName || '');\n};\n\nconst getAddressList = (\n className: string,\n addresses: Address[],\n showPrimaryButton: boolean,\n props: IAddressListInputProps,\n heading?: HeadingData\n): IAddressList => {\n const {\n resources,\n isUpdating,\n addressActionResponse,\n selectedAddress,\n addressFormat,\n onEditAddress,\n onRemoveAddress,\n onUpdatePrimaryAddress,\n addressPurposes,\n telemetryContent\n } = props;\n const { errorTitle = null, errorMessage = null } = addressActionResponse || {};\n\n return {\n List: { className },\n isShowList: addresses.length > 0,\n heading: heading && ,\n items: addresses.map(\n (address: Address): IAddressListItem => {\n const isSelectedAddress = selectedAddress && selectedAddress.RecordId === address.RecordId;\n const isShowError = isSelectedAddress && errorTitle && errorMessage;\n\n // Disable 'primary', 'edit', and 'remove' buttons if the customer IS EITHER async OR async address creation feature is enabled and edit async customer feature is disabled.\n // Conversely, these buttons can only be enabled when the customer is NOT async AND the address creation feature is disabled.\n const isInvalidAsyncState: boolean =\n props.isEditAsyncCustomerFeatureEnabled || false\n ? false\n : (props.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (props.isAsyncCustomer || false || props.isAsyncCustomerAddressCreationFeatureEnabled || false);\n\n return {\n Item: { className: `${className}-list` },\n key: address.RecordId || 0,\n showItems: AddressShow({\n addressFormat: addressFormat.getAddressFormat(address.ThreeLetterISORegionName || ''),\n address,\n addressPurposes\n }),\n error: {\n Error: { className: `${className}-error` },\n isShowError: !!isShowError,\n title: ,\n message: \n },\n isShowPrimaryButton: showPrimaryButton,\n\n primaryButton: (\n {\n onUpdatePrimaryAddress(address);\n }\n }}\n />\n ),\n editButton: (\n {\n onEditAddress(address);\n },\n role: 'link'\n }}\n />\n ),\n removeButton: (\n {\n onRemoveAddress(address);\n },\n role: 'link'\n }}\n />\n )\n };\n }\n )\n };\n};\n\nconst getPrimaryAddressList = (props: IAddressListInputProps): IAddressList => {\n const { addresses, primaryAddressSectionHeading } = props;\n const primaryAddresses = addresses.filter((address: Address) => address.IsPrimary);\n return getAddressList('msc-address-list__primary', primaryAddresses, false, props, primaryAddressSectionHeading);\n};\n\nconst getOtherAddressList = (props: IAddressListInputProps): IAddressList => {\n const { addresses, otherAddressSectionHeading } = props;\n const otherAddresses = addresses.filter((address: Address) => !address.IsPrimary);\n return getAddressList('msc-address-list__primary', otherAddresses, true, props, otherAddressSectionHeading);\n};\n\nexport const AddressList = (props: IAddressListInputProps): IAddressListProps => {\n const { addresses, heading, resources, onAddAddress, telemetryContent, handleLineItemHeadingChange } = props;\n const headingComponent = heading?.text && (\n {\n // Required\n },\n requestContext: props.contextRequest\n }}\n />\n );\n\n // IF the 'Edit async customer' feature is enabled. we won't be disabling the button in this scenario.\n // ELSE disable the 'Add' button only when the customer is async AND the 'Async Address Creation' feature is disabled.\n const disableAddButton: boolean =\n props.isEditAsyncCustomerFeatureEnabled || false\n ? false\n : (props.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (props.isAsyncCustomer || false) &&\n !(props.isAsyncCustomerAddressCreationFeatureEnabled || false);\n\n return {\n ListAddress: { className: 'ms-address-list' },\n heading: headingComponent,\n isShowEmptyListMessage: addresses.length === 0,\n emptyListMessage:

{resources.addressEmptyListAddressMessage}

,\n addButton: (\n \n ),\n primaryAddressList: getPrimaryAddressList(props),\n otherAddressList: getOtherAddressList(props)\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ITelemetry } from '@msdyn365-commerce/core';\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\n\nimport { IAutoSuggestOptions } from './address-autosuggest.data';\n\n/**\n *\n * Auto Suggest.\n */\nexport class AutoSuggest {\n public readonly excludedAddressFields: string[] = ['ThreeLetterISORegionName', 'Name', 'AddressTypeValue', 'Phone'];\n\n private readonly telemetry: ITelemetry;\n\n private readonly countryCode?: string;\n\n private readonly bingMapsApiKey?: string;\n\n private readonly defaultLanguageId?: string;\n\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\n\n private autoSuggestOptions: IAutoSuggestOptions;\n\n constructor(\n telemetry: ITelemetry,\n autoSuggestOptions: IAutoSuggestOptions,\n BingMapsApiKey?: string,\n countryCode?: string,\n defaultLanguageId?: string\n ) {\n this.telemetry = telemetry;\n this.autoSuggestOptions = autoSuggestOptions;\n this.bingMapsApiKey = BingMapsApiKey;\n this.countryCode = countryCode;\n this.defaultLanguageId = defaultLanguageId;\n }\n\n public attachAutoSuggest = (\n inputId: string,\n containerId: string,\n selectedSuggestionCallback: (result: Microsoft.Maps.ISuggestionResult) => void\n ): void => {\n if (!this.autoSuggestManager) {\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\n callback: () => {\n const options = { ...this.autoSuggestOptions, countryCode: this.countryCode };\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\n this.autoSuggestManager.attachAutosuggest(inputId, containerId, selectedSuggestionCallback);\n document.querySelector(inputId)?.setAttribute('role', 'combobox');\n setTimeout(() => {\n document.querySelector(inputId)?.setAttribute('type', 'text');\n }, 0);\n },\n errorCallback: () => {\n if (this.telemetry) {\n this.telemetry.debug('Unable to attach map auto suggest.');\n }\n },\n credentials: this.bingMapsApiKey\n });\n }\n };\n\n public changeAutoSuggestionCountryCode = (countryCode?: string): void => {\n if (this.autoSuggestManager) {\n this.autoSuggestOptions.countryCode = countryCode;\n this.autoSuggestManager.setOptions(this.autoSuggestOptions);\n }\n };\n\n public disposeAutoSuggest = (): void => {\n this.autoSuggestManager?.detachAutosuggest();\n this.autoSuggestManager?.dispose();\n this.autoSuggestManager = undefined;\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _loadMapAPI = async (storeSelectorStateManager: IStoreSelectorStateManager): Promise => {\n await storeSelectorStateManager.loadMapApi({\n key: this.bingMapsApiKey,\n lang: this.defaultLanguageId,\n market: this.countryCode\n });\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAdressAlert {\n message?: string;\n}\n\n/**\n * Address alert.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressAlertFunctionComponent: React.FC = (props: IAdressAlert) => {\n const message = props.message;\n return (\n \n {message && <>{message}}\n \n );\n};\n\nexport default AddressAlertFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAdressDropdown {\n id: string;\n name: string;\n className: string;\n value: string | number;\n additionalAddributes?: object;\n recordId?: string;\n displayData: { key?: string | number; value?: string }[];\n onChange(event: React.ChangeEvent): void;\n}\n\nconst getDropdownItem = (key?: string | number, value?: string, selectedValue?: string | number): React.ReactNode => {\n let isSelected: boolean;\n if (typeof key === 'number') {\n isSelected = key === selectedValue;\n } else {\n isSelected = typeof selectedValue === 'string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\n }\n\n return (\n \n );\n};\n\n/**\n * Address dropdown.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressDropdownFunctionComponent: React.FC = (props: IAdressDropdown) => {\n const { id: itemId, name, className, value, additionalAddributes, displayData, onChange, recordId } = props;\n\n return (\n \n {displayData && displayData.map(item => getDropdownItem(item.key, item.value, value))}\n \n );\n};\n\nexport default AddressDropdownFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAdressLabel {\n id: string;\n text: string;\n}\n\n/**\n * Address label.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressLabelFunctionComponent: React.FC = (props: IAdressLabel) => {\n const { id: itemId, text } = props;\n\n return (\n \n );\n};\n\nexport default AddressLabelFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classname from 'classnames';\nimport * as React from 'react';\n\nexport interface IAddressDetailItem {\n isNewLine: boolean;\n isShowLabel: boolean;\n labelText: string;\n name: string;\n value: string;\n}\n\n/**\n * Address details item.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressDetailItemFunctionComponent: React.FC = (props: IAddressDetailItem) => {\n const { isNewLine, isShowLabel, labelText, name, value } = props;\n\n const className = `msc-address-detail__item msc-address-detail__item-${name.toLowerCase()}`;\n const isEmpty = !(value && value.length > 0);\n const mainClass = isShowLabel\n ? `msc-address-detail__item msc-address-detail__item-address-detail_${labelText}`\n : classname(className, { 'msc-address-detail__item-empty': isEmpty, 'msc-address-detail__item-newline': isNewLine });\n return (\n \n {isShowLabel && (\n <>\n {labelText}\n \n \n )}\n {value}\n \n );\n};\n\nexport default AddressDetailItemFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { CheckoutModule, getCheckoutState, ICheckoutState } from '@msdyn365-commerce/global-state/';\n\nexport async function focusOnCheckoutError(checkoutErrorRef: React.RefObject, ctx: IActionContext): Promise {\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n checkoutErrorRef.current && checkoutErrorRef.current.scrollIntoView();\n await checkoutState.updateCheckoutErrorFocus({ newCheckoutErrorFocus: CheckoutModule.None });\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * The payment error.\n */\nexport interface IPaymentError {\n title: string;\n message: string;\n className?: string;\n}\n\n/**\n * The payment error.\n * @param param0 - First param.\n * @param param0.title - Title.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const ErrorComponent: React.FC = ({ title, message, className = 'ms-checkout-payment-instrument' }) => (\n
\n

{title}

\n

{message}

\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { format, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { AddressFormat } from '../address-format';\nimport { IAddressResource } from '../address-module.data';\nimport AddressButtonComponent from './address-button';\nimport AddressInputComponent from './address-input';\nimport { AddressShow, IAddressShowProps } from './address-show';\n\nexport interface IAddressSelectInputProps {\n hasExternalSubmitGroup?: boolean;\n addressFormat: AddressFormat;\n addresses: Address[];\n addressPurposes: AddressPurpose[];\n resources: IAddressResource;\n selectedAddress: Address;\n telemetryContent?: ITelemetryContent;\n onAddressOptionChange(event: React.ChangeEvent): void;\n onShipMultipleAddresses?(): void;\n onAddAddress(): void;\n onSave(): void;\n onCancel(): void;\n multipleAddressShippingEnabled?: boolean;\n}\n\nexport interface IAddressSelectItem {\n key: number;\n SelectItem: INodeProps;\n input: React.ReactNode;\n showItems: IAddressShowProps;\n}\n\nexport interface IAddressSelectProps {\n SelectAddress: INodeProps;\n shipMultipleAddressesButton?: React.ReactNode;\n addButton: React.ReactNode;\n items: IAddressSelectItem[];\n isShowSaveButton: boolean;\n saveButton: React.ReactNode;\n isShowCancelButton: boolean;\n cancelButton: React.ReactNode;\n}\n\nconst getInput = (index: number, address: Address, props: IAddressSelectInputProps): React.ReactNode => {\n const { addresses, onAddressOptionChange, selectedAddress, resources, addressPurposes } = props;\n const addressTypeDescription = address.AddressTypeValue\n ? addressPurposes.find(purpose => purpose.AddressType === address.AddressTypeValue)?.Description || ''\n : '';\n const ichecked = address.RecordId === selectedAddress.RecordId;\n const additionalAttributes = {\n checked: ichecked,\n 'aria-checked': ichecked,\n 'aria-setsize': addresses.length,\n 'aria-posinset': index + 1,\n 'aria-label': format(resources.addressChangeCheckboxAriaLabel, addressTypeDescription)\n };\n\n return (\n \n );\n};\n\nconst getAddressSelectItems = (props: IAddressSelectInputProps): IAddressSelectItem[] => {\n const { addresses, addressFormat, addressPurposes } = props;\n\n return addresses.map((address, index) => {\n return {\n key: address.RecordId || 0,\n SelectItem: { className: 'msc-address-select__item' },\n input: getInput(index, address, props),\n showItems: AddressShow({\n addressFormat: addressFormat.getAddressFormat(address.ThreeLetterISORegionName || ''),\n address,\n addressPurposes\n })\n };\n });\n};\n\nexport const AddressSelect = (props: IAddressSelectInputProps): IAddressSelectProps => {\n const {\n resources,\n onCancel,\n onSave,\n onAddAddress,\n onShipMultipleAddresses,\n hasExternalSubmitGroup,\n multipleAddressShippingEnabled\n } = props;\n\n return {\n SelectAddress: { className: 'msc-address-select' },\n addButton: (\n
\n \n
\n ),\n shipMultipleAddressesButton: multipleAddressShippingEnabled && onShipMultipleAddresses && (\n \n ),\n isShowSaveButton: !hasExternalSubmitGroup,\n saveButton: (\n \n ),\n isShowCancelButton: !hasExternalSubmitGroup,\n cancelButton: (\n \n ),\n items: getAddressSelectItems(props)\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport AddressInputComponent from './address-input';\n\nexport interface IAddressBillingCheckbox {\n isChecked: boolean;\n value: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\nexport const AddressBillingCheckbox: React.FC = ({\n isChecked,\n value,\n ariaLabel,\n text,\n telemetryContent,\n onChange\n}) => {\n const additionalAttributes = {\n checked: isChecked,\n 'aria-checked': isChecked\n };\n\n return (\n \n );\n};\nexport default AddressBillingCheckbox;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAddressBillingHeading {\n text: string;\n}\n\nexport const AddressBillingHeading: React.FC = ({ text }) => (\n

{text}

\n);\n\nexport default IAddressBillingHeading;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport { INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { ICoreContext } from '@msdyn365-commerce/core';\nimport { Address, CartLine } from '@msdyn365-commerce/retail-proxy';\nimport AddressButtonComponent from './address-button';\nimport { IShipMultipleAddressesTableHeadingProps, ShipMultipleAddressesTableHeading } from './address-ship-multiple-heading';\nimport { IAddressResource } from '../address-module.data';\nimport {\n IShipMultipleAddressesLineProps,\n IShipMultipleAddressesLineViewProps,\n ShipMultipleAddressesLineView\n} from './address-ship-multiple-lines';\nimport { IShipMultipleAddressesLineViewModel } from '../../modules/checkout-shipping-address';\nimport { ICartLineWithProduct, ICheckoutShippingCartLineInfo } from '../../modules/checkout-shipping-address/components';\n\nexport interface IAddressShipMultipleInputProps {\n context: ICoreContext;\n hasExternalSubmitGroup?: boolean;\n moduleId: string;\n moduleTypeName: string;\n currencyCode: string | undefined;\n resources: IAddressResource;\n shippingLines: ICartLineWithProduct[];\n shippingLineImages: ICheckoutShippingCartLineInfo[];\n selectedShippingLines: IShipMultipleAddressesLineViewModel[];\n customerAddresses: Address[];\n onSelect(line: IShipMultipleAddressesLineViewModel, isChecked: boolean): void;\n onSelectAll(isChecked: boolean): void;\n onClear(): void;\n onShippingAddressChange(shippingLine: CartLine, event: React.ChangeEvent): void;\n onBulkShippingAddressChange(event: React.ChangeEvent): void;\n onShipSingleAddress(): void;\n onSave(): void;\n onCancel(): void;\n isMobile: boolean;\n telemetryContent?: ITelemetryContent;\n}\n\nexport interface IShipMultipleAddressesViewProps {\n ShipMultipleAddress?: INodeProps;\n shipSingleAddressButton?: React.ReactNode;\n clearSelectionButton?: React.ReactNode;\n addressDropdown?: React.ReactNode;\n ProductsTable?: INodeProps;\n ProductsTableHeading?: React.ReactNode;\n ProductsTableRow?: INodeProps;\n shipMultipleAddressLines?: IShipMultipleAddressesLineViewProps[];\n isShowSaveButton?: boolean;\n saveButton?: React.ReactNode;\n isShowCancelButton?: boolean;\n cancelButton?: React.ReactNode;\n isMobile?: boolean;\n}\n\nexport const AddressShipMultiple = (props: IAddressShipMultipleInputProps): IShipMultipleAddressesViewProps => {\n const {\n context,\n currencyCode,\n hasExternalSubmitGroup,\n moduleId,\n moduleTypeName,\n shippingLines,\n shippingLineImages,\n selectedShippingLines,\n customerAddresses,\n isMobile,\n onSelect,\n onSelectAll,\n onClear,\n onShippingAddressChange,\n onBulkShippingAddressChange,\n onShipSingleAddress,\n onSave,\n onCancel,\n resources\n } = props;\n\n const { unavailableProductErrorMessage, outOfStockProductErrorMessage } = props.resources;\n\n const shipMultipleAddressLines: IShipMultipleAddressesLineViewModel[] = [];\n\n for (const line of shippingLines) {\n shipMultipleAddressLines.push({\n isChecked: false,\n cartLine: line.cartLine\n });\n }\n\n function _renderProductListHeader(): React.ReactNode {\n const headers: IShipMultipleAddressesTableHeadingProps = {\n selectAllRowsText: resources.addressSelectAllRowsText,\n productNumber: resources.addressProductNumberText!,\n productName: resources.addressProductText!,\n productUnitPrice: resources.addressProductUnitPriceText!,\n productQuantity: resources.addressProductQuantityText!,\n productAddress: resources.addressProductAddressText,\n clickHandler: (isChecked: boolean) => {\n onSelectAll(isChecked);\n },\n isAllSelected: selectedShippingLines && selectedShippingLines.every(line => line.isChecked),\n isMobile: isMobile,\n clearSelectionButton: (\n !line.isChecked)\n }}\n />\n )\n };\n\n return ;\n }\n\n function _renderShipMultipleAddressLines(): IShipMultipleAddressesLineViewProps[] {\n return shippingLines.map((line, index) => {\n const currentLineProps: IShipMultipleAddressesLineProps = {\n shipMultipleAddressesLine: {\n isChecked: (selectedShippingLines && selectedShippingLines[index] && selectedShippingLines[index].isChecked) || false,\n cartLine: line.cartLine\n },\n shippingLineImage: shippingLineImages[index],\n product: line.product ? line.product : undefined,\n price: line.product?.Price,\n context,\n quantity: line.cartLine?.Quantity!,\n moduleId: moduleId,\n moduleTypeName: moduleTypeName,\n currencyCode: currencyCode,\n customerAddresses: customerAddresses,\n isMobile: isMobile,\n onSelect: onSelect,\n onShippingAddressChange: onShippingAddressChange,\n resources: {\n unavailableProductErrorMessage,\n outOfStockProductErrorMessage\n }\n };\n\n return ShipMultipleAddressesLineView({ ...currentLineProps })!;\n });\n }\n\n return {\n ShipMultipleAddress: { className: 'msc-address-select' },\n shipSingleAddressButton: (\n \n ),\n clearSelectionButton: (\n !line.isChecked)\n }}\n />\n ),\n addressDropdown: (\n onBulkShippingAddressChange(e)}\n defaultValue={''}\n disabled={selectedShippingLines.every(line => !line.isChecked)}\n >\n \n {customerAddresses?.map((address: Address, index: number) => (\n \n ))}\n \n ),\n ProductsTable: {\n className: `ms-address-select__table`,\n tag: 'table',\n role: 'grid'\n },\n ProductsTableRow: {\n className: `ms-address-select-table-line`,\n tag: 'tr'\n },\n ProductsTableHeading: _renderProductListHeader(),\n shipMultipleAddressLines: _renderShipMultipleAddressLines(),\n isShowSaveButton: !hasExternalSubmitGroup,\n saveButton: (\n \n ),\n isShowCancelButton: !hasExternalSubmitGroup,\n cancelButton: (\n \n ),\n isMobile: isMobile\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IShipMultipleAddressesTableHeadingProps {\n selectAllRowsText?: string;\n productNumber: string;\n productName: string;\n productUnitPrice: string;\n productQuantity: string;\n clickHandler(isChecked: boolean): void;\n productImage?: string;\n productAddress?: string;\n isAllSelected: boolean;\n isMobile: boolean;\n clearSelectionButton: React.ReactNode;\n}\n\nexport interface IShipMultipleAddressesTableHeadingState {\n isChecked: boolean;\n}\n\nexport interface IShipMultipleAddressesTableShortHeading {\n productNumber: string;\n productActions: string;\n}\n\n/**\n * Ship multiple addresses table heading.\n */\nexport class ShipMultipleAddressesTableHeading extends React.PureComponent {\n public state: IShipMultipleAddressesTableHeadingState = {\n isChecked: false\n };\n\n private readonly componentClassName: string = 'ms-table';\n\n public getOnChange = () => (event: React.ChangeEvent) => {\n this.setState(\n {\n isChecked: !this.state.isChecked\n },\n () => {\n this.props.clickHandler(this.state.isChecked);\n }\n );\n };\n\n public render(): JSX.Element {\n if (!this.props.isMobile) {\n return (\n \n \n \n \n \n {this.props.productNumber}\n {{this.props.productName}}\n {\n \n {this.props.productUnitPrice}\n \n }\n {\n \n {this.props.productQuantity}\n \n }\n {{this.props.productAddress}}\n \n \n );\n } else {\n return (\n \n \n \n \n\n {/* Clear Selection Button */}\n
\n {this.props.clearSelectionButton}\n
\n \n \n \n );\n }\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { Address, CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IShipMultipleAddressesLineViewModel } from '../../modules/checkout-shipping-address';\nimport { ICheckoutShippingCartLineInfo } from '../../modules/checkout-shipping-address/components';\n\nexport interface IShipMultipleAddressesLineProps extends CartLine {\n shipMultipleAddressesLine: IShipMultipleAddressesLineViewModel;\n shippingLineImage: ICheckoutShippingCartLineInfo;\n price?: number;\n context: ICoreContext;\n product?: SimpleProduct;\n imageSettings?: IImageSettings;\n quantity: number;\n moduleId: string;\n moduleTypeName: string;\n currencyCode: string | undefined;\n customerAddresses: Address[];\n error?: string;\n isMobile: boolean;\n onSelect(line: IShipMultipleAddressesLineViewModel, isChecked: boolean): void;\n onShippingAddressChange(shippingLine: CartLine, event: React.ChangeEvent): void;\n resources: {\n unavailableProductErrorMessage?: string;\n outOfStockProductErrorMessage?: string;\n };\n}\n\nexport interface IShipMultipleAddressesLineViewProps {\n key?: string;\n productImage?: React.ReactNode;\n productPrice?: React.ReactNode;\n productCurrencyCode?: React.ReactNode;\n productName?: string;\n productNumber?: React.ReactNode;\n productInfo?: React.ReactNode;\n productLabel?: React.ReactNode;\n productUnitOfMeasure?: React.ReactNode;\n productQuantity?: number;\n productListId?: string;\n productAddress?: React.ReactNode;\n selectLine?: React.ReactNode;\n popUp?: JSX.Element;\n productAddressPopup?: JSX.Element | null | undefined;\n isMobile?: boolean;\n}\n\n/**\n * On Select line function.\n * @param shipMultipleAddressesLine - Ship multiple addresses line.\n * @param input - Ship multiple addresses line props.\n * @returns Set on select shipping line.\n */\nconst onSelectLineHandler = (shipMultipleAddressesLine: IShipMultipleAddressesLineViewModel, input: IShipMultipleAddressesLineProps) => (\n event: React.ChangeEvent\n) => {\n shipMultipleAddressesLine.isChecked = !shipMultipleAddressesLine.isChecked;\n\n input.onSelect(shipMultipleAddressesLine, event.target.checked);\n};\n\nexport const ShipMultipleAddressesLineView = (input: IShipMultipleAddressesLineProps): IShipMultipleAddressesLineViewProps | null => {\n const { customerAddresses, shipMultipleAddressesLine, shippingLineImage, product, context, onShippingAddressChange } = input;\n\n console.log('ShipMultipleAddressesLineView rendering');\n\n if (!product) {\n return null;\n }\n\n const { ItemId } = product;\n const { Quantity, ShippingAddress } = shipMultipleAddressesLine.cartLine;\n\n return {\n selectLine: (\n \n ),\n productImage: renderProductImage(\n '',\n context,\n product.Name!,\n shippingLineImage.imageProps.fallBackSrc,\n shippingLineImage.imageProps.src\n ),\n productInfo: renderProductInfo(input),\n productPrice: renderProductPrice(input),\n productNumber: product && (\n <>\n
{ItemId}
\n {input.error !== 'NONE' ?
{renderProductError(input)}
: undefined}\n \n ),\n productQuantity: Quantity,\n productAddress: (\n onShippingAddressChange(shipMultipleAddressesLine.cartLine, e)}\n value={ShippingAddress?.RecordId}\n >\n {customerAddresses?.map((address: Address, index: number) => (\n \n {address.FullAddress}\n \n ))}\n \n )\n };\n};\n\nconst renderProductImage = (\n className: string,\n context: ICoreContext,\n heading: string,\n image?: string,\n fallbackImage?: string\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=64&h=64&m=6', w: 0, h: 0 },\n lg: { q: 'w=64&h=64&m=6', w: 0, h: 0 },\n xl: { q: 'w=64&h=64&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n return (\n \n );\n};\n\nconst renderProductDimensions = (props: IShipMultipleAddressesLineProps): (string | undefined)[] => {\n const { product } = props;\n if (!product || !product.Dimensions) {\n return [];\n }\n return product.Dimensions.map(dimension => {\n if (!dimension.DimensionValue || !dimension.DimensionValue.Value) {\n return undefined;\n }\n return dimension.DimensionValue.Value;\n });\n};\n\nconst renderProductInfo = (props: IShipMultipleAddressesLineProps): React.ReactNode | undefined => {\n const { product } = props;\n const name = product?.Name;\n const dimensions = renderProductDimensions(props);\n if (!product) {\n return [];\n }\n const productName =
{name}
;\n const dimensionsLine: string = dimensions.join(', ');\n return (\n
\n
{productName}
\n
{dimensionsLine}
\n
\n );\n};\n\nconst renderProductPrice = (props: IShipMultipleAddressesLineProps): React.ReactNode | undefined => {\n const { product } = props;\n\n if (!product?.Price) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n\nconst renderProductError = (props: IShipMultipleAddressesLineProps) => {\n const { error, resources } = props;\n\n if (!error) {\n return '';\n }\n\n const errorMessages = {\n OOS: resources.outOfStockProductErrorMessage,\n UNASSORTED: resources.unavailableProductErrorMessage,\n NONE: ''\n };\n\n return errorMessages[error];\n};\n"],"names":["CheckoutBillingAddress","React","constructor","props","super","countryRegionId","countryRegions","addressPurposes","defaultAddressType","checkoutErrorRef","_onSuggestionSelected","async","this","_clearAddressFields","address","addressFormat","getTranformedAddress","result","stateProvinceInfo","set","addUpdateAddress","Street","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","getAddressFormat","ThreeLetterISORegionName","forEach","format","_this$autoSuggest","undefined","name","autoSuggest","excludedAddressFields","includes","_clearValidation","validationError","onAddressAddUpdate","value","validateAddressFormat","_dataInitialize","data","reaction","_data$countryRegions$","_data$addressPurposes","countryStates","_data$countryStates$r","_renderAddOrUpdateAddress","_this$addUpdateAddres","AddressAddUpdate","resources","addressType","AddressType","Billing","defaultCountryRegionId","selectedAddress","addressActionResponse","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","telemetryContent","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","hasExternalSubmitGroup","moduleState","onSave","_onSubmitAddress","onCancel","_resetView","_onCountryChange","_this$autoSuggest2","twoLetterIsoRegionName","getTwoLetterISORegionName","TwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","config","addressFormatExcludeList","showAddressType","push","AddressItemType","AddressTypeValue","IsPrimary","_attachMapAutoSuggest","storeSelectorStateManager","_this$autoSuggest3","isMapApiLoaded","attachAutoSuggest","event","target","replace","RegExp","_getStateProvinces","currentOperation","AddressOperation","Add","Update","addressCommon","getStateProvinces","then","some","state","StateId","_initModuleState","_this$props$data$chec","init","status","isBillingAddressRequried","onEdit","onSubmit","billingAddress","isBillingAddressSameAsShippingAddress","checkout","isBillingAddressSameAsShipping","_updateCurrentOperation","Show","_updateModuleState","isCartContainsItemsForShipping","shippingAddress","_onBillingAddressSameAsShippingChange","currentTarget","checked","_this$props$data$chec2","_this$props$data$chec3","setHasError","shouldEnableSinglePaymentAuthorizationCheckout","isPaymentSectionContainerHasError","updateIsBillingAddressHasError","newIsBillingAddressHasError","_setBillingAddress","telemetry","information","error","onUpdating","newBillingAddress","_objectSpread","updateBillingAddress","additionalProperties","operation","onReady","_setErrorMessage","errorMessage","setState","context","List","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","request","telemetryPageName","friendlyName","isShowAddress","isShowAddOrUpdateAddress","isShowSameAsShippingCheckbox","_this$props$data$chec5","actionContext","requestContext","channel","autoSuggestionEnabled","autoSuggestOptions","_setDefaultCountryRegionId","isUpdating","_this$props$data$chec4","isDisabled","removeBillingAddress","onDisable","BingMapsApiKey","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_loadMapAPI","_this$props$data$stor","loadMapApi","_this$autoSuggest4","_this$props$data$stor2","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec6","checkoutError","errorLocation","ErrorLocation","_this$props$data$chec7","checkoutErrorFocus","CheckoutModule","focusOnCheckoutError","_this$props$data$stor3","_this$autoSuggest5","disposeAutoSuggest","shouldComponentUpdate","nextProps","nextState","render","_shouldHideBillingAddressForOBO","hasError","renderView","className","viewState","moduleProps","classnames","heading","AddressBillingHeading","Object","assign","text","addressBillingAddressHeading","alert","ErrorComponent","title","errorMessageTitle","message","sameAsShippingCheckbox","AddressBillingCheckbox","isChecked","type","ariaLabel","addressSameAsShippingAddressAriaLabel","addressSameAsShippingAddressText","onChange","showAddress","_renderShowAddress","showAddOrUpdateAddress","_this$selectedAddress","AddressShow","_request$channel","market","getDefaultCountryRegionId","_featureState$result","_request$channel2","_request$channel3","_this$props$data$chec8","channelDeliveryOptionConfig","featureState","retailMultiplePickUpOptionEnabled","find","feature","Name","IsEnabled","pickupDeliveryModeCode","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","checkoutCart","hasInvoiceLine","cart","CartLines","cartLine","_channelDeliveryOptio","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","_this$props$data$chec9","_this$props$data$chec10","getLoyaltyAmount","checkoutState","loyaltyAmount","getGiftCardTotalAmount","giftCardExtends","reduce","count","giftCard","Balance","getCustomerAccountAmount","_checkoutState$custom","customerAccountAmount","shouldPaidByCard","checkoutResult","length","paymentTenderType","tokenizedPaymentCard","isPaidByOtherPaymentSource","paymenTenderType","TotalAmount","_this$props$data$chec11","_this$props$data$chec12","isPaymentVerificationRedirection","isCheckoutCallFailed","Msdyn365","EnabledPaymentsForOBO","PaymentInstrument","__decorate","observable","action","computed","withModuleState","observer","CheckoutPickupCartLines","_ref","moduleClassName","cartLines","itemTitle","isMultipleAddressShippingEnabled","isMobileCheck","isMobile","variant","VariantType","Browser","gridSettings","xs","w","sm","md","lg","xl","isMobileView","ArrayExtensions","hasElements","headingAfterMultiSelectAddressSelect","map","isShowQty","quantity","key","lineId","Image","imageProps","role","productQuantityInfo","altText","id","defaultImageSettings","viewports","q","h","lazyload","quality","CheckoutShippingAddress","_data$featureState$re2","customerAddresses","addressListSelectedAddress","multiplePickupStoreSwitchName","onSelect","line","selectedShippingLines","updated","shippingLine","_shippingLine$cartLin","LineId","console","onShippingAddressChange","addressRecordId","RecordId","toString","shippingGroups","updatedCartLine","ShippingAddress","updateIndividualAddresses","prevState","onBulkShippingAddressChange","index","cartline","_shippingLine$cartLin2","_initPickupGroup","pickupCartLines","_getCartLinesforDelivery","products","_getProductsByCartLines","ChannelId","product","x","ProductId","shippingGroupsBuffer","initialShippingLineSelection","addressFormatItem","formatAddress","_data$address$result","_data$featureState$re","filter","_isDelivery","_isNotPickupMode","FulfillmentStoreId","_this$props$context$r","pickupDeliveryMode","pickupMode","channelId","productInputs","ObjectExtensions","isNullOrUndefined","ProductInput","apiSettings","CatalogId","getSimpleProducts","_renderShipMultipleAddresses","onSaveHandler","onCancelHandler","imageSettings","cartlineImages","_line$cartLine$LineId","_line$product","_line$product$Primary","_line$product2","_line$product3","_context$request$app","_line$cartLine$Quanti","src","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","ItemId","app","OmniChannelMedia","loadFailureBehavior","Quantity","AddressShipMultiple","isAuthenticatedFlow","onCancelButtonHandler","bind","onSelectAll","onClear","onShipSingleAddress","resetSelectedShippingLines","shippingLines","shippingLineImages","currencyCode","moduleId","moduleTypeName","typeName","Shipping","_renderSelectAddress","onShipMultipleAddressesHandler","onAddAddressHandler","AddressSelect","addresses","onAddressOptionChange","_onAddressOptionChange","onShipMultipleAddresses","_goToShipMultipleAddresses","onAddAddress","_goToAddAddress","_onSelectAddress","multipleAddressShippingEnabled","_onAddressAddUpdateSubmit","response","_isNewAddress","updateCustomerAddress","addCustomerAddress","Promise","resolve","_clearError","_onAddOrUpdateSuccess","_getDefaultAddress","_getAddressFromCartExpressPaymentDetails","expressPaymentDetailsFromCartPage","isExpressAddressAppliedInCartPage","addressFromCartExpress","getExpressAddress","getAddressFromTokenizedPaymentCard","Country","threeLetterIsoRegionName","getThreeLetterIsoRegionName","NameOnCard","Address1","StreetNumber","Address2","Zip","Phone","expressAddress","countryRegion","country","_country$ISOCode","ISOCode","toLowerCase","CountryRegionId","_canShip","defaultAddress","shippingCartLines","isExpressCheckoutApplied","shippingAddressFromExpressCheckout","isEmpty","_setShippingAddress","updateHasShippingAddress","newHasShippingAddress","Multiple","_onSelectMultiAddress","_checkout$result$chec","_checkout$result$chec2","_channelDeliveryOptio2","_setCartLinesShippingAddress","newShippingAddress","updateShippingAddress","catch","newCartLinesWithShippingAddress","shippingGroup","updateCartLinesShippingAddress","updateCartLineShippingAddress","updatedCartLinesObject","_getViewport","device","Type","MsDyn365","isBrowser","window","innerWidth","onPending","existingAddress","_address$Name","_address$Street","_address$StreetNumber","_address$City","_address$State","_address$ZipCode","_address$Phone","_address$ThreeLetterI","_address$AddressTypeV","_countItems","cartlines","_viewport","_updateViewport","_address","addEventListener","componentWillUnmount","removeEventListener","_featureState$result2","headingImages","itemsText","singleItemText","_line$cartLine$LineId2","_line$product4","_line$product$Primary2","_line$product5","_line$product6","_context$request$app2","_line$cartLine$Quanti2","_line$cartLine$Shippi","_line$cartLine$Shippi2","shippingAddressId","numberOfCartLines","itemText","lineImageProps","cartLineImages","isRetailMultiplePickUpOptionEnabled","isShowAddresList","isShowShipMultipleAddress","showAddressSelectHandler","showShipMultipleAddressesHandler","showShipMultipleAddresses","showAddOrUpdateAddressHandler","showAddressSelect","_this$props$data$cart","_this$props$data$cart2","properties","ExtensionProperties","property","Key","Value","StringValue","JSON","parse","get","AddressDetail","items","Node","item","description","_ref2","AddressForm","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","input","AddressError","Module","ref","SelectAddress","shipMultipleAddressesButton","addButton","SelectItem","showItems","_ref3","ShipMultipleAddress","shipSingleAddressButton","clearSelectionButton","addressDropdown","ProductsTable","ProductsTableHeading","ProductsTableRow","shipMultipleAddressLines","_renderShipMultipleAddressLine","_ref4","shipMultipleAddressesLine","selectLine","productImage","productNumber","productInfo","productPrice","productQuantity","productAddress","style","position","top","verticalAlign","colSpan","width","display","marginTop","textAlign","AddressItemDisplayType","AddressValidationRuleType","itemId","additionalAddributes","autoFocus","shouldBeAutoFocused","payLoad","getPayloadObject","attributes","getTelemetryAttributes","getRequriedAttribute","validationRules","validationRule","Required","getAddessItems","shouldAutoFocus","elementId","classname","isNewLine","displayType","Input","AddressInputComponent","maxLength","Checkbox","AdressCheckboxComponent","displayData","selectedValue","AdressDropdownComponent","AddressLabelComponent","AddressAlertComponent","editAddressHeading","addAddressHeading","Heading","AddressButtonComponent","addressSaveButtonText","addressSaveButtonAriaLabel","disabled","onClick","addressCancelButtonText","addressCancelButtonAriaLabel","errorTitle","AddressErrorTitleComponent","AddressErrorMessageComponent","addressTypeValue","addressTypeDescription","Description","AddressDetailItemComponent","isShowLabel","labelText","marketISOCode","currentCountryRegion","parseRetailException","addressErrorMessageTitle","addressGenericErrorMessage","user","isAuthenticated","GetStateProvincesInput","getStateProvinceAction","debug","updateLogisticsLocationRoleRecordId","submitCustomerAddress","addAddress","updateAddress","updateCustomerPrimaryAddress","updatePrimaryAddress","addressAction","AddressManagementInput","execAddressAction","GetAddressPurposesInput","getAddressPurposesAction","addressPurpose","purpose","LogisticsLocationRoleRecordId","countryRegionsInfo","addressMetaData","stateDefaultSelectionText","defaultStateText","dropdownData","getCountryFormat","getStateFormat","unshift","getAddressTypeFormat","_getCountryRegionInfo","propertyName","validationtor","isValid","_inputValidation","postalCode","selectedState","StateName","adminDistrict","addressLine","locality","district","formattedAddress","_validateRegEx","regEx","test","countryRegionInfo","_getAddressDisplayFormat","ShortName","addressDisplayItem","AddressFormatLines","AddressTypeItem","_extendAddressDisplayFormat","nameDisplayItem","formatLine","AddressComponentNameValue","addressItem","getItemFormat","NewLine","phoneDisplayItem","isPrimaryDisplayItem","excluded","required","metaData","requiredFieldRegEx","maxLengthRegEx","resourcesPrefix","excludedTypes","requiredFields","_init","_addItem","PhoneRegex","defaultRegex","County","Dropdown","BuildingCompliment","Postbox","House_RU","Flat_RU","CountryOKSMCode_RU","nameKey","_validationRules","isRequired","rule","optionalString","ruleType","keys","itemType","_validationRule","Format","MaxLength","shouldUseAutoFocus","getButtonAriaLabel","addressName","getAddressList","showPrimaryButton","onEditAddress","onRemoveAddress","onUpdatePrimaryAddress","isShowList","isSelectedAddress","isShowError","isInvalidAsyncState","isEditAsyncCustomerFeatureEnabled","canRenderAsyncCustomerDataAsUnmodifiable","isAsyncCustomer","isAsyncCustomerAddressCreationFeatureEnabled","Item","Error","isShowPrimaryButton","primaryButton","addressPrimaryButtonText","addressPrimaryButtonAriaLabel","editButton","addressEditButtonText","addressEditButtonAriaLabel","removeButton","addressRemoveButtonText","addressRemoveButtonAriaLabel","getPrimaryAddressList","primaryAddressSectionHeading","primaryAddresses","getOtherAddressList","otherAddressSectionHeading","otherAddresses","AddressList","_heading$headingTag","handleLineItemHeadingChange","headingComponent","tag","headingTag","editProps","contextRequest","disableAddButton","ListAddress","isShowEmptyListMessage","emptyListMessage","addressEmptyListAddressMessage","addressAddButtonText","addressAddButtonAriaLabel","primaryAddressList","otherAddressList","countryCode","defaultLanguageId","inputId","containerId","selectedSuggestionCallback","autoSuggestManager","Microsoft","Maps","loadModule","callback","_document$querySelect","AutosuggestManager","attachAutosuggest","document","querySelector","setAttribute","_document$querySelect2","errorCallback","credentials","bingMapsApiKey","setOptions","_this$autoSuggestMana","_this$autoSuggestMana2","detachAutosuggest","dispose","lang","recordId","getDropdownItem","isSelected","htmlFor","mainClass","ctx","getCheckoutState","exception","current","scrollIntoView","updateCheckoutErrorFocus","newCheckoutErrorFocus","None","getInput","_addressPurposes$find","ichecked","additionalAttributes","addressChangeCheckboxAriaLabel","getAddressSelectItems","addressAddNewButtonText","addressAddNewButtonAriaLabel","addressShipMultipleText","addressShipMultipleAriaLabel","unavailableProductErrorMessage","outOfStockProductErrorMessage","addressShipSingleText","addressShipSingleAriaLabel","clearSelectionButtonText","clearSelectionButtonAriaLabel","every","chooseAddressForSelectedItemsText","chooseAddressForSelectedItemsAriaLabel","e","defaultValue","noAddressSelectedAriaLabel","hidden","headers","selectAllRowsText","addressSelectAllRowsText","addressProductNumberText","productName","addressProductText","productUnitPrice","addressProductUnitPriceText","addressProductQuantityText","addressProductAddressText","clickHandler","isAllSelected","ShipMultipleAddressesTableHeading","_renderProductListHeader","_line$cartLine","currentLineProps","shippingLineImage","price","Price","ShipMultipleAddressesLineView","saveAndContinueBtnLabel","componentClassName","getOnChange","scope","maxWidth","paddingLeft","border","left","transform","onSelectLineHandler","log","renderProductImage","renderProductInfo","renderProductPrice","renderProductError","image","fallbackImage","_context$actionContex","_context$request","tabIndex","dimensions","Dimensions","dimension","DimensionValue","renderProductDimensions","dimensionsLine","join","PriceComponent","CustomerContextualPrice","OOS","UNASSORTED","NONE"],"sourceRoot":""}