{"version":3,"file":"ContentIntroSection-35d32e9fd8267d01e7e2.js","mappings":"uIAAIA,E,WAEJ,SAASC,IAAiS,OAApRA,EAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcP,OAAOS,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAAkBJ,EAASa,MAAMC,KAAMR,WAItU,MAcA,EAdsBS,GAAsB,gBAAoB,MAAOf,EAAS,CAC9EgB,MAAO,6BACPC,QAAS,aACRF,GAAQhB,IAAOA,EAAkB,gBAAoB,IAAK,CAC3DmB,KAAM,OACNC,OAAQ,gBACM,gBAAoB,IAAK,CACvCC,cAAe,UACD,gBAAoB,OAAQ,CAC1CC,EAAG,yDACa,gBAAoB,OAAQ,CAC5CA,EAAG,uB,kIChBE,MAAMC,EAAY,kBACZC,EAAe,mBACfC,EAAW,mBACXC,EAAW,mBACXC,EAAW,mBAGXC,EAAgB,iCAgBtB,SAASC,EAAWC,GACvB,OAAOC,EAAAA,EAAAA,IAAP,2KAEoBD,EAAOE,MACJF,EAAOG,SACAL,GAW3B,SAASM,EAAaJ,GACzB,OAAOC,EAAAA,EAAAA,IAAP,wOAEoBD,EAAOE,MACJF,EAAOG,SACAL,GAa3B,MAAMO,EAAiBC,IACnBL,EAAAA,EAAAA,IAAP,uDAEIK,GAIKC,EAAa,SAACC,GAAuD,IAA3CL,EAA2C,uDAAhC,IAAMM,EAA0B,uDAAjBX,EAC7D,OAAOO,GAAcJ,EAAAA,EAAAA,IAAA,CAAD,0FACNO,EAC6B,iBAAbL,EAAwBA,EAAY,GAAEA,KACtCM,EACfD,KAGZ,SAASE,EAAmBV,EAAQW,EAAcC,GACrD,OAAOX,EAAAA,EAAAA,IAAP,yKAEoBD,EAAOE,MACJF,EAAOG,SACAL,EAGnBa,EAIAC,K,iCCrFf,SACIC,MAAO,UACPC,KAAM,CACFC,KAAM,WAEVC,KAAM,CACFC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,IAAK,UAELC,UAAW,UACXC,WAAY,WAEhBC,QAAS,CACLC,WAAY,UACZC,WAAY,UACZC,cAAe,UACfC,YAAa,UACbC,cAAe,UACfC,aAAc,WAElBC,WAAY,CACRC,YAAa,UACbN,WAAY,UACZO,cAAe,UACfC,YAAa,UACbC,gBAAiB,UACjBC,qBAAsB,UACtBN,aAAc,UACdO,kBAAmB,WAEvBC,WAAY,CACRC,QAAS,UACTC,MAAO,WAEXC,MAAO,UACPC,OAAQ,CACJ/B,KAAM,a,gBC1Cd,SAASgC,EAAOC,GACZ,MAAQ,SAAQA,KAEpB,SAASC,EAAUD,EAAME,GACrB,MAAQ,KAAIF,MAASE,I,2ECDlB,MAAMC,EAAiB,GAIjBC,EAAoBC,EAAAA,GAAAA,YAIpBC,EAAoBD,EAAAA,GAAAA,aAI1B,SAASE,EAAMC,EAAKC,GAAiE,IAA5DC,EAA4D,uDAAjDN,EAAmBO,EAA8B,uDAAnBL,EACrE,MAAMM,EAASJ,EAAML,EACfU,EAASJ,EAAMN,EACfW,EAAcJ,EAAWP,EACzBY,EAAcJ,EAAWR,EACzBa,GAASH,EAASD,IAAWG,EAAcD,GAC3CG,GAAqBH,EAAcE,EAAQJ,EAC3CM,EAAY,GAAEC,EAAMP,QACpBQ,EAAY,GAAED,EAAMF,WAA2BE,EAAc,IAARH,OACrDK,EAAY,GAAEF,EAAMN,QAC1B,MAAQ,SAAQK,MAAaE,MAAaC,KAK9C,SAASF,EAAMG,GACX,OAAOC,KAAKJ,MAAY,IAANG,GAAa,M,gDC/BnC,SACIE,UAAW,CACPC,OAAOxE,EAAAA,EAAAA,IAAF,2EAKLyE,aAAazE,EAAAA,EAAAA,IAAF,2EAKX0E,SAAS1E,EAAAA,EAAAA,IAAF,2EAKP2E,eAAe3E,EAAAA,EAAAA,IAAF,2EAKb4E,QAAQ5E,EAAAA,EAAAA,IAAF,2EAKN6E,cAAc7E,EAAAA,EAAAA,IAAF,2EAKZ8E,MAAM9E,EAAAA,EAAAA,IAAF,2EAKJ+E,YAAY/E,EAAAA,EAAAA,IAAF,8E,2GCnCX,MAAMgF,EAAc,GACdC,EAAY,KACZC,EAAsBD,EAA0B,EAAdD,EAClCG,GAAWnF,EAAAA,EAAAA,IAAH,qIACjBgD,EAAAA,EAAAA,GAAU,cAAgB,GAAEgC,QAC5BhC,EAAAA,EAAAA,GAAU,YAAc,GAAEiC,QAMnBnC,EAAAA,EAAAA,GAAO,cAAkBA,EAAAA,EAAAA,GAAO,gBAAoBA,EAAAA,EAAAA,GAAO,gBAGvDA,EAAAA,EAAAA,GAAO,gBAGTsC,GAAWpF,EAAAA,EAAAA,IAAH,2GACjBgD,EAAAA,EAAAA,GAAU,cAAe,SAGbF,EAAAA,EAAAA,GAAO,gBAGZuC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,SACVJ,EAAAA,EAAAA,GAAU,cAAe,SAGpBqC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eACVJ,EAAAA,EAAAA,GAAU,cAAe,U,gGCxBxB,SAASsC,EAASC,EAAOC,GAC5B,IAAKD,IAAUA,EAAME,IACjB,MAAO,GAMX,MAAMC,EAAcH,EAAME,IAAIE,MAAM,KAAK,GACnC5F,EAAS,CACX6F,IAAKL,EAAMM,WAAc,GAAEN,EAAMM,WAAWC,QAAQP,EAAMM,WAAWE,WAAQC,EAE7EC,QAAST,EAAYU,OAASV,EAAYU,MAAQ,IAAM,QAAKF,KAC1DR,GAGP,MAAQ,GAAEE,IADWS,EAAAA,UAAsBpG,GACH,IAAGoG,EAAAA,UAAsBpG,KAAY,KAE1E,SAASqG,EAAOb,EAAOC,GAC1B,OAAKD,GAAUA,EAAME,IAGE,CAAC,EAAG,IAAK,EAAG,IAAK,GAEnCY,KAAKC,GAAQ,GAAEhB,EAASC,EAAO,IAC7BC,KACCA,EAAYU,MAAQ,CAAEA,MAAOV,EAAYU,MAAQI,GAAO,MACxDd,EAAYe,OAAS,CAAEA,OAAQf,EAAYe,OAASD,GAAO,QAC7DA,OACDE,KAAK,KATC,GAmBR,SAASC,EAA0BP,EAAOK,GAC7C,OAAKL,GAAUK,GAGRvG,EAAAA,EAAAA,IAAP,kEAKE0G,EAAyBR,EAAOK,IAPvB,KAqBR,SAASG,EAAyBR,EAAOK,GAC5C,OAAKL,GAAUK,EAIP,oBADkBA,EAASL,EAAS,KAAKS,QAAQ,MAF9C,GASR,MAAMC,EAAuBC,IAAa7G,EAAAA,EAAAA,IAAb,CAAD,qFAM9B6G,GAAY,wC,gBCvFV,IAAIzD,EAeJ,SAASiC,EAAKyB,GACjB,MAAQ,eAAcA,OAEnB,SAASC,EAAMD,GAClB,MAAQ,eAAcA,EAAO,O,oCAlBjC,SAAW1D,GACPA,EAAOA,EAAM,YAAkB,KAAO,cACtCA,EAAOA,EAAM,OAAa,KAAO,SACjCA,EAAOA,EAAM,YAAkB,KAAO,cACtCA,EAAOA,EAAM,YAAkB,KAAO,cACtCA,EAAOA,EAAM,OAAa,KAAO,SACjCA,EAAOA,EAAM,YAAkB,MAAQ,cACvCA,EAAOA,EAAM,aAAmB,MAAQ,eACxCA,EAAOA,EAAM,QAAc,MAAQ,UACnCA,EAAOA,EAAM,aAAmB,MAAQ,eACxCA,EAAOA,EAAM,iBAAuB,MAAQ,mBAC5CA,EAAOA,EAAM,cAAoB,MAAQ,gBACzCA,EAAOA,EAAM,UAAgB,MAAQ,YAZzC,CAaGA,IAAWA,EAAS,M,iCCTvB,MAaA,GAbepD,E,SAAAA,IAAH,sT,sOCCZ,MAAMgH,GAAgBhH,EAAAA,EAAAA,IAAH,2CAEfiH,EAAAA,EAAAA,UAAAA,MAGSC,GAAKlH,EAAAA,EAAAA,IAAH,oMACXgH,GAKO3B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKH+D,GAAKnH,EAAAA,EAAAA,IAAH,oMACXgH,GAKO3B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHgE,GAAKpH,EAAAA,EAAAA,IAAH,oMACXgH,GAKO3B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHiE,GAAKrH,EAAAA,EAAAA,IAAH,oMACXgH,GAKO3B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHkE,GAAKtH,EAAAA,EAAAA,IAAH,oMACXgH,GAKO3B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHmE,GAAKvH,EAAAA,EAAAA,IAAH,wMACXgH,EACAC,EAAAA,EAAAA,UAAAA,SAKO5B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHoE,GAASxH,EAAAA,EAAAA,IAAH,oMACfgH,GAKO3B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHqE,GAAUzH,EAAAA,EAAAA,IAAH,wMAChBgH,EACAC,EAAAA,EAAAA,UAAAA,SAKO5B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKHsE,GAAmB1H,EAAAA,EAAAA,IAAH,wTAUX2H,EAAAA,EAAAA,OAAAA,MAaZC,GAAkB5H,EAAAA,EAAAA,IAAH,2CAEjBiH,EAAAA,EAAAA,UAAAA,SAGSY,GAAgB7H,EAAAA,EAAAA,IAAH,oMACtB4H,GAKOvC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKH0E,GAAY9H,EAAAA,EAAAA,IAAH,oMAClB4H,GAKOvC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKH2E,GAAiB/H,EAAAA,EAAAA,IAAH,oMACvB4H,GAKOvC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKH4E,GAAQhI,EAAAA,EAAAA,IAAH,oMACdiH,EAAAA,EAAAA,UAAAA,MAKO5B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKH6E,GAAajI,EAAAA,EAAAA,IAAH,uFACnBiH,EAAAA,EAAAA,UAAAA,SAMSiB,GAAOlI,EAAAA,EAAAA,IAAH,uYAIQ2H,EAAAA,EAAAA,KAAAA,KACAA,EAAAA,EAAAA,KAAAA,KAOa9H,EAAAA,GAA6BA,EAAAA,GAUtD8H,EAAAA,EAAAA,OAGAQ,GAAMnI,EAAAA,EAAAA,IAAH,sFACZiH,EAAAA,EAAAA,UAAAA,SAMSmB,GAAapI,EAAAA,EAAAA,IAAH,iJACnB8H,EAWoBH,EAAAA,EAAAA,KAAAA,OAGXU,GAAUrI,EAAAA,EAAAA,IAAH,aAChBmI,EACAlB,EAAAA,EAAAA,UAAAA,MAESqB,GAAQtI,EAAAA,EAAAA,IAAH,qjBACF2H,EAAAA,EAAAA,MAELA,EAAAA,EAAAA,MAMSA,EAAAA,EAAAA,KAAAA,KAIQA,EAAAA,EAAAA,MACXA,EAAAA,EAAAA,MACPV,EAAAA,EAAAA,UAAAA,MAaYsB,EAAAA,EAAAA,IAAI,IAAMZ,EAAAA,EAAAA,KAAAA,MAAkBA,EAAAA,EAAAA,QAI5BY,EAAAA,EAAAA,IAAI,IAAMZ,EAAAA,EAAAA,KAAAA,UAAsBA,EAAAA,EAAAA,OAI1BA,EAAAA,EAAAA,MACXA,EAAAA,EAAAA,MACPV,EAAAA,EAAAA,UAAAA,KASkBU,EAAAA,EAAAA,MAClBV,EAAAA,EAAAA,UAAAA,SAUGuB,GAAgBxI,EAAAA,EAAAA,IAAH,wpCAGpBkH,EAKAC,EAKAC,EAKAC,EAKAC,EAKAC,EAIAC,EAIAM,EAKAL,EAKAI,EAKAE,EAKAC,EAIAC,EAIAC,EAKAN,GAMOvC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAqBZgF,GAYO/C,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,QAMZkF,EASOX,EAAAA,EAAAA,MAIAA,EAAAA,EAAAA,KAAAA,KAIAA,EAAAA,EAAAA,QAAAA,cAIAA,EAAAA,EAAAA,QAAAA,YAIAA,EAAAA,EAAAA,QAAAA,WAIAA,EAAAA,EAAAA,QAAAA,cAIAA,EAAAA,EAAAA,QAAAA,WAIAA,EAAAA,EAAAA,QAAAA,aAIAA,EAAAA,EAAAA,MAIAA,EAAAA,EAAAA,OAAAA,O,gDCriBb,QAtBA,SAAiCc,GAAwB,IAAdC,EAAc,uDAAJ,GACjD,MAAMC,GAAcC,EAAAA,EAAAA,QAAO,MACrBC,GAAUD,EAAAA,EAAAA,QAAO,MACjBE,GAAaF,EAAAA,EAAAA,QAAO,MAiB1B,OAhBAG,EAAAA,EAAAA,YAAU,KACN,GAAKD,EAAWE,QAQhB,OALAL,EAAYK,QAAU,IAAIC,qBAAqBR,EAAU,CACrDS,KAAML,EAAQG,WACXN,IAEPC,EAAYK,QAAQG,QAAQL,EAAWE,SAChC,KACyB,OAAxBL,EAAYK,SAGhBL,EAAYK,QAAQI,gBAEzB,CAACX,EAAUC,IACP,CAAEI,aAAYH,cAAaE,YCzB/B,SAASQ,EAAUX,GAA8C,IAArCY,EAAqC,wDAApBC,EAAoB,wDACpE,MAAOC,EAAQC,IAAaC,EAAAA,EAAAA,WAAS,IAC/B,WAAEZ,GAAea,GAAyBC,IACxCA,EAAQ,GAAGC,eACXJ,GAAU,IAEO,IAAZH,GACLG,GAAU,KAEff,GACH,MAAO,CAACI,IAAYS,GAAoBC,K,uGCN5C,MAAMM,EAAYC,EAAAA,GAAAA,OAAAA,WAAH,kEAAGA,CAAH,8xDAYuBlK,EAAAA,GAAoCA,EAAAA,GAyDpD8H,EAAAA,EAAAA,KAAAA,MACCA,EAAAA,EAAAA,MAIDA,EAAAA,EAAAA,MACCA,EAAAA,EAAAA,KAAAA,MAIDA,EAAAA,EAAAA,KAAAA,MACCA,EAAAA,EAAAA,MAMDA,EAAAA,EAAAA,MACCA,EAAAA,EAAAA,KAAAA,MAcDA,EAAAA,EAAAA,KAAAA,MACCA,EAAAA,EAAAA,KAAAA,MAMDA,EAAAA,EAAAA,KAAAA,MACCA,EAAAA,EAAAA,OAKZZ,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAUX4G,EAAOD,EAAAA,GAAAA,KAAAA,WAAH,6DAAGA,CAAH,0IAEN9C,EAAAA,EAAAA,UAAAA,OAIwBpH,EAAAA,GAGtBoK,EAAAA,GAqCN,EALqB,CACjBH,YACAI,YA/BgBH,EAAAA,GAAAA,IAAAA,WAAH,oEAAGA,CAAH,2VAMWlK,EAAAA,IA0BxBmK,S,sEC3KJ,MAKA,EALmB,IAA8G,IAA7G,WAAEG,EAAF,SAAcC,EAAd,cAAwBC,EAAgB,QAAxC,KAAiDC,EAAjD,SAAuDC,EAAvD,aAAiEC,EAAe,WAAYC,GAAiB,EAC7H,OAAQC,EAAAA,cAAoBC,EAAAA,EAAAA,UAAa,CAAEC,GAAI,IAAK,YAAaP,EAAe,iBAAkBE,EAAU,qBAAsBC,EAAc,YAAaL,KAAeM,GACxKC,EAAAA,cAAoBC,EAAAA,EAAAA,KAAQ,KAAMP,GAClCM,EAAAA,cAAoBC,EAAAA,EAAAA,YAAe,KAAML,QAAAA,EAAQI,EAAAA,cAAoBG,EAAAA,EAAU,U,sECHvF,MAaA,EAJ6B,CACzBf,UAVcC,EAAAA,GAAAA,QAAAA,WAAH,0EAAGA,CAAH,oFACKzG,EAAAA,EAAAA,IAAM,GAAI,KACRA,EAAAA,EAAAA,IAAM,GAAI,KAS5BwH,MALUf,EAAAA,GAAAA,IAAAA,WAAH,sEAAGA,CAAH,QACP5E,EAAAA,M,2DCRJ,MAAM4F,EAAiBL,EAAAA,YAAiB,CAAC,EAAiDM,KAAQ,IAAzD,SAAEZ,EAAF,OAAYa,EAAS,aAAcR,GAAsB,EAC9F,MACS,cADDQ,EAEQP,EAAAA,cAAoBC,EAAAA,EAAAA,UAAa,CAAEK,IAAKA,KAAQP,GAAcL,GAG9DM,EAAAA,cAAoBC,EAAAA,EAAAA,UAAa,CAAEK,IAAKA,KAAQP,GACpDC,EAAAA,cAAoBC,EAAAA,EAAAA,MAAS,KAAMP,OAGnDW,EAAeG,YAAc,iBAC7B,W,gDCZA,MAIA,EAH0B,CACtBC,I,SAFQpB,GAAAA,IAAAA,WAAH,iEAAGA,CAAH,OCCHqB,EAAcV,EAAAA,YAAiB,CAAC,EAA+CM,KAAQ,IAAvD,IAAEK,EAAM,GAAR,QAAYC,EAAU,UAAWb,GAAsB,EACzF,OAAQC,EAAAA,cAAoBA,EAAAA,SAAgB,KACxCA,EAAAA,cAAoBC,EAAAA,IAAO,IAAKF,EAAYO,IAAKA,EAAKK,IAAKA,EAAKC,QAASA,EAASC,KAAc,KAARF,EAAa,oBAAiBrF,QAE9HoF,EAAYF,YAAc,cAC1B,W,8MCEA,MAAMpB,GAAYC,EAAAA,EAAAA,IAAOgB,EAAAA,GAAV,2FAAGhB,CAAH,qCAGTe,EAAQf,EAAAA,GAAAA,IAAAA,WAAH,4EAAGA,CAAH,4WACP3E,EAAAA,IAOS2B,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAMN2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAMN2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAoBN2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAKboI,EAAQzB,EAAAA,GAAAA,GAAAA,WAAH,4EAAGA,CAAH,ogCAEL3C,EAAAA,IAGOL,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMZgE,EAAAA,IAEOL,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAEKE,EAAAA,EAAAA,IAAM,GAAI,KAGpB+B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMZgE,EAAAA,IAEOL,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMZgE,EAAAA,IAEOL,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAEKE,EAAAA,EAAAA,IAAM,GAAI,KAGpB+B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMZgE,EAAAA,IAKO/B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMZgE,EAAAA,IAKO/B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMZgE,EAAAA,IAMO/B,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKdjD,EAAAA,EAAAA,IAAa,CAAEF,MAAO,EAAGC,SAAU,MAEjCuL,EAAiB1B,EAAAA,GAAAA,IAAAA,WAAH,qFAAGA,CAAH,o7BAEPhD,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAILiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAULiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKdjD,EAAAA,EAAAA,IAAa,CAAEF,MAAO,IAAMC,SAAU,MAEpCwL,EAAU3B,EAAAA,GAAAA,IAAAA,WAAH,8EAAGA,CAAH,SACTvB,EAAAA,IAEEmD,EAAa5B,EAAAA,GAAAA,IAAAA,WAAH,iFAAGA,CAAH,kDAGL1E,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAIVwI,EAAS7B,EAAAA,GAAAA,OAAAA,WAAH,6EAAGA,CAAH,ogCAEChD,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAMLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAKNiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAOLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKdjD,EAAAA,EAAAA,IAAa,CAAEF,MAAO,GAAKC,SAAU,MAEnC2L,EAAS9B,EAAAA,GAAAA,OAAAA,WAAH,6EAAGA,CAAH,wvBAEChD,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAINiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAOLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAML2D,EAAAA,EAAAA,IAAM3D,EAAAA,GAAAA,cAKNiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAOLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAQLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,cAKLiC,EAAAA,EAAAA,IAAKjC,EAAAA,GAAAA,eAKdjD,EAAAA,EAAAA,IAAa,CAAEF,MAAO,GAAKC,SAAU,MAEnC4L,GAAQ/B,EAAAA,EAAAA,IAAOqB,EAAAA,GAAV,uFAAGrB,CAAH,oBAGLgC,EAAiBhC,EAAAA,GAAAA,WAAAA,WAAH,qFAAGA,CAAH,uCAgCpB,EAdkC,CAC9BiC,SAfajC,EAAAA,GAAAA,KAAAA,WAAH,gFAAGA,CAAH,oCACV/B,EAAAA,GAGAf,EAAAA,EAAAA,UAAAA,SAYAgF,SATalC,EAAAA,GAAAA,KAAAA,WAAH,gFAAGA,CAAH,oCACV/B,EAAAA,GAGAf,EAAAA,EAAAA,UAAAA,MAMA8E,iBACAjC,YACA4B,UACAD,iBACAE,aACAG,QACAF,SACAC,SACAf,QACAU,SC5eG,IAAIU,GACX,SAAWA,GACPA,EAAOA,EAAM,SAAe,GAAK,WACjCA,EAAOA,EAAM,SAAe,GAAK,WACjCA,EAAOA,EAAM,SAAe,GAAK,WACjCA,EAAOA,EAAM,SAAe,GAAK,WACjCA,EAAOA,EAAM,SAAe,GAAK,WACjCA,EAAOA,EAAM,SAAe,GAAK,WACjCA,EAAOA,EAAM,SAAe,GAAK,WAPrC,CAQGA,IAAWA,EAAS,KACvB,MAoBA,EApB4B,IAA0D,IAAzD,QAAEC,EAAF,IAAW3K,EAAX,GAAgB4K,EAAhB,OAAoBC,EAApB,OAA4BC,EAA5B,OAAoCrB,EAApC,MAA4CsB,GAAa,EAClF,MAAOC,EAAchD,IAAUH,EAAAA,EAAAA,GAAU,CAAEoD,WAAY,qBACvD,OAAQ/B,EAAAA,cAAoBC,EAAAA,UAAa,CAAEK,IAAKwB,EAAcJ,GAAIA,EAAI,cAAe5C,EAAQ,cAAeyB,EAAQ,qBAAsBA,IAAWiB,EAAOQ,YAAcJ,GACtK5B,EAAAA,cAAoBC,EAAAA,MAAS,KACzBD,EAAAA,cAAoBC,EAAAA,MAAS,CAAEyB,GAAIG,EAAMI,WAAW,UAAW,KAAKC,eAAiBL,GACrF7B,EAAAA,cAAoBC,EAAAA,eAAkB,KAClCwB,GAAWzB,EAAAA,cAAoBC,EAAAA,QAAW,CAAEkC,wBAAyB,CAAEC,OAAQX,KAC/E3K,GAAQkJ,EAAAA,cAAoBC,EAAAA,WAAc,KACtCD,EAAAA,cAAoBqC,EAAAA,EAAY,CAAE5C,WAAY,UAAW6C,KAAMxL,EAAIyL,IAAK3O,OAAQkD,EAAIlD,QAAUkD,EAAI0L,QAC1Gb,GAAW3B,EAAAA,cAAoBC,EAAAA,OAAU,KACrCD,EAAAA,cAAoBC,EAAAA,MAAS,CAAEU,IAAKgB,EAAOc,QAAS7B,QAAS,OAAQ7F,KAAKH,EAAAA,EAAAA,IAAS+G,EAAQ,CAAEnG,MAAO,QACpGmG,EAAOe,UAAa1C,EAAAA,cAAoBC,EAAAA,eAAkB,KACtD0B,EAAOe,UAAY1C,EAAAA,cAAoBC,EAAAA,SAAY,KAAM0B,EAAOe,UAChEf,EAAOgB,UAAY3C,EAAAA,cAAoBC,EAAAA,SAAY,KAAM0B,EAAOgB,YACxEf,GAAW5B,EAAAA,cAAoBC,EAAAA,OAAU,KACrCD,EAAAA,cAAoBC,EAAAA,MAAS,CAAEU,IAAKiB,EAAOa,QAAS7B,QAAS,OAAQ7F,KAAKH,EAAAA,EAAAA,IAASgH,EAAQ,CAAEpG,MAAO,QACpGoG,EAAOc,UAAa1C,EAAAA,cAAoBC,EAAAA,eAAkB,KACtD2B,EAAOc,UAAY1C,EAAAA,cAAoBC,EAAAA,SAAY,KAAM2B,EAAOc,UAChEd,EAAOe,UAAY3C,EAAAA,cAAoBC,EAAAA,SAAY,KAAM2B,EAAOe,gB,UChCpF,IAAIC,EAAQ,eACRC,EAAgB,IAAIC,OAAOF,EAAO,MAClCG,EAAe,IAAID,OAAO,IAAMF,EAAQ,KAAM,MAElD,SAASI,EAAiBC,EAAYhI,GACrC,IAEC,OAAOiI,mBAAmBD,EAAWnH,KAAK,KACzC,MAAOqH,IAIT,GAA0B,IAAtBF,EAAWlP,OACd,OAAOkP,EAGRhI,EAAQA,GAAS,EAGjB,IAAIG,EAAO6H,EAAWG,MAAM,EAAGnI,GAC3BoI,EAAQJ,EAAWG,MAAMnI,GAE7B,OAAOqI,MAAMpP,UAAUqP,OAAOnP,KAAK,GAAI4O,EAAiB5H,GAAO4H,EAAiBK,IAGjF,SAASG,EAAOC,GACf,IACC,OAAOP,mBAAmBO,GACzB,MAAON,GAGR,IAFA,IAAIO,EAASD,EAAME,MAAMd,GAEhBhP,EAAI,EAAGA,EAAI6P,EAAO3P,OAAQF,IAGlC6P,GAFAD,EAAQT,EAAiBU,EAAQ7P,GAAGiI,KAAK,KAE1B6H,MAAMd,GAGtB,OAAOY,GAyCTG,EAAOC,QAAU,SAAUC,GAC1B,GAA0B,iBAAfA,EACV,MAAM,IAAIC,UAAU,6DAA+DD,EAAa,KAGjG,IAIC,OAHAA,EAAaA,EAAWE,QAAQ,MAAO,KAGhCd,mBAAmBY,GACzB,MAAOX,GAER,OAjDF,SAAkCM,GAQjC,IANA,IAAIQ,EAAa,CAChB,SAAU,KACV,SAAU,MAGPN,EAAQZ,EAAamB,KAAKT,GACvBE,GAAO,CACb,IAECM,EAAWN,EAAM,IAAMT,mBAAmBS,EAAM,IAC/C,MAAOR,GACR,IAAIgB,EAASX,EAAOG,EAAM,IAEtBQ,IAAWR,EAAM,KACpBM,EAAWN,EAAM,IAAMQ,GAIzBR,EAAQZ,EAAamB,KAAKT,GAI3BQ,EAAW,OAAS,IAIpB,IAFA,IAAI/E,EAAUzL,OAAO2Q,KAAKH,GAEjBpQ,EAAI,EAAGA,EAAIqL,EAAQnL,OAAQF,IAAK,CAExC,IAAII,EAAMiL,EAAQrL,GAClB4P,EAAQA,EAAMO,QAAQ,IAAIlB,OAAO7O,EAAK,KAAMgQ,EAAWhQ,IAGxD,OAAOwP,EAeCY,CAAyBP,M,UC1FlCF,EAAOC,QAAU,SAAUS,EAAKC,GAK/B,IAJA,IAAIC,EAAM,GACNJ,EAAO3Q,OAAO2Q,KAAKE,GACnBG,EAAQnB,MAAMoB,QAAQH,GAEjB1Q,EAAI,EAAGA,EAAIuQ,EAAKrQ,OAAQF,IAAK,CACrC,IAAII,EAAMmQ,EAAKvQ,GACX8Q,EAAML,EAAIrQ,IAEVwQ,GAAoC,IAA5BF,EAAUK,QAAQ3Q,GAAcsQ,EAAUtQ,EAAK0Q,EAAKL,MAC/DE,EAAIvQ,GAAO0Q,GAIb,OAAOH,I,gBCdR,MAAMK,EAAkB,EAAQ,OAC1BC,EAAkB,EAAQ,OAC1BC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OAIvBC,EAA2BC,OAAO,4BAgNxC,SAASC,EAA6B5M,GACrC,GAAqB,iBAAVA,GAAuC,IAAjBA,EAAMxE,OACtC,MAAM,IAAIgQ,UAAU,wDAItB,SAASqB,EAAO7M,EAAOyF,GACtB,OAAIA,EAAQoH,OACJpH,EAAQqH,OAASR,EAAgBtM,GAAS+M,mBAAmB/M,GAG9DA,EAGR,SAASiL,EAAOjL,EAAOyF,GACtB,OAAIA,EAAQwF,OACJsB,EAAgBvM,GAGjBA,EAGR,SAASgN,EAAW9B,GACnB,OAAIH,MAAMoB,QAAQjB,GACVA,EAAM+B,OAGO,iBAAV/B,EACH8B,EAAW9R,OAAO2Q,KAAKX,IAC5B+B,MAAK,CAACC,EAAGC,IAAMC,OAAOF,GAAKE,OAAOD,KAClC/J,KAAI1H,GAAOwP,EAAMxP,KAGbwP,EAGR,SAASmC,EAAWnC,GACnB,MAAMoC,EAAYpC,EAAMmB,QAAQ,KAKhC,OAJmB,IAAfiB,IACHpC,EAAQA,EAAML,MAAM,EAAGyC,IAGjBpC,EAaR,SAASqC,EAAQrC,GAEhB,MAAMsC,GADNtC,EAAQmC,EAAWnC,IACMmB,QAAQ,KACjC,OAAoB,IAAhBmB,EACI,GAGDtC,EAAML,MAAM2C,EAAa,GAGjC,SAASC,EAAWzN,EAAOyF,GAO1B,OANIA,EAAQiI,eAAiBN,OAAOO,MAAMP,OAAOpN,KAA6B,iBAAVA,GAAuC,KAAjBA,EAAM4N,OAC/F5N,EAAQoN,OAAOpN,IACLyF,EAAQoI,eAA2B,OAAV7N,GAA2C,SAAxBA,EAAM2J,eAAoD,UAAxB3J,EAAM2J,gBAC9F3J,EAAgC,SAAxBA,EAAM2J,eAGR3J,EAGR,SAAS8N,EAAMC,EAAOtI,GAUrBmH,GATAnH,EAAUvK,OAAOC,OAAO,CACvB8P,QAAQ,EACRgC,MAAM,EACNe,YAAa,OACbC,qBAAsB,IACtBP,cAAc,EACdG,eAAe,GACbpI,IAEkCwI,sBAErC,MAAMC,EA7LP,SAA8BzI,GAC7B,IAAImG,EAEJ,OAAQnG,EAAQuI,aACf,IAAK,QACJ,MAAO,CAACtS,EAAKsE,EAAOmO,KACnBvC,EAAS,aAAaD,KAAKjQ,GAE3BA,EAAMA,EAAI+P,QAAQ,WAAY,IAEzBG,QAKoB7I,IAArBoL,EAAYzS,KACfyS,EAAYzS,GAAO,IAGpByS,EAAYzS,GAAKkQ,EAAO,IAAM5L,GAR7BmO,EAAYzS,GAAOsE,GAWtB,IAAK,UACJ,MAAO,CAACtE,EAAKsE,EAAOmO,KACnBvC,EAAS,UAAUD,KAAKjQ,GACxBA,EAAMA,EAAI+P,QAAQ,QAAS,IAEtBG,OAKoB7I,IAArBoL,EAAYzS,GAKhByS,EAAYzS,GAAO,GAAGsP,OAAOmD,EAAYzS,GAAMsE,GAJ9CmO,EAAYzS,GAAO,CAACsE,GALpBmO,EAAYzS,GAAOsE,GAYtB,IAAK,uBACJ,MAAO,CAACtE,EAAKsE,EAAOmO,KACnBvC,EAAS,WAAWD,KAAKjQ,GACzBA,EAAMA,EAAI+P,QAAQ,SAAU,IAEvBG,OAKoB7I,IAArBoL,EAAYzS,GAKhByS,EAAYzS,GAAO,GAAGsP,OAAOmD,EAAYzS,GAAMsE,GAJ9CmO,EAAYzS,GAAO,CAACsE,GALpBmO,EAAYzS,GAAOsE,GAYtB,IAAK,QACL,IAAK,YACJ,MAAO,CAACtE,EAAKsE,EAAOmO,KACnB,MAAMhC,EAA2B,iBAAVnM,GAAsBA,EAAMoO,SAAS3I,EAAQwI,sBAC9DI,EAAmC,iBAAVrO,IAAuBmM,GAAWlB,EAAOjL,EAAOyF,GAAS2I,SAAS3I,EAAQwI,sBACzGjO,EAAQqO,EAAiBpD,EAAOjL,EAAOyF,GAAWzF,EAClD,MAAMsO,EAAWnC,GAAWkC,EAAiBrO,EAAM0C,MAAM+C,EAAQwI,sBAAsB7K,KAAImL,GAAQtD,EAAOsD,EAAM9I,KAAsB,OAAVzF,EAAiBA,EAAQiL,EAAOjL,EAAOyF,GACnK0I,EAAYzS,GAAO4S,GAGrB,IAAK,oBACJ,MAAO,CAAC5S,EAAKsE,EAAOmO,KACnB,MAAMhC,EAAU,UAAUqC,KAAK9S,GAG/B,GAFAA,EAAMA,EAAI+P,QAAQ,QAAS,KAEtBU,EAEJ,YADAgC,EAAYzS,GAAOsE,EAAQiL,EAAOjL,EAAOyF,GAAWzF,GAIrD,MAAMyO,EAAuB,OAAVzO,EAClB,GACAA,EAAM0C,MAAM+C,EAAQwI,sBAAsB7K,KAAImL,GAAQtD,EAAOsD,EAAM9I,UAE3C1C,IAArBoL,EAAYzS,GAKhByS,EAAYzS,GAAO,GAAGsP,OAAOmD,EAAYzS,GAAM+S,GAJ9CN,EAAYzS,GAAO+S,GAOtB,QACC,MAAO,CAAC/S,EAAKsE,EAAOmO,UACMpL,IAArBoL,EAAYzS,GAKhByS,EAAYzS,GAAO,GAAGsP,OAAOmD,EAAYzS,GAAMsE,GAJ9CmO,EAAYzS,GAAOsE,IAgGL0O,CAAqBjJ,GAGjCwG,EAAM/Q,OAAOyT,OAAO,MAE1B,GAAqB,iBAAVZ,EACV,OAAO9B,EAKR,KAFA8B,EAAQA,EAAMH,OAAOnC,QAAQ,SAAU,KAGtC,OAAOQ,EAGR,IAAK,MAAM2C,KAASb,EAAMrL,MAAM,KAAM,CACrC,GAAc,KAAVkM,EACH,SAGD,IAAKlT,EAAKsE,GAASwM,EAAa/G,EAAQwF,OAAS2D,EAAMnD,QAAQ,MAAO,KAAOmD,EAAO,KAIpF5O,OAAkB+C,IAAV/C,EAAsB,KAAO,CAAC,QAAS,YAAa,qBAAqBoO,SAAS3I,EAAQuI,aAAehO,EAAQiL,EAAOjL,EAAOyF,GACvIyI,EAAUjD,EAAOvP,EAAK+J,GAAUzF,EAAOiM,GAGxC,IAAK,MAAMvQ,KAAOR,OAAO2Q,KAAKI,GAAM,CACnC,MAAMjM,EAAQiM,EAAIvQ,GAClB,GAAqB,iBAAVsE,GAAgC,OAAVA,EAChC,IAAK,MAAM6O,KAAK3T,OAAO2Q,KAAK7L,GAC3BA,EAAM6O,GAAKpB,EAAWzN,EAAM6O,GAAIpJ,QAGjCwG,EAAIvQ,GAAO+R,EAAWzN,EAAOyF,GAI/B,OAAqB,IAAjBA,EAAQwH,KACJhB,IAGiB,IAAjBxG,EAAQwH,KAAgB/R,OAAO2Q,KAAKI,GAAKgB,OAAS/R,OAAO2Q,KAAKI,GAAKgB,KAAKxH,EAAQwH,OAAO6B,QAAO,CAAClD,EAAQlQ,KAC9G,MAAMsE,EAAQiM,EAAIvQ,GAQlB,OAPIqT,QAAQ/O,IAA2B,iBAAVA,IAAuB+K,MAAMoB,QAAQnM,GAEjE4L,EAAOlQ,GAAOsR,EAAWhN,GAEzB4L,EAAOlQ,GAAOsE,EAGR4L,IACL1Q,OAAOyT,OAAO,OAGlBrD,EAAQiC,QAAUA,EAClBjC,EAAQwC,MAAQA,EAEhBxC,EAAQ0D,UAAY,CAACC,EAAQxJ,KAC5B,IAAKwJ,EACJ,MAAO,GAURrC,GAPAnH,EAAUvK,OAAOC,OAAO,CACvB0R,QAAQ,EACRC,QAAQ,EACRkB,YAAa,OACbC,qBAAsB,KACpBxI,IAEkCwI,sBAErC,MAAMiB,EAAexT,GACnB+J,EAAQ0J,UAnXwBnP,MAmXMiP,EAAOvT,IAC7C+J,EAAQ2J,iBAAmC,KAAhBH,EAAOvT,GAG9BwS,EAnXP,SAA+BzI,GAC9B,OAAQA,EAAQuI,aACf,IAAK,QACJ,OAAOtS,GAAO,CAACkQ,EAAQ5L,KACtB,MAAMqP,EAAQzD,EAAOpQ,OAErB,YACWuH,IAAV/C,GACCyF,EAAQ0J,UAAsB,OAAVnP,GACpByF,EAAQ2J,iBAA6B,KAAVpP,EAErB4L,EAGM,OAAV5L,EACI,IAAI4L,EAAQ,CAACiB,EAAOnR,EAAK+J,GAAU,IAAK4J,EAAO,KAAK9L,KAAK,KAG1D,IACHqI,EACH,CAACiB,EAAOnR,EAAK+J,GAAU,IAAKoH,EAAOwC,EAAO5J,GAAU,KAAMoH,EAAO7M,EAAOyF,IAAUlC,KAAK,MAI1F,IAAK,UACJ,OAAO7H,GAAO,CAACkQ,EAAQ5L,SAEX+C,IAAV/C,GACCyF,EAAQ0J,UAAsB,OAAVnP,GACpByF,EAAQ2J,iBAA6B,KAAVpP,EAErB4L,EAGM,OAAV5L,EACI,IAAI4L,EAAQ,CAACiB,EAAOnR,EAAK+J,GAAU,MAAMlC,KAAK,KAG/C,IAAIqI,EAAQ,CAACiB,EAAOnR,EAAK+J,GAAU,MAAOoH,EAAO7M,EAAOyF,IAAUlC,KAAK,KAGhF,IAAK,uBACJ,OAAO7H,GAAO,CAACkQ,EAAQ5L,SAEX+C,IAAV/C,GACCyF,EAAQ0J,UAAsB,OAAVnP,GACpByF,EAAQ2J,iBAA6B,KAAVpP,EAErB4L,EAGM,OAAV5L,EACI,IAAI4L,EAAQ,CAACiB,EAAOnR,EAAK+J,GAAU,UAAUlC,KAAK,KAGnD,IAAIqI,EAAQ,CAACiB,EAAOnR,EAAK+J,GAAU,SAAUoH,EAAO7M,EAAOyF,IAAUlC,KAAK,KAGnF,IAAK,QACL,IAAK,YACL,IAAK,oBAAqB,CACzB,MAAM+L,EAAsC,sBAAxB7J,EAAQuI,YAC3B,MACA,IAED,OAAOtS,GAAO,CAACkQ,EAAQ5L,SAEX+C,IAAV/C,GACCyF,EAAQ0J,UAAsB,OAAVnP,GACpByF,EAAQ2J,iBAA6B,KAAVpP,EAErB4L,GAIR5L,EAAkB,OAAVA,EAAiB,GAAKA,EAER,IAAlB4L,EAAOpQ,OACH,CAAC,CAACqR,EAAOnR,EAAK+J,GAAU6J,EAAazC,EAAO7M,EAAOyF,IAAUlC,KAAK,KAGnE,CAAC,CAACqI,EAAQiB,EAAO7M,EAAOyF,IAAUlC,KAAKkC,EAAQwI,wBAIxD,QACC,OAAOvS,GAAO,CAACkQ,EAAQ5L,SAEX+C,IAAV/C,GACCyF,EAAQ0J,UAAsB,OAAVnP,GACpByF,EAAQ2J,iBAA6B,KAAVpP,EAErB4L,EAGM,OAAV5L,EACI,IAAI4L,EAAQiB,EAAOnR,EAAK+J,IAGzB,IAAImG,EAAQ,CAACiB,EAAOnR,EAAK+J,GAAU,IAAKoH,EAAO7M,EAAOyF,IAAUlC,KAAK,MAgR7DgM,CAAsB9J,GAElC+J,EAAa,GAEnB,IAAK,MAAM9T,KAAOR,OAAO2Q,KAAKoD,GACxBC,EAAaxT,KACjB8T,EAAW9T,GAAOuT,EAAOvT,IAI3B,MAAMmQ,EAAO3Q,OAAO2Q,KAAK2D,GAMzB,OAJqB,IAAjB/J,EAAQwH,MACXpB,EAAKoB,KAAKxH,EAAQwH,MAGZpB,EAAKzI,KAAI1H,IACf,MAAMsE,EAAQiP,EAAOvT,GAErB,YAAcqH,IAAV/C,EACI,GAGM,OAAVA,EACI6M,EAAOnR,EAAK+J,GAGhBsF,MAAMoB,QAAQnM,GACI,IAAjBA,EAAMxE,QAAwC,sBAAxBiK,EAAQuI,YAC1BnB,EAAOnR,EAAK+J,GAAW,KAGxBzF,EACL8O,OAAOZ,EAAUxS,GAAM,IACvB6H,KAAK,KAGDsJ,EAAOnR,EAAK+J,GAAW,IAAMoH,EAAO7M,EAAOyF,MAChDgK,QAAOC,GAAKA,EAAElU,OAAS,IAAG+H,KAAK,MAGnC+H,EAAQqE,SAAW,CAAC3F,EAAKvE,KACxBA,EAAUvK,OAAOC,OAAO,CACvB8P,QAAQ,GACNxF,GAEH,MAAOmK,EAAMC,GAAQrD,EAAaxC,EAAK,KAEvC,OAAO9O,OAAOC,OACb,CACC6O,IAAK4F,EAAKlN,MAAM,KAAK,IAAM,GAC3BqL,MAAOD,EAAMP,EAAQvD,GAAMvE,IAE5BA,GAAWA,EAAQqK,yBAA2BD,EAAO,CAACE,mBAAoB9E,EAAO4E,EAAMpK,IAAY,KAIrG6F,EAAQ0E,aAAe,CAACf,EAAQxJ,KAC/BA,EAAUvK,OAAOC,OAAO,CACvB0R,QAAQ,EACRC,QAAQ,EACR,CAACJ,IAA2B,GAC1BjH,GAEH,MAAMuE,EAAMqD,EAAW4B,EAAOjF,KAAKtH,MAAM,KAAK,IAAM,GAC9CuN,EAAe3E,EAAQiC,QAAQ0B,EAAOjF,KACtCkG,EAAqB5E,EAAQwC,MAAMmC,EAAc,CAAChD,MAAM,IAExDc,EAAQ7S,OAAOC,OAAO+U,EAAoBjB,EAAOlB,OACvD,IAAI7K,EAAcoI,EAAQ0D,UAAUjB,EAAOtI,GACvCvC,IACHA,EAAc,IAAIA,KAGnB,IAAI2M,EAlML,SAAiB7F,GAChB,IAAI6F,EAAO,GACX,MAAMvC,EAAYtD,EAAIqC,QAAQ,KAK9B,OAJmB,IAAfiB,IACHuC,EAAO7F,EAAIa,MAAMyC,IAGXuC,EA2LIM,CAAQlB,EAAOjF,KAK1B,OAJIiF,EAAOc,qBACVF,EAAO,IAAIpK,EAAQiH,GAA4BG,EAAOoC,EAAOc,mBAAoBtK,GAAWwJ,EAAOc,sBAG7F,GAAG/F,IAAM9G,IAAc2M,KAG/BvE,EAAQ8E,KAAO,CAAClF,EAAOuE,EAAQhK,KAC9BA,EAAUvK,OAAOC,OAAO,CACvB2U,yBAAyB,EACzB,CAACpD,IAA2B,GAC1BjH,GAEH,MAAM,IAACuE,EAAG,MAAE+D,EAAK,mBAAEgC,GAAsBzE,EAAQqE,SAASzE,EAAOzF,GACjE,OAAO6F,EAAQ0E,aAAa,CAC3BhG,MACA+D,MAAOtB,EAAasB,EAAO0B,GAC3BM,sBACEtK,IAGJ6F,EAAQ+E,QAAU,CAACnF,EAAOuE,EAAQhK,KACjC,MAAM6K,EAAkBvF,MAAMoB,QAAQsD,GAAU/T,IAAQ+T,EAAOrB,SAAS1S,GAAO,CAACA,EAAKsE,KAAWyP,EAAO/T,EAAKsE,GAE5G,OAAOsL,EAAQ8E,KAAKlF,EAAOoF,EAAiB7K,K,UC9d7C4F,EAAOC,QAAU,CAACiF,EAAQC,KACzB,GAAwB,iBAAXD,GAA4C,iBAAdC,EAC1C,MAAM,IAAIhF,UAAU,iDAGrB,GAAkB,KAAdgF,EACH,MAAO,CAACD,GAGT,MAAME,EAAiBF,EAAOlE,QAAQmE,GAEtC,OAAwB,IAApBC,EACI,CAACF,GAGF,CACNA,EAAO1F,MAAM,EAAG4F,GAChBF,EAAO1F,MAAM4F,EAAiBD,EAAUhV,W,UClB1C6P,EAAOC,QAAUoF,GAAO3D,mBAAmB2D,GAAKjF,QAAQ,YAAYiE,GAAK,IAAIA,EAAEiB,WAAW,GAAGC,SAAS,IAAIC","sources":["webpack://james-fisher/./src/img/icons/arrow-right.svg","webpack://james-fisher/./src/helpers/animate.ts","webpack://james-fisher/./src/helpers/brand.ts","webpack://james-fisher/./src/helpers/cssVar.ts","webpack://james-fisher/./src/helpers/fluid.ts","webpack://james-fisher/./src/helpers/fonts.ts","webpack://james-fisher/./src/helpers/grid.ts","webpack://james-fisher/./src/helpers/image.ts","webpack://james-fisher/./src/helpers/media.ts","webpack://james-fisher/./src/helpers/srOnly.ts","webpack://james-fisher/./src/helpers/typography.ts","webpack://james-fisher/./src/hooks/useIntersectionObserver.ts","webpack://james-fisher/./src/hooks/useInView.ts","webpack://james-fisher/./src/stories/Components/Button/Button.styles.ts","webpack://james-fisher/./src/stories/Components/LinkButton/LinkButton.tsx","webpack://james-fisher/./src/stories/Components/SectionWrapper/SectionWrapper.styles.ts","webpack://james-fisher/./src/stories/Components/SectionWrapper/SectionWrapper.tsx","webpack://james-fisher/./src/stories/Components/SimpleImage/SimpleImage.styles.ts","webpack://james-fisher/./src/stories/Components/SimpleImage/SimpleImage.tsx","webpack://james-fisher/./src/stories/Widgets/ContentIntroSection/ContentIntroSection.styles.ts","webpack://james-fisher/./src/stories/Widgets/ContentIntroSection/ContentIntroSection.tsx","webpack://james-fisher/./node_modules/decode-uri-component/index.js","webpack://james-fisher/./node_modules/filter-obj/index.js","webpack://james-fisher/./node_modules/query-string/index.js","webpack://james-fisher/./node_modules/split-on-first/index.js","webpack://james-fisher/./node_modules/strict-uri-encode/index.js"],"sourcesContent":["var _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgArrowRight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 17 17\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.359 8.494 7.924 1.059M15.359 8.494l-7.435 7.435\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 8.69h13.306\"\n}))));\n\nexport default SvgArrowRight;","import { css } from 'styled-components';\r\nexport const preView10 = '0px 0px 10% 0px';\r\nexport const inViewMargin = '0px 0px -35% 0px';\r\nexport const inView30 = '0px 0px -30% 0px';\r\nexport const inView20 = '0px 0px -20% 0px';\r\nexport const inView50 = '0px 0px -50% 0px';\r\nexport const inView75 = '0px 0px -75% 0px';\r\nexport const inView100 = '0px 0px -100% 0px';\r\nexport const cubicEaseOut = `cubic-bezier(0.33, 1, 0.68, 1)`;\r\nexport function fadeUp(params) {\r\n return css `\r\n opacity: 0;\r\n transform: translateY(20px);\r\n transition: opacity, transform;\r\n transition-delay: ${params.delay}s;\r\n transition-duration: ${params.duration}s;\r\n transition-timing-function: ${cubicEaseOut};\r\n\r\n [data-animate='true'] & {\r\n opacity: 1;\r\n transform: translateY(0px);\r\n }\r\n `;\r\n}\r\nexport function inViewFade(params) {\r\n return css `\r\n transition: opacity;\r\n transition-delay: ${params.delay}s;\r\n transition-duration: ${params.duration}s;\r\n transition-timing-function: ${cubicEaseOut};\r\n\r\n [data-inview='false'] & {\r\n opacity: 0;\r\n }\r\n\r\n [data-inview='true'] & {\r\n opacity: 1;\r\n }\r\n `;\r\n}\r\nexport function inViewFadeUp(params) {\r\n return css `\r\n transition: opacity, transform;\r\n transition-delay: ${params.delay}s;\r\n transition-duration: ${params.duration}s;\r\n transition-timing-function: ${cubicEaseOut};\r\n\r\n [data-inview='false'] & {\r\n opacity: 0;\r\n transform: translateY(20px);\r\n }\r\n\r\n [data-inview='true'] & {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n `;\r\n}\r\nexport const shouldAnimate = (innerCss) => {\r\n return css `\r\n @media (prefers-reduced-motion: no-preference) {\r\n ${innerCss}\r\n }\r\n `;\r\n};\r\nexport const transition = (properties, duration = 0.35, timing = cubicEaseOut) => {\r\n return shouldAnimate(css `\r\n transition: ${properties};\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\nexport function inViewChangeColour(params, initialColor, endColor) {\r\n return css `\r\n transition: color;\r\n transition-delay: ${params.delay}s;\r\n transition-duration: ${params.duration}s;\r\n transition-timing-function: ${cubicEaseOut};\r\n\r\n [data-inview='false'] & {\r\n color: ${initialColor};\r\n }\r\n\r\n [data-inview='true'] & {\r\n color: ${endColor};\r\n }\r\n `;\r\n}\r\n","export default {\r\n black: '#04040F',\r\n blue: {\r\n base: '#0065A4',\r\n },\r\n grey: {\r\n grey1: '#E7E8E9',\r\n grey2: '#707070',\r\n grey3: '#8A8A8A',\r\n grey4: '#4D4D4D',\r\n grey5: '#4D555A',\r\n grey6: '#1C1D1E',\r\n grey7: '#575756',\r\n grey8: '#EBECEC',\r\n cta: '#252829',\r\n // Undocumented grey used in the designs.\r\n otherGrey: '#B1B3B5',\r\n borderGrey: '#C8CACD',\r\n },\r\n sectors: {\r\n oilGasGrey: '#708A97',\r\n marineBlue: '#55BCCA',\r\n defencePurple: '#8B5EA0',\r\n energyGreen: '#4BA559',\r\n nuclearOrange: '#E3772E',\r\n transportRed: '#D34E55',\r\n },\r\n sectorsAlt: {\r\n oilGasGreen: '#00AE4D',\r\n marineBlue: '#16BECF',\r\n nuclearPurple: '#A978B4',\r\n defenceGrey: '#6B8D9B',\r\n renewableYellow: '#FFDD00',\r\n portsTerminalsOrange: '#F37032',\r\n transportRed: '#E44151',\r\n constructionCream: '#EDDF98',\r\n },\r\n validation: {\r\n invalid: '#DA291C',\r\n valid: '#008C15',\r\n },\r\n white: '#FFFFFF',\r\n yellow: {\r\n base: '#FFDD00',\r\n },\r\n};\r\n","const variables = ['gutterWidth', 'sectionMargin', 'sitePadding', 'siteWidth'];\r\nfunction cssVar(name) {\r\n return `var(--${name})`;\r\n}\r\nfunction setCssVar(name, value) {\r\n return `--${name}: ${value}`;\r\n}\r\nexport { cssVar, setCssVar };\r\n","import { Device } from './media';\r\n/**\r\n * Base pixel value for the \"rem\" unit.\r\n */\r\nexport const PIXELS_PER_REM = 16;\r\n/**\r\n * Default pixel value for the min width.\r\n */\r\nexport const DEFAULT_MIN_VALUE = Device.TabletSmall;\r\n/**\r\n * Default pixel value for the max width.\r\n */\r\nexport const DEFAULT_MAX_VALUE = Device.DesktopLarge;\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluid(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const minRem = min / PIXELS_PER_REM;\r\n const maxRem = max / PIXELS_PER_REM;\r\n const minWidthRem = minWidth / PIXELS_PER_REM;\r\n const maxWidthRem = maxWidth / PIXELS_PER_REM;\r\n const slope = (maxRem - minRem) / (maxWidthRem - minWidthRem);\r\n const yAxisIntersection = -minWidthRem * slope + minRem;\r\n const clampMin = `${round(minRem)}rem`;\r\n const clampVal = `${round(yAxisIntersection)}rem + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(maxRem)}rem`;\r\n return `clamp(${clampMin}, ${clampVal}, ${clampMax})`;\r\n}\r\n/**\r\n * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n","import { css } from 'styled-components';\r\nexport default {\r\n helvetica: {\r\n light: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-weight: 300;\r\n font-style: italic;\r\n `,\r\n regular: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-weight: 400;\r\n font-style: italic;\r\n `,\r\n medium: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n mediumItalic: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-weight: 500;\r\n font-style: italic;\r\n `,\r\n bold: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'Helvetica', sans-serif;\r\n font-weight: 700;\r\n font-style: italic;\r\n `,\r\n },\r\n};\r\n","import { css } from 'styled-components';\r\nimport { cssVar, setCssVar } from './cssVar';\r\nimport { Device, from } from './media';\r\nexport const SitePadding = 18;\r\nexport const SiteWidth = 1604;\r\nexport const SiteWidthBreakpoint = SiteWidth + SitePadding * 2;\r\nexport const siteWide = css `\r\n ${setCssVar('sitePadding', `${SitePadding}px`)};\r\n ${setCssVar('siteWidth', `${SiteWidth}px`)};\r\n\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 auto;\r\n max-width: min(\r\n calc(${cssVar('siteWidth')} + ${cssVar('sitePadding')} + ${cssVar('sitePadding')}),\r\n 100vw\r\n );\r\n padding: 0 ${cssVar('sitePadding')};\r\n width: 100%;\r\n`;\r\nexport const baseGrid = css `\r\n ${setCssVar('gutterWidth', '10px')};\r\n\r\n display: grid;\r\n column-gap: ${cssVar('gutterWidth')};\r\n grid-template-columns: repeat(12, 1fr);\r\n\r\n @media ${from(Device.Tablet)} {\r\n ${setCssVar('gutterWidth', '32px')};\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n ${setCssVar('gutterWidth', '64px')};\r\n }\r\n`;\r\n","import queryString from 'query-string';\r\nimport { css } from 'styled-components';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image || !image.src) {\r\n return '';\r\n }\r\n /**\r\n * Remove any query param string to ensure paramsString is applied correctly and\r\n * there are no double definitions (setting a param twice prevents any tranformations)\r\n */\r\n const imageSource = image.src.split('?')[0];\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.left},${image.focalPoint.top}` : undefined,\r\n // Define default quality as 95 to ensure some reduction in size for all but the smallest images\r\n quality: imageParams.width && imageParams.width > 400 ? 95 : undefined,\r\n ...imageParams,\r\n };\r\n const paramsString = queryString.stringify(params);\r\n return `${imageSource}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function srcSet(image, imageParams) {\r\n if (!image || !image.src) {\r\n return '';\r\n }\r\n const pixelDensities = [1, 1.5, 2, 2.5, 3];\r\n return pixelDensities\r\n .map((pd) => `${imageUrl(image, {\r\n ...imageParams,\r\n ...(imageParams.width ? { width: imageParams.width * pd } : {}),\r\n ...(imageParams.height ? { height: imageParams.height * pd } : {}),\r\n })} ${pd}x`)\r\n .join(',');\r\n}\r\n/**\r\n * Re-usable styles for image container where the\r\n * image needs to maintain it's aspect ratio\r\n *\r\n * @param width\r\n * @param height\r\n * @returns\r\n */\r\nexport function imageWrapperPreserveRatio(width, height) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n return css `\r\n position: relative;\r\n height: 0;\r\n overflow: hidden;\r\n overflow: clip;\r\n ${imageWrapperRatioPadding(width, height)};\r\n `;\r\n}\r\n/**\r\n * Calculates the percentage bottom padding\r\n * required to maintain a certain ratio.\r\n *\r\n * To be used in cases where the image ratio\r\n * changes based on viewport.\r\n *\r\n * @param width\r\n * @param height\r\n * @returns padding-bottom: {ratioPercentage}%\r\n */\r\nexport function imageWrapperRatioPadding(width, height) {\r\n if (!width && !height) {\r\n return '';\r\n }\r\n const ratioPercentage = ((height / width) * 100).toFixed(2);\r\n return `padding-bottom: ${ratioPercentage}%`;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"SubActualDesktop\"] = 1800] = \"SubActualDesktop\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","import { css } from 'styled-components';\r\n/**\r\n * Show only for screen readers.\r\n * @description Sourced from https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034\r\n */\r\nconst srOnly = css `\r\n border: 0 !important;\r\n clip: rect(1px, 1px, 1px, 1px) !important;\r\n -webkit-clip-path: inset(50%) !important;\r\n clip-path: inset(50%) !important;\r\n height: 1px !important;\r\n margin: -1px !important;\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: absolute !important;\r\n width: 1px !important;\r\n white-space: nowrap !important;\r\n`;\r\nexport default srOnly;\r\n","import { mix } from 'polished';\r\nimport { css } from 'styled-components';\r\nimport { cubicEaseOut } from './animate';\r\nimport brand from './brand';\r\nimport fonts from './fonts';\r\nimport { Device, from } from './media';\r\nconst headingStyles = css `\r\n color: currentColor;\r\n ${fonts.helvetica.bold};\r\n margin: 0 0 1em;\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n font-size: 42px;\r\n line-height: 50px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 56px;\r\n line-height: 66px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 68px;\r\n line-height: 78px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 72px;\r\n line-height: 82px;\r\n }\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n font-size: 36px;\r\n line-height: 44px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 45px;\r\n line-height: 55px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 52px;\r\n line-height: 62px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 56px;\r\n line-height: 68px;\r\n }\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n font-size: 30px;\r\n line-height: 38px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 33px;\r\n line-height: 43px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 35px;\r\n line-height: 45px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 40px;\r\n line-height: 52px;\r\n }\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n font-size: 25px;\r\n line-height: 33px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 28px;\r\n line-height: 38px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 30px;\r\n line-height: 40px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 32px;\r\n line-height: 44px;\r\n }\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n font-size: 20px;\r\n line-height: 28px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 23px;\r\n line-height: 33px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 25px;\r\n line-height: 35px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 28px;\r\n line-height: 40px;\r\n }\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n ${fonts.helvetica.regular};\r\n font-size: 16px;\r\n line-height: 24px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 20px;\r\n line-height: 30px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 22px;\r\n line-height: 34px;\r\n }\r\n`;\r\nexport const h6Bold = css `\r\n ${headingStyles};\r\n font-size: 16px;\r\n line-height: 24px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 20px;\r\n line-height: 30px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 22px;\r\n line-height: 34px;\r\n }\r\n`;\r\nexport const subhead = css `\r\n ${headingStyles};\r\n ${fonts.helvetica.regular};\r\n font-size: 22px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 24px;\r\n line-height: 32px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 24px;\r\n line-height: 32px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 28px;\r\n line-height: 40px;\r\n }\r\n`;\r\nexport const headingUnderline = css `\r\n position: relative;\r\n padding-bottom: 16px;\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n display: block;\r\n background: ${brand.yellow.base};\r\n height: 10px;\r\n width: 80px;\r\n transform: scaleX(0);\r\n transform-origin: 0 0;\r\n will-change: transform;\r\n transition: transform 0.75s cubic-bezier(0.33, 1, 0.68, 1);\r\n\r\n [data-inview='true'] & {\r\n transform: scaleX(1);\r\n }\r\n }\r\n`;\r\nconst paragraphStyles = css `\r\n color: currentColor;\r\n ${fonts.helvetica.regular};\r\n margin: 0 0 1em;\r\n`;\r\nexport const paragraphHero = css `\r\n ${paragraphStyles};\r\n font-size: 20px;\r\n line-height: 28px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 18px;\r\n line-height: 32px;\r\n }\r\n`;\r\nexport const paragraph = css `\r\n ${paragraphStyles};\r\n font-size: 18px;\r\n line-height: 26px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n font-size: 16px;\r\n line-height: 26px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 16px;\r\n line-height: 26px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 16px;\r\n line-height: 26px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 16px;\r\n line-height: 28px;\r\n }\r\n`;\r\nexport const micro = css `\r\n ${fonts.helvetica.bold};\r\n font-size: 14px;\r\n line-height: 22px;\r\n letter-spacing: -0.01em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 14px;\r\n line-height: 24px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 14px;\r\n line-height: 24px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 14px;\r\n line-height: 26px;\r\n }\r\n`;\r\nexport const contentSub = css `\r\n ${fonts.helvetica.regular};\r\n font-size: 14px;\r\n line-height: 26px;\r\n text-transform: uppercase;\r\n letter-spacing: 0.1em;\r\n`;\r\nexport const link = css `\r\n color: currentColor;\r\n background: linear-gradient(\r\n to right,\r\n var(--accentColor, ${brand.blue.base}),\r\n var(--accentColor, ${brand.blue.base})\r\n );\r\n background-repeat: no-repeat;\r\n background-size: 0% 100%;\r\n padding: 0.25em 4px;\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n transition: background-size 0.15s ${cubicEaseOut}, color 0.15s ${cubicEaseOut};\r\n box-decoration-break: clone;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n background-size: 100% 100%;\r\n color: ${brand.white};\r\n }\r\n`;\r\nexport const tag = css `\r\n ${fonts.helvetica.regular};\r\n font-size: 12px;\r\n letter-spacing: 0.1em;\r\n line-height: 1em;\r\n text-transform: uppercase;\r\n`;\r\nexport const blockquote = css `\r\n ${paragraph};\r\n position: relative;\r\n padding: 8px 0 8px 20px;\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 4px;\r\n height: 100%;\r\n background-color: ${brand.grey.grey1};\r\n }\r\n`;\r\nexport const tagBold = css `\r\n ${tag};\r\n ${fonts.helvetica.bold};\r\n`;\r\nexport const table = css `\r\n background: ${brand.white};\r\n border-collapse: collapse;\r\n color: ${brand.black};\r\n margin-bottom: 1em;\r\n width: 100%;\r\n\r\n thead {\r\n tr {\r\n background: ${brand.blue.base};\r\n\r\n td,\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.helvetica.bold};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:nth-child(odd) {\r\n background: ${mix(0.48, brand.grey.grey1, brand.white)};\r\n }\r\n\r\n &:nth-child(even) {\r\n background: ${mix(0.48, brand.grey.otherGrey, brand.white)};\r\n }\r\n\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.helvetica.bold};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n\r\n td {\r\n border: 2px solid ${brand.white};\r\n ${fonts.helvetica.regular};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 20px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n h1,\r\n .h1-styles {\r\n ${h1}\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h2}\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h3}\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h4}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h5}\r\n }\r\n\r\n h6,\r\n .h6-styles {\r\n ${h6}\r\n }\r\n\r\n .h6-bold-styles {\r\n ${h6Bold}\r\n }\r\n\r\n p {\r\n ${paragraph}\r\n }\r\n\r\n p.subhead,\r\n span.subhead {\r\n ${subhead}\r\n }\r\n\r\n p.hero,\r\n span.hero {\r\n ${paragraphHero}\r\n }\r\n\r\n p.small,\r\n span.small {\r\n ${paragraphSmall}\r\n }\r\n\r\n p.micro,\r\n span.micro {\r\n ${micro}\r\n }\r\n\r\n p.content-sub {\r\n ${contentSub}\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphStyles};\r\n font-size: 18px;\r\n line-height: 26px;\r\n letter-spacing: -0.01em;\r\n margin: 0 0 0.5em;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 18px;\r\n line-height: 36px;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n padding-left: 1.2em;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n padding-left: 1.2em;\r\n }\r\n\r\n li span {\r\n display: inline;\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n height: 4px;\r\n margin: 40px 0;\r\n padding: 0;\r\n width: 100%;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: 80px 0;\r\n }\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n .responsive-table {\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n .brand-black {\r\n color: ${brand.black};\r\n }\r\n\r\n .brand-blue {\r\n color: ${brand.blue.base};\r\n }\r\n\r\n .brand-sectors-defence-purple {\r\n color: ${brand.sectors.defencePurple};\r\n }\r\n\r\n .brand-sectors-energy-green {\r\n color: ${brand.sectors.energyGreen};\r\n }\r\n\r\n .brand-sectors-marine-blue {\r\n color: ${brand.sectors.marineBlue};\r\n }\r\n\r\n .brand-sectors-nuclear-orange {\r\n color: ${brand.sectors.nuclearOrange};\r\n }\r\n\r\n .brand-sectors-oil-gas-grey {\r\n color: ${brand.sectors.oilGasGrey};\r\n }\r\n\r\n .brand-sectors-transport-red {\r\n color: ${brand.sectors.transportRed};\r\n }\r\n\r\n .brand-white {\r\n color: ${brand.white};\r\n }\r\n\r\n .brand-yellow {\r\n color: ${brand.yellow.base};\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import { cubicEaseOut } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, until } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport styled from 'styled-components';\r\nconst Container = styled.button `\r\n display: inline-flex;\r\n align-items: center;\r\n border: 1px solid var(--colorPrimary);\r\n background: none;\r\n background-image: linear-gradient(to right, var(--colorPrimary), var(--colorPrimary));\r\n background-repeat: no-repeat;\r\n background-size: 0% 100%;\r\n color: var(--colorPrimary);\r\n height: 67px;\r\n padding: 0px 24px 0px 40px;\r\n text-decoration: none;\r\n transition: background-size 0.15s ${cubicEaseOut}, border-color 0.15s ${cubicEaseOut};\r\n user-select: none;\r\n width: auto;\r\n\r\n &[data-fill='right'] {\r\n background-position: left center;\r\n }\r\n\r\n &[data-fill='left'] {\r\n background-position: right center;\r\n }\r\n \r\n span& {\r\n button:focus &,\r\n a:focus & {\r\n outline: auto;\r\n outline-offset: 3px;\r\n }\r\n\r\n button:hover &,\r\n a:hover & {\r\n color: var(--colorContrast);\r\n background-size: 100% 100%;\r\n }\r\n\r\n button[data-type='solid']:hover &,\r\n a[data-type='solid']:hover & {\r\n color: var(--colorContrast);\r\n background-size: 0% 100%;\r\n }\r\n }\r\n\r\n &:not(span) {\r\n cursor: pointer;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus {\r\n outline: auto;\r\n outline-offset: 5px;\r\n }\r\n\r\n &:hover {\r\n color: var(--colorContrast);\r\n background-size: 100% 100%;\r\n }\r\n\r\n &[data-type='solid']:hover,\r\n &[data-type='solid-inverted']:hover {\r\n color: var(--colorPrimary);\r\n background-size: 0% 100%;\r\n }\r\n }\r\n\r\n &[data-type='default'] {\r\n --colorPrimary: ${brand.grey.grey6};\r\n --colorContrast: ${brand.white};\r\n }\r\n\r\n &[data-type='inverted'] {\r\n --colorPrimary: ${brand.white};\r\n --colorContrast: ${brand.grey.grey6};\r\n }\r\n\r\n &[data-type='solid'] {\r\n --colorPrimary: ${brand.grey.grey6};\r\n --colorContrast: ${brand.white};\r\n background-size: 100% 100%;\r\n color: var(--colorContrast);\r\n }\r\n\r\n &[data-type='solid-inverted'] {\r\n --colorPrimary: ${brand.white};\r\n --colorContrast: ${brand.grey.grey6};\r\n background-size: 100% 100%;\r\n color: var(--colorContrast);\r\n }\r\n\r\n &[data-icon-only='true'] {\r\n height: 78px;\r\n justify-content: center;\r\n padding: 0;\r\n width: 78px;\r\n }\r\n\r\n /* Increase specificity to override :not(span) style */\r\n &:disabled:disabled:disabled {\r\n --colorPrimary: ${brand.grey.grey3};\r\n --colorContrast: ${brand.grey.grey3};\r\n background-size: 0% 100%;\r\n pointer-events: none;\r\n }\r\n\r\n &[data-type='solid']:disabled:disabled:disabled {\r\n --colorPrimary: ${brand.grey.grey3};\r\n --colorContrast: ${brand.white};\r\n background-size: 100% 100%;\r\n pointer-events: none;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n height: 45px;\r\n padding: 0px 12px;\r\n\r\n &[data-icon-only='true'] {\r\n height: 45px;\r\n width: 45px;\r\n }\r\n }\r\n`;\r\nconst Text = styled.span `\r\n color: currentColor;\r\n ${fonts.helvetica.medium};\r\n font-size: 16px;\r\n line-height: 1em;\r\n text-decoration: none;\r\n transition: color 0.15s ${cubicEaseOut};\r\n\r\n [data-icon-only='true'] & {\r\n ${srOnly};\r\n }\r\n`;\r\nconst IconWrapper = styled.div `\r\n display: block;\r\n color: currentColor;\r\n height: 17px;\r\n margin: 0;\r\n padding: 0;\r\n transition: color 0.15s ${cubicEaseOut};\r\n width: 37px;\r\n\r\n [data-icon-position='left'] & {\r\n margin-right: auto;\r\n order: -1;\r\n padding-right: 20px;\r\n }\r\n\r\n [data-icon-position='right'] & {\r\n margin-left: auto;\r\n order: 1;\r\n padding-left: 20px;\r\n }\r\n\r\n [data-icon-only='true'] & {\r\n color: currentColor;\r\n height: 17px;\r\n margin: 0;\r\n padding: 0;\r\n width: 17px;\r\n }\r\n`;\r\nconst ButtonStyles = {\r\n Container,\r\n IconWrapper,\r\n Text,\r\n};\r\nexport default ButtonStyles;\r\n","import SvgArrow from '@img/icons/arrow-right.svg';\r\nimport * as React from 'react';\r\nimport S from '../Button/Button.styles';\r\nconst LinkButton = ({ buttonType, children, fillDirection = 'right', icon, iconOnly, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(S.Container, { as: \"a\", \"data-fill\": fillDirection, \"data-icon-only\": iconOnly, \"data-icon-position\": iconPosition, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n React.createElement(S.IconWrapper, null, icon ?? React.createElement(SvgArrow, null))));\r\n};\r\nexport default LinkButton;\r\n","import { fluid } from '@helpers/fluid';\r\nimport { siteWide } from '@helpers/grid';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --introSpacing: ${fluid(32, 64)};\r\n --sectionSpacing: ${fluid(48, 96)};\r\n\r\n scroll-margin: var(--headerHeight) 0 0;\r\n`;\r\nconst Inner = styled.div `\r\n ${siteWide}\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef(({ children, layout = 'default', ...otherProps }, ref) => {\r\n switch (layout) {\r\n case 'fullWidth':\r\n return (React.createElement(S.Container, { ref: ref, ...otherProps }, children));\r\n case 'default':\r\n default:\r\n return (React.createElement(S.Container, { ref: ref, ...otherProps },\r\n React.createElement(S.Inner, null, children)));\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import styled from 'styled-components';\r\nconst Img = styled.img ``;\r\nconst SimpleImageStyles = {\r\n Img,\r\n};\r\nexport default SimpleImageStyles;\r\n","import * as React from 'react';\r\nimport S from './SimpleImage.styles';\r\nconst SimpleImage = React.forwardRef(({ alt = '', loading = 'lazy', ...otherProps }, ref) => {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(S.Img, { ...otherProps, ref: ref, alt: alt, loading: loading, role: alt === '' ? 'presentation' : undefined })));\r\n});\r\nSimpleImage.displayName = 'SimpleImage';\r\nexport default SimpleImage;\r\n","import { inViewFadeUp } from '@helpers/animate';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { contentStyles, h3, micro } from '@helpers/typography';\r\nimport SectionWrapper from '@stories/Components/SectionWrapper/SectionWrapper';\r\nimport SimpleImage from '@stories/Components/SimpleImage/SimpleImage';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n margin: var(--sectionSpacing) 0;\r\n`;\r\nconst Inner = styled.div `\r\n ${baseGrid};\r\n\r\n [data-layout='1'] & {\r\n row-gap: 32px;\r\n }\r\n\r\n [data-layout='2'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n row-gap: 32px;\r\n }\r\n }\r\n\r\n [data-layout='3'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n row-gap: 32px;\r\n }\r\n }\r\n\r\n [data-layout='4'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n row-gap: 32px;\r\n }\r\n }\r\n\r\n [data-layout='5'] & {\r\n row-gap: 32px;\r\n }\r\n\r\n [data-layout='6'] & {\r\n row-gap: 32px;\r\n }\r\n\r\n [data-layout='7'] & {\r\n row-gap: 32px;\r\n }\r\n\r\n [data-image-padding='true'] & {\r\n padding-bottom: 125px;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n padding-bottom: 0;\r\n }\r\n }\r\n`;\r\nconst Title = styled.h2 `\r\n [data-layout='1'] & {\r\n ${h3};\r\n margin-bottom: 0;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n max-width: 555px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='2'] & {\r\n ${h3};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n margin-bottom: ${fluid(48, 72)};\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n [data-layout='3'] & {\r\n ${h3};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n max-width: 540px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='4'] & {\r\n ${h3};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n margin-bottom: ${fluid(48, 72)};\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n [data-layout='5'] & {\r\n ${h3};\r\n\r\n grid-column: 1 / span 12;\r\n margin-bottom: 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n grid-row: 1;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n [data-layout='6'] & {\r\n ${h3};\r\n\r\n grid-column: 1 / span 12;\r\n margin-bottom: 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -7 / span 6;\r\n grid-row: 1;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n [data-layout='7'] & {\r\n ${h3};\r\n\r\n grid-column: 1 / span 12;\r\n grid-row: 1;\r\n margin-bottom: 0;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0, duration: 0.3 })};\r\n`;\r\nconst ContentWrapper = styled.div `\r\n [data-layout='1'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n max-width: 635px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='2'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 5;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 4;\r\n }\r\n }\r\n\r\n [data-layout='3'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n max-width: 540px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='4'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -7 / span 6;\r\n max-width: 492px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: -7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='5'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n grid-row: 2 / span 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='6'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -7 / span 6;\r\n grid-row: 2 / span 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: -7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='7'] & {\r\n grid-column: 1 / span 12;\r\n grid-row: 2;\r\n margin-bottom: 0;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0.15, duration: 0.3 })};\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n`;\r\nconst CtaWrapper = styled.div `\r\n margin-top: 24px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-top: 48px;\r\n }\r\n`;\r\nconst Image1 = styled.figure `\r\n [data-layout='1'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 7;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 5;\r\n margin-bottom: 138px;\r\n max-width: 492px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 4;\r\n }\r\n }\r\n\r\n [data-layout='2'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: -8 / span 7;\r\n grid-row: 4;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -7 / span 6;\r\n grid-row: span 2;\r\n margin-left: auto;\r\n max-width: 556px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: -7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='3'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -6 / span 5;\r\n grid-row: 1 / span 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: -7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='4'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 5;\r\n grid-row: 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 4;\r\n }\r\n }\r\n\r\n [data-layout='5'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -7 / span 6;\r\n grid-row: 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: -7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='6'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n grid-row: 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='7'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n grid-row: 3;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0.3, duration: 0.3 })};\r\n`;\r\nconst Image2 = styled.figure `\r\n [data-layout='1'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: -8 / span 7;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n margin-top: auto;\r\n margin-left: auto;\r\n max-width: 556px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='2'] & {\r\n @media ${until(Device.TabletLarge)} {\r\n grid-column: 1 / span 7;\r\n grid-row: 3;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n align-self: flex-end;\r\n grid-column: 1 / span 5;\r\n margin-bottom: -125px;\r\n max-width: 492px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 4;\r\n }\r\n }\r\n\r\n [data-layout='5'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: -7 / span 6;\r\n grid-row: 3;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: -7 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='6'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n grid-row: 3;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n }\r\n }\r\n\r\n [data-layout='7'] & {\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n grid-row: 3;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 7 / span 5;\r\n }\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0.4, duration: 0.3 })};\r\n`;\r\nconst Image = styled(SimpleImage) `\r\n display: block;\r\n`;\r\nconst CaptionWrapper = styled.figcaption `\r\n margin-top: 8px;\r\n text-align: center;\r\n`;\r\nconst Caption1 = styled.span `\r\n ${micro};\r\n\r\n display: block;\r\n ${fonts.helvetica.regular}\r\n margin: 0;\r\n`;\r\nconst Caption2 = styled.span `\r\n ${micro};\r\n\r\n display: block;\r\n ${fonts.helvetica.bold};\r\n margin: 0;\r\n`;\r\nconst ContentIntroSectionStyles = {\r\n Caption1,\r\n Caption2,\r\n CaptionWrapper,\r\n Container,\r\n Content,\r\n ContentWrapper,\r\n CtaWrapper,\r\n Image,\r\n Image1,\r\n Image2,\r\n Inner,\r\n Title,\r\n};\r\nexport default ContentIntroSectionStyles;\r\n","import { imageUrl } from '@helpers/image';\r\nimport { useInView } from '@hooks/useInView';\r\nimport LinkButton from '@stories/Components/LinkButton/LinkButton';\r\nimport * as React from 'react';\r\nimport S from './ContentIntroSection.styles';\r\nexport var Layout;\r\n(function (Layout) {\r\n Layout[Layout[\"LAYOUT_1\"] = 1] = \"LAYOUT_1\";\r\n Layout[Layout[\"LAYOUT_2\"] = 2] = \"LAYOUT_2\";\r\n Layout[Layout[\"LAYOUT_3\"] = 3] = \"LAYOUT_3\";\r\n Layout[Layout[\"LAYOUT_4\"] = 4] = \"LAYOUT_4\";\r\n Layout[Layout[\"LAYOUT_5\"] = 5] = \"LAYOUT_5\";\r\n Layout[Layout[\"LAYOUT_6\"] = 6] = \"LAYOUT_6\";\r\n Layout[Layout[\"LAYOUT_7\"] = 7] = \"LAYOUT_7\";\r\n})(Layout || (Layout = {}));\r\nconst ContentIntroSection = ({ content, cta, id, image1, image2, layout, title, }) => {\r\n const [refContainer, inView] = useInView({ rootMargin: '0px 0px -30% 0px' });\r\n return (React.createElement(S.Container, { ref: refContainer, id: id, \"data-inview\": inView, \"data-layout\": layout, \"data-image-padding\": layout === Layout.LAYOUT_2 && !!image2 },\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.Title, { id: title.replaceAll(/[\\W_]+/g, '-').toLowerCase() }, title),\r\n React.createElement(S.ContentWrapper, null,\r\n content && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: content } }),\r\n cta && (React.createElement(S.CtaWrapper, null,\r\n React.createElement(LinkButton, { buttonType: \"default\", href: cta.url, target: cta.target }, cta.text)))),\r\n image1 && (React.createElement(S.Image1, null,\r\n React.createElement(S.Image, { alt: image1.altText, loading: \"lazy\", src: imageUrl(image1, { width: 492 }) }),\r\n image1.caption1 && (React.createElement(S.CaptionWrapper, null,\r\n image1.caption1 && React.createElement(S.Caption1, null, image1.caption1),\r\n image1.caption2 && React.createElement(S.Caption2, null, image1.caption2))))),\r\n image2 && (React.createElement(S.Image2, null,\r\n React.createElement(S.Image, { alt: image2.altText, loading: \"lazy\", src: imageUrl(image2, { width: 492 }) }),\r\n image2.caption1 && (React.createElement(S.CaptionWrapper, null,\r\n image2.caption1 && React.createElement(S.Caption1, null, image2.caption1),\r\n image2.caption2 && React.createElement(S.Caption2, null, image2.caption2))))))));\r\n};\r\nexport default ContentIntroSection;\r\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n"],"names":["_g","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","viewBox","fill","stroke","strokeLinecap","d","preView10","inViewMargin","inView30","inView20","inView50","cubicEaseOut","inViewFade","params","css","delay","duration","inViewFadeUp","shouldAnimate","innerCss","transition","properties","timing","inViewChangeColour","initialColor","endColor","black","blue","base","grey","grey1","grey2","grey3","grey4","grey5","grey6","grey7","grey8","cta","otherGrey","borderGrey","sectors","oilGasGrey","marineBlue","defencePurple","energyGreen","nuclearOrange","transportRed","sectorsAlt","oilGasGreen","nuclearPurple","defenceGrey","renewableYellow","portsTerminalsOrange","constructionCream","validation","invalid","valid","white","yellow","cssVar","name","setCssVar","value","PIXELS_PER_REM","DEFAULT_MIN_VALUE","Device","DEFAULT_MAX_VALUE","fluid","min","max","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","Math","helvetica","light","lightItalic","regular","regularItalic","medium","mediumItalic","bold","boldItalic","SitePadding","SiteWidth","SiteWidthBreakpoint","siteWide","baseGrid","from","imageUrl","image","imageParams","src","imageSource","split","rxy","focalPoint","left","top","undefined","quality","width","queryString","srcSet","map","pd","height","join","imageWrapperPreserveRatio","imageWrapperRatioPadding","toFixed","imageCoverContainer","relative","size","until","headingStyles","fonts","h1","h2","h3","h4","h5","h6","h6Bold","subhead","headingUnderline","brand","paragraphStyles","paragraphHero","paragraph","paragraphSmall","micro","contentSub","link","tag","blockquote","tagBold","table","mix","contentStyles","callback","options","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","Container","styled","Text","srOnly","IconWrapper","buttonType","children","fillDirection","icon","iconOnly","iconPosition","otherProps","React","S","as","SvgArrow","Inner","SectionWrapper","ref","layout","displayName","Img","SimpleImage","alt","loading","role","Title","ContentWrapper","Content","CtaWrapper","Image1","Image2","Image","CaptionWrapper","Caption1","Caption2","Layout","content","id","image1","image2","title","refContainer","rootMargin","LAYOUT_2","replaceAll","toLowerCase","dangerouslySetInnerHTML","__html","LinkButton","href","url","text","altText","caption1","caption2","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","slice","right","Array","concat","decode","input","tokens","match","module","exports","encodedURI","TypeError","replace","replaceMap","exec","result","keys","customDecodeURIComponent","obj","predicate","ret","isArr","isArray","val","indexOf","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","encode","strict","encodeURIComponent","keysSorter","sort","a","b","Number","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","parse","query","arrayFormat","arrayFormatSeparator","formatter","accumulator","includes","isEncodedArray","newValue","item","test","arrayValue","parserForArrayFormat","create","param","k","reduce","Boolean","stringify","object","shouldFilter","skipNull","skipEmptyString","index","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","pick","exclude","exclusionFilter","string","separator","separatorIndex","str","charCodeAt","toString","toUpperCase"],"sourceRoot":""}