{"version":3,"file":"vendor.85a1d80ff199c358.js","mappings":";;;;;;;;;;;;;;AAAA;AACO,MAAMC,eAAN,SAA8BD,6CAA9B,CAAsC;EACzCE,WAAW,CAACC,MAAD,EAAS;IAChB;IACA,KAAKA,MAAL,GAAcA,MAAd;EACH;;EACQ,IAALC,KAAK,GAAG;IACR,OAAO,KAAKC,QAAL,EAAP;EACH;;EACDC,UAAU,CAACC,UAAD,EAAa;IACnB,MAAMC,YAAY,GAAG,MAAMF,UAAN,CAAiBC,UAAjB,CAArB;;IACA,CAACC,YAAY,CAACC,MAAd,IAAwBF,UAAU,CAACG,IAAX,CAAgB,KAAKP,MAArB,CAAxB;IACA,OAAOK,YAAP;EACH;;EACDH,QAAQ,GAAG;IACP,MAAM;MAAEM,QAAF;MAAYC,WAAZ;MAAyBT;IAAzB,IAAoC,IAA1C;;IACA,IAAIQ,QAAJ,EAAc;MACV,MAAMC,WAAN;IACH;;IACD,KAAKC,cAAL;;IACA,OAAOV,MAAP;EACH;;EACDO,IAAI,CAACN,KAAD,EAAQ;IACR,MAAMM,IAAN,CAAY,KAAKP,MAAL,GAAcC,KAA1B;EACH;;AAvBwC;;;;;;;;;;;;;;;;;ACDtC,MAAMU,qBAAqB,GAAG,CAAC,MAAMC,kBAAkB,CAAC,GAAD,EAAMC,SAAN,EAAiBA,SAAjB,CAAzB,GAA9B;AACA,SAASC,iBAAT,CAA2BC,KAA3B,EAAkC;EACrC,OAAOH,kBAAkB,CAAC,GAAD,EAAMC,SAAN,EAAiBE,KAAjB,CAAzB;AACH;AACM,SAASC,gBAAT,CAA0Bf,KAA1B,EAAiC;EACpC,OAAOW,kBAAkB,CAAC,GAAD,EAAMX,KAAN,EAAaY,SAAb,CAAzB;AACH;AACM,SAASD,kBAAT,CAA4BK,IAA5B,EAAkChB,KAAlC,EAAyCc,KAAzC,EAAgD;EACnD,OAAO;IACHE,IADG;IAEHhB,KAFG;IAGHc;EAHG,CAAP;AAKH;;;;;;;;;;;;;;;;;;;;;ACbD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMY,UAAN,CAAiB;EACpB5B,WAAW,CAAC6B,SAAD,EAAY;IACnB,IAAIA,SAAJ,EAAe;MACX,KAAKzB,UAAL,GAAkByB,SAAlB;IACH;EACJ;;EACDC,IAAI,CAACC,QAAD,EAAW;IACX,MAAMT,UAAU,GAAG,IAAIM,UAAJ,EAAnB;IACAN,UAAU,CAACU,MAAX,GAAoB,IAApB;IACAV,UAAU,CAACS,QAAX,GAAsBA,QAAtB;IACA,OAAOT,UAAP;EACH;;EACDO,SAAS,CAACI,cAAD,EAAiBjB,KAAjB,EAAwBkB,QAAxB,EAAkC;IACvC,MAAM7B,UAAU,GAAG8B,YAAY,CAACF,cAAD,CAAZ,GAA+BA,cAA/B,GAAgD,IAAId,uDAAJ,CAAmBc,cAAnB,EAAmCjB,KAAnC,EAA0CkB,QAA1C,CAAnE;IACAP,gEAAY,CAAC,MAAM;MACf,MAAM;QAAEI,QAAF;QAAYC;MAAZ,IAAuB,IAA7B;MACA3B,UAAU,CAAC+B,GAAX,CAAeL,QAAQ,GAEfA,QAAQ,CAACM,IAAT,CAAchC,UAAd,EAA0B2B,MAA1B,CAFe,GAGjBA,MAAM,GAEA,KAAK5B,UAAL,CAAgBC,UAAhB,CAFA,GAIA,KAAKiC,aAAL,CAAmBjC,UAAnB,CAPZ;IAQH,CAVW,CAAZ;IAWA,OAAOA,UAAP;EACH;;EACDiC,aAAa,CAACC,IAAD,EAAO;IAChB,IAAI;MACA,OAAO,KAAKnC,UAAL,CAAgBmC,IAAhB,CAAP;IACH,CAFD,CAGA,OAAOC,GAAP,EAAY;MACRD,IAAI,CAACvB,KAAL,CAAWwB,GAAX;IACH;EACJ;;EACDC,OAAO,CAACjC,IAAD,EAAOkC,WAAP,EAAoB;IACvBA,WAAW,GAAGC,cAAc,CAACD,WAAD,CAA5B;IACA,OAAO,IAAIA,WAAJ,CAAgB,CAACE,OAAD,EAAUC,MAAV,KAAqB;MACxC,MAAMxC,UAAU,GAAG,IAAIc,uDAAJ,CAAmB;QAClCX,IAAI,EAAGN,KAAD,IAAW;UACb,IAAI;YACAM,IAAI,CAACN,KAAD,CAAJ;UACH,CAFD,CAGA,OAAOsC,GAAP,EAAY;YACRK,MAAM,CAACL,GAAD,CAAN;YACAnC,UAAU,CAACyC,WAAX;UACH;QACJ,CATiC;QAUlC9B,KAAK,EAAE6B,MAV2B;QAWlCX,QAAQ,EAAEU;MAXwB,CAAnB,CAAnB;MAaA,KAAKf,SAAL,CAAexB,UAAf;IACH,CAfM,CAAP;EAgBH;;EACDD,UAAU,CAACC,UAAD,EAAa;IACnB,IAAI0C,EAAJ;;IACA,OAAO,CAACA,EAAE,GAAG,KAAKf,MAAX,MAAuB,IAAvB,IAA+Be,EAAE,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,EAAE,CAAClB,SAAH,CAAaxB,UAAb,CAA/D;EACH;;EACiB,CAAjBkB,0DAAiB,IAAI;IAClB,OAAO,IAAP;EACH;;EACDyB,IAAI,CAAC,GAAGC,UAAJ,EAAgB;IAChB,OAAOzB,yDAAa,CAACyB,UAAD,CAAb,CAA0B,IAA1B,CAAP;EACH;;EACDC,SAAS,CAACR,WAAD,EAAc;IACnBA,WAAW,GAAGC,cAAc,CAACD,WAAD,CAA5B;IACA,OAAO,IAAIA,WAAJ,CAAgB,CAACE,OAAD,EAAUC,MAAV,KAAqB;MACxC,IAAI3C,KAAJ;MACA,KAAK2B,SAAL,CAAgBsB,CAAD,IAAQjD,KAAK,GAAGiD,CAA/B,EAAoCX,GAAD,IAASK,MAAM,CAACL,GAAD,CAAlD,EAAyD,MAAMI,OAAO,CAAC1C,KAAD,CAAtE;IACH,CAHM,CAAP;EAIH;;AAtEmB;;AAwExB0B,UAAU,CAACwB,MAAX,GAAqBvB,SAAD,IAAe;EAC/B,OAAO,IAAID,UAAJ,CAAeC,SAAf,CAAP;AACH,CAFD;;AAGA,SAASc,cAAT,CAAwBD,WAAxB,EAAqC;EACjC,IAAIK,EAAJ;;EACA,OAAO,CAACA,EAAE,GAAGL,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,KAAK,CAA7C,GAAiDA,WAAjD,GAA+DjB,mDAArE,MAAyF,IAAzF,IAAiGsB,EAAE,KAAK,KAAK,CAA7G,GAAiHA,EAAjH,GAAsHM,OAA7H;AACH;;AACD,SAASC,UAAT,CAAoBpD,KAApB,EAA2B;EACvB,OAAOA,KAAK,IAAIwB,4DAAU,CAACxB,KAAK,CAACM,IAAP,CAAnB,IAAmCkB,4DAAU,CAACxB,KAAK,CAACc,KAAP,CAA7C,IAA8DU,4DAAU,CAACxB,KAAK,CAACgC,QAAP,CAA/E;AACH;;AACD,SAASC,YAAT,CAAsBjC,KAAtB,EAA6B;EACzB,OAAQA,KAAK,IAAIA,KAAK,YAAYkB,mDAA3B,IAA2CkC,UAAU,CAACpD,KAAD,CAAV,IAAqBmB,6DAAc,CAACnB,KAAD,CAArF;AACH;;;;;;;;;;;;;;;;;;;;AC3FD;AACA;AACA;AACA;AACA;AACO,MAAMJ,OAAN,SAAsB8B,mDAAtB,CAAiC;EACpC5B,WAAW,GAAG;IACV;IACA,KAAKO,MAAL,GAAc,KAAd;IACA,KAAKoD,gBAAL,GAAwB,IAAxB;IACA,KAAKC,SAAL,GAAiB,EAAjB;IACA,KAAKC,SAAL,GAAiB,KAAjB;IACA,KAAKpD,QAAL,GAAgB,KAAhB;IACA,KAAKC,WAAL,GAAmB,IAAnB;EACH;;EACDoB,IAAI,CAACC,QAAD,EAAW;IACX,MAAM+B,OAAO,GAAG,IAAIC,gBAAJ,CAAqB,IAArB,EAA2B,IAA3B,CAAhB;IACAD,OAAO,CAAC/B,QAAR,GAAmBA,QAAnB;IACA,OAAO+B,OAAP;EACH;;EACDnD,cAAc,GAAG;IACb,IAAI,KAAKJ,MAAT,EAAiB;MACb,MAAM,IAAIkD,kFAAJ,EAAN;IACH;EACJ;;EACDjD,IAAI,CAACN,KAAD,EAAQ;IACRyB,gEAAY,CAAC,MAAM;MACf,KAAKhB,cAAL;;MACA,IAAI,CAAC,KAAKkD,SAAV,EAAqB;QACjB,IAAI,CAAC,KAAKF,gBAAV,EAA4B;UACxB,KAAKA,gBAAL,GAAwBK,KAAK,CAACC,IAAN,CAAW,KAAKL,SAAhB,CAAxB;QACH;;QACD,KAAK,MAAMM,QAAX,IAAuB,KAAKP,gBAA5B,EAA8C;UAC1CO,QAAQ,CAAC1D,IAAT,CAAcN,KAAd;QACH;MACJ;IACJ,CAVW,CAAZ;EAWH;;EACDc,KAAK,CAACwB,GAAD,EAAM;IACPb,gEAAY,CAAC,MAAM;MACf,KAAKhB,cAAL;;MACA,IAAI,CAAC,KAAKkD,SAAV,EAAqB;QACjB,KAAKpD,QAAL,GAAgB,KAAKoD,SAAL,GAAiB,IAAjC;QACA,KAAKnD,WAAL,GAAmB8B,GAAnB;QACA,MAAM;UAAEoB;QAAF,IAAgB,IAAtB;;QACA,OAAOA,SAAS,CAACO,MAAjB,EAAyB;UACrBP,SAAS,CAACQ,KAAV,GAAkBpD,KAAlB,CAAwBwB,GAAxB;QACH;MACJ;IACJ,CAVW,CAAZ;EAWH;;EACDN,QAAQ,GAAG;IACPP,gEAAY,CAAC,MAAM;MACf,KAAKhB,cAAL;;MACA,IAAI,CAAC,KAAKkD,SAAV,EAAqB;QACjB,KAAKA,SAAL,GAAiB,IAAjB;QACA,MAAM;UAAED;QAAF,IAAgB,IAAtB;;QACA,OAAOA,SAAS,CAACO,MAAjB,EAAyB;UACrBP,SAAS,CAACQ,KAAV,GAAkBlC,QAAlB;QACH;MACJ;IACJ,CATW,CAAZ;EAUH;;EACDY,WAAW,GAAG;IACV,KAAKe,SAAL,GAAiB,KAAKtD,MAAL,GAAc,IAA/B;IACA,KAAKqD,SAAL,GAAiB,KAAKD,gBAAL,GAAwB,IAAzC;EACH;;EACW,IAARU,QAAQ,GAAG;IACX,IAAItB,EAAJ;;IACA,OAAO,CAAC,CAACA,EAAE,GAAG,KAAKa,SAAX,MAA0B,IAA1B,IAAkCb,EAAE,KAAK,KAAK,CAA9C,GAAkD,KAAK,CAAvD,GAA2DA,EAAE,CAACoB,MAA/D,IAAyE,CAAhF;EACH;;EACD7B,aAAa,CAACjC,UAAD,EAAa;IACtB,KAAKM,cAAL;;IACA,OAAO,MAAM2B,aAAN,CAAoBjC,UAApB,CAAP;EACH;;EACDD,UAAU,CAACC,UAAD,EAAa;IACnB,KAAKM,cAAL;;IACA,KAAK2D,uBAAL,CAA6BjE,UAA7B;;IACA,OAAO,KAAKkE,eAAL,CAAqBlE,UAArB,CAAP;EACH;;EACDkE,eAAe,CAAClE,UAAD,EAAa;IACxB,MAAM;MAAEI,QAAF;MAAYoD,SAAZ;MAAuBD;IAAvB,IAAqC,IAA3C;;IACA,IAAInD,QAAQ,IAAIoD,SAAhB,EAA2B;MACvB,OAAOL,6DAAP;IACH;;IACD,KAAKG,gBAAL,GAAwB,IAAxB;IACAC,SAAS,CAACY,IAAV,CAAenE,UAAf;IACA,OAAO,IAAIkD,uDAAJ,CAAiB,MAAM;MAC1B,KAAKI,gBAAL,GAAwB,IAAxB;MACAD,0DAAS,CAACE,SAAD,EAAYvD,UAAZ,CAAT;IACH,CAHM,CAAP;EAIH;;EACDiE,uBAAuB,CAACjE,UAAD,EAAa;IAChC,MAAM;MAAEI,QAAF;MAAYC,WAAZ;MAAyBmD;IAAzB,IAAuC,IAA7C;;IACA,IAAIpD,QAAJ,EAAc;MACVJ,UAAU,CAACW,KAAX,CAAiBN,WAAjB;IACH,CAFD,MAGK,IAAImD,SAAJ,EAAe;MAChBxD,UAAU,CAAC6B,QAAX;IACH;EACJ;;EACDuC,YAAY,GAAG;IACX,MAAMnD,UAAU,GAAG,IAAIM,mDAAJ,EAAnB;IACAN,UAAU,CAACU,MAAX,GAAoB,IAApB;IACA,OAAOV,UAAP;EACH;;AApGmC;;AAsGxCxB,OAAO,CAACsD,MAAR,GAAiB,CAACsB,WAAD,EAAc1C,MAAd,KAAyB;EACtC,OAAO,IAAI+B,gBAAJ,CAAqBW,WAArB,EAAkC1C,MAAlC,CAAP;AACH,CAFD;;AAGO,MAAM+B,gBAAN,SAA+BjE,OAA/B,CAAuC;EAC1CE,WAAW,CAAC0E,WAAD,EAAc1C,MAAd,EAAsB;IAC7B;IACA,KAAK0C,WAAL,GAAmBA,WAAnB;IACA,KAAK1C,MAAL,GAAcA,MAAd;EACH;;EACDxB,IAAI,CAACN,KAAD,EAAQ;IACR,IAAI6C,EAAJ,EAAQ4B,EAAR;;IACA,CAACA,EAAE,GAAG,CAAC5B,EAAE,GAAG,KAAK2B,WAAX,MAA4B,IAA5B,IAAoC3B,EAAE,KAAK,KAAK,CAAhD,GAAoD,KAAK,CAAzD,GAA6DA,EAAE,CAACvC,IAAtE,MAAgF,IAAhF,IAAwFmE,EAAE,KAAK,KAAK,CAApG,GAAwG,KAAK,CAA7G,GAAiHA,EAAE,CAACtC,IAAH,CAAQU,EAAR,EAAY7C,KAAZ,CAAjH;EACH;;EACDc,KAAK,CAACwB,GAAD,EAAM;IACP,IAAIO,EAAJ,EAAQ4B,EAAR;;IACA,CAACA,EAAE,GAAG,CAAC5B,EAAE,GAAG,KAAK2B,WAAX,MAA4B,IAA5B,IAAoC3B,EAAE,KAAK,KAAK,CAAhD,GAAoD,KAAK,CAAzD,GAA6DA,EAAE,CAAC/B,KAAtE,MAAiF,IAAjF,IAAyF2D,EAAE,KAAK,KAAK,CAArG,GAAyG,KAAK,CAA9G,GAAkHA,EAAE,CAACtC,IAAH,CAAQU,EAAR,EAAYP,GAAZ,CAAlH;EACH;;EACDN,QAAQ,GAAG;IACP,IAAIa,EAAJ,EAAQ4B,EAAR;;IACA,CAACA,EAAE,GAAG,CAAC5B,EAAE,GAAG,KAAK2B,WAAX,MAA4B,IAA5B,IAAoC3B,EAAE,KAAK,KAAK,CAAhD,GAAoD,KAAK,CAAzD,GAA6DA,EAAE,CAACb,QAAtE,MAAoF,IAApF,IAA4FyC,EAAE,KAAK,KAAK,CAAxG,GAA4G,KAAK,CAAjH,GAAqHA,EAAE,CAACtC,IAAH,CAAQU,EAAR,CAArH;EACH;;EACD3C,UAAU,CAACC,UAAD,EAAa;IACnB,IAAI0C,EAAJ,EAAQ4B,EAAR;;IACA,OAAO,CAACA,EAAE,GAAG,CAAC5B,EAAE,GAAG,KAAKf,MAAX,MAAuB,IAAvB,IAA+Be,EAAE,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,EAAE,CAAClB,SAAH,CAAaxB,UAAb,CAA9D,MAA4F,IAA5F,IAAoGsE,EAAE,KAAK,KAAK,CAAhH,GAAoHA,EAApH,GAAyHnB,6DAAhI;EACH;;AArByC;;;;;;;;;;;;;;;;;;;;;;;;AC9G9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMpC,UAAN,SAAyBmC,uDAAzB,CAAsC;EACzCvD,WAAW,CAAC0E,WAAD,EAAc;IACrB;IACA,KAAKb,SAAL,GAAiB,KAAjB;;IACA,IAAIa,WAAJ,EAAiB;MACb,KAAKA,WAAL,GAAmBA,WAAnB;;MACA,IAAIrD,6DAAc,CAACqD,WAAD,CAAlB,EAAiC;QAC7BA,WAAW,CAACtC,GAAZ,CAAgB,IAAhB;MACH;IACJ,CALD,MAMK;MACD,KAAKsC,WAAL,GAAmBM,cAAnB;IACH;EACJ;;EACY,OAAN5B,MAAM,CAAC5C,IAAD,EAAOQ,KAAP,EAAckB,QAAd,EAAwB;IACjC,OAAO,IAAIf,cAAJ,CAAmBX,IAAnB,EAAyBQ,KAAzB,EAAgCkB,QAAhC,CAAP;EACH;;EACD1B,IAAI,CAACN,KAAD,EAAQ;IACR,IAAI,KAAK2D,SAAT,EAAoB;MAChBoB,yBAAyB,CAAChE,wEAAgB,CAACf,KAAD,CAAjB,EAA0B,IAA1B,CAAzB;IACH,CAFD,MAGK;MACD,KAAKgF,KAAL,CAAWhF,KAAX;IACH;EACJ;;EACDc,KAAK,CAACwB,GAAD,EAAM;IACP,IAAI,KAAKqB,SAAT,EAAoB;MAChBoB,yBAAyB,CAAClE,yEAAiB,CAACyB,GAAD,CAAlB,EAAyB,IAAzB,CAAzB;IACH,CAFD,MAGK;MACD,KAAKqB,SAAL,GAAiB,IAAjB;;MACA,KAAKsB,MAAL,CAAY3C,GAAZ;IACH;EACJ;;EACDN,QAAQ,GAAG;IACP,IAAI,KAAK2B,SAAT,EAAoB;MAChBoB,yBAAyB,CAACrE,yEAAD,EAAwB,IAAxB,CAAzB;IACH,CAFD,MAGK;MACD,KAAKiD,SAAL,GAAiB,IAAjB;;MACA,KAAKuB,SAAL;IACH;EACJ;;EACDtC,WAAW,GAAG;IACV,IAAI,CAAC,KAAKvC,MAAV,EAAkB;MACd,KAAKsD,SAAL,GAAiB,IAAjB;MACA,MAAMf,WAAN;MACA,KAAK4B,WAAL,GAAmB,IAAnB;IACH;EACJ;;EACDQ,KAAK,CAAChF,KAAD,EAAQ;IACT,KAAKwE,WAAL,CAAiBlE,IAAjB,CAAsBN,KAAtB;EACH;;EACDiF,MAAM,CAAC3C,GAAD,EAAM;IACR,IAAI;MACA,KAAKkC,WAAL,CAAiB1D,KAAjB,CAAuBwB,GAAvB;IACH,CAFD,SAGQ;MACJ,KAAKM,WAAL;IACH;EACJ;;EACDsC,SAAS,GAAG;IACR,IAAI;MACA,KAAKV,WAAL,CAAiBxC,QAAjB;IACH,CAFD,SAGQ;MACJ,KAAKY,WAAL;IACH;EACJ;;AApEwC;AAsE7C,MAAMuC,KAAK,GAAGC,QAAQ,CAACC,SAAT,CAAmBC,IAAjC;;AACA,SAASA,IAAT,CAAcC,EAAd,EAAkBC,OAAlB,EAA2B;EACvB,OAAOL,KAAK,CAAChD,IAAN,CAAWoD,EAAX,EAAeC,OAAf,CAAP;AACH;;AACD,MAAMC,gBAAN,CAAuB;EACnB3F,WAAW,CAAC4F,eAAD,EAAkB;IACzB,KAAKA,eAAL,GAAuBA,eAAvB;EACH;;EACDpF,IAAI,CAACN,KAAD,EAAQ;IACR,MAAM;MAAE0F;IAAF,IAAsB,IAA5B;;IACA,IAAIA,eAAe,CAACpF,IAApB,EAA0B;MACtB,IAAI;QACAoF,eAAe,CAACpF,IAAhB,CAAqBN,KAArB;MACH,CAFD,CAGA,OAAOc,KAAP,EAAc;QACV6E,oBAAoB,CAAC7E,KAAD,CAApB;MACH;IACJ;EACJ;;EACDA,KAAK,CAACwB,GAAD,EAAM;IACP,MAAM;MAAEoD;IAAF,IAAsB,IAA5B;;IACA,IAAIA,eAAe,CAAC5E,KAApB,EAA2B;MACvB,IAAI;QACA4E,eAAe,CAAC5E,KAAhB,CAAsBwB,GAAtB;MACH,CAFD,CAGA,OAAOxB,KAAP,EAAc;QACV6E,oBAAoB,CAAC7E,KAAD,CAApB;MACH;IACJ,CAPD,MAQK;MACD6E,oBAAoB,CAACrD,GAAD,CAApB;IACH;EACJ;;EACDN,QAAQ,GAAG;IACP,MAAM;MAAE0D;IAAF,IAAsB,IAA5B;;IACA,IAAIA,eAAe,CAAC1D,QAApB,EAA8B;MAC1B,IAAI;QACA0D,eAAe,CAAC1D,QAAhB;MACH,CAFD,CAGA,OAAOlB,KAAP,EAAc;QACV6E,oBAAoB,CAAC7E,KAAD,CAApB;MACH;IACJ;EACJ;;AAvCkB;;AAyChB,MAAMG,cAAN,SAA6BC,UAA7B,CAAwC;EAC3CpB,WAAW,CAACiC,cAAD,EAAiBjB,KAAjB,EAAwBkB,QAAxB,EAAkC;IACzC;IACA,IAAI0D,eAAJ;;IACA,IAAIlE,4DAAU,CAACO,cAAD,CAAV,IAA8B,CAACA,cAAnC,EAAmD;MAC/C2D,eAAe,GAAG;QACdpF,IAAI,EAAGyB,cAAc,KAAK,IAAnB,IAA2BA,cAAc,KAAK,KAAK,CAAnD,GAAuDA,cAAvD,GAAwEnB,SADjE;QAEdE,KAAK,EAAEA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqCA,KAArC,GAA6CF,SAFtC;QAGdoB,QAAQ,EAAEA,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,KAAK,CAAvC,GAA2CA,QAA3C,GAAsDpB;MAHlD,CAAlB;IAKH,CAND,MAOK;MACD,IAAIgF,OAAJ;;MACA,IAAI,QAAQrE,oEAAZ,EAA6C;QACzCqE,OAAO,GAAGE,MAAM,CAAC5C,MAAP,CAAcnB,cAAd,CAAV;;QACA6D,OAAO,CAAChD,WAAR,GAAsB,MAAM,KAAKA,WAAL,EAA5B;;QACA8C,eAAe,GAAG;UACdpF,IAAI,EAAEyB,cAAc,CAACzB,IAAf,IAAuBgF,IAAI,CAACvD,cAAc,CAACzB,IAAhB,EAAsBsF,OAAtB,CADnB;UAEd9E,KAAK,EAAEiB,cAAc,CAACjB,KAAf,IAAwBwE,IAAI,CAACvD,cAAc,CAACjB,KAAhB,EAAuB8E,OAAvB,CAFrB;UAGd5D,QAAQ,EAAED,cAAc,CAACC,QAAf,IAA2BsD,IAAI,CAACvD,cAAc,CAACC,QAAhB,EAA0B4D,OAA1B;QAH3B,CAAlB;MAKH,CARD,MASK;QACDF,eAAe,GAAG3D,cAAlB;MACH;IACJ;;IACD,KAAKyC,WAAL,GAAmB,IAAIiB,gBAAJ,CAAqBC,eAArB,CAAnB;EACH;;AA3B0C;;AA6B/C,SAASC,oBAAT,CAA8B7E,KAA9B,EAAqC;EACjC,IAAIS,iFAAJ,EAAkD;IAC9CsD,gEAAY,CAAC/D,KAAD,CAAZ;EACH,CAFD,MAGK;IACD4D,gFAAoB,CAAC5D,KAAD,CAApB;EACH;AACJ;;AACD,SAASkF,mBAAT,CAA6B1D,GAA7B,EAAkC;EAC9B,MAAMA,GAAN;AACH;;AACD,SAASyC,yBAAT,CAAmCkB,YAAnC,EAAiD9F,UAAjD,EAA6D;EACzD,MAAM;IAAE+F;EAAF,IAA4B3E,2CAAlC;EACA2E,qBAAqB,IAAItB,kFAAA,CAA2B,MAAMsB,qBAAqB,CAACD,YAAD,EAAe9F,UAAf,CAAtD,CAAzB;AACH;;AACM,MAAM2E,cAAc,GAAG;EAC1BzE,MAAM,EAAE,IADkB;EAE1BC,IAAI,EAAEqE,4CAFoB;EAG1B7D,KAAK,EAAEkF,mBAHmB;EAI1BhE,QAAQ,EAAE2C,4CAAIA;AAJY,CAAvB;;;;;;;;;;;;;;;;;;;ACvKP;AACA;AACA;AACO,MAAMtB,YAAN,CAAmB;EACtBvD,WAAW,CAACuG,eAAD,EAAkB;IACzB,KAAKA,eAAL,GAAuBA,eAAvB;IACA,KAAKhG,MAAL,GAAc,KAAd;IACA,KAAKiG,UAAL,GAAkB,IAAlB;IACA,KAAKC,WAAL,GAAmB,IAAnB;EACH;;EACD3D,WAAW,GAAG;IACV,IAAI4D,MAAJ;;IACA,IAAI,CAAC,KAAKnG,MAAV,EAAkB;MACd,KAAKA,MAAL,GAAc,IAAd;MACA,MAAM;QAAEiG;MAAF,IAAiB,IAAvB;;MACA,IAAIA,UAAJ,EAAgB;QACZ,KAAKA,UAAL,GAAkB,IAAlB;;QACA,IAAIxC,KAAK,CAAC2C,OAAN,CAAcH,UAAd,CAAJ,EAA+B;UAC3B,KAAK,MAAMI,MAAX,IAAqBJ,UAArB,EAAiC;YAC7BI,MAAM,CAACC,MAAP,CAAc,IAAd;UACH;QACJ,CAJD,MAKK;UACDL,UAAU,CAACK,MAAX,CAAkB,IAAlB;QACH;MACJ;;MACD,MAAM;QAAEN,eAAe,EAAEO;MAAnB,IAAwC,IAA9C;;MACA,IAAIpF,4DAAU,CAACoF,gBAAD,CAAd,EAAkC;QAC9B,IAAI;UACAA,gBAAgB;QACnB,CAFD,CAGA,OAAOC,CAAP,EAAU;UACNL,MAAM,GAAGK,CAAC,YAAYT,0EAAb,GAAmCS,CAAC,CAACL,MAArC,GAA8C,CAACK,CAAD,CAAvD;QACH;MACJ;;MACD,MAAM;QAAEN;MAAF,IAAkB,IAAxB;;MACA,IAAIA,WAAJ,EAAiB;QACb,KAAKA,WAAL,GAAmB,IAAnB;;QACA,KAAK,MAAMO,SAAX,IAAwBP,WAAxB,EAAqC;UACjC,IAAI;YACAQ,aAAa,CAACD,SAAD,CAAb;UACH,CAFD,CAGA,OAAOxE,GAAP,EAAY;YACRkE,MAAM,GAAGA,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuCA,MAAvC,GAAgD,EAAzD;;YACA,IAAIlE,GAAG,YAAY8D,0EAAnB,EAAwC;cACpCI,MAAM,GAAG,CAAC,GAAGA,MAAJ,EAAY,GAAGlE,GAAG,CAACkE,MAAnB,CAAT;YACH,CAFD,MAGK;cACDA,MAAM,CAAClC,IAAP,CAAYhC,GAAZ;YACH;UACJ;QACJ;MACJ;;MACD,IAAIkE,MAAJ,EAAY;QACR,MAAM,IAAIJ,0EAAJ,CAAwBI,MAAxB,CAAN;MACH;IACJ;EACJ;;EACDtE,GAAG,CAAC8E,QAAD,EAAW;IACV,IAAInE,EAAJ;;IACA,IAAImE,QAAQ,IAAIA,QAAQ,KAAK,IAA7B,EAAmC;MAC/B,IAAI,KAAK3G,MAAT,EAAiB;QACb0G,aAAa,CAACC,QAAD,CAAb;MACH,CAFD,MAGK;QACD,IAAIA,QAAQ,YAAY3D,YAAxB,EAAsC;UAClC,IAAI2D,QAAQ,CAAC3G,MAAT,IAAmB2G,QAAQ,CAACC,UAAT,CAAoB,IAApB,CAAvB,EAAkD;YAC9C;UACH;;UACDD,QAAQ,CAACE,UAAT,CAAoB,IAApB;QACH;;QACD,CAAC,KAAKX,WAAL,GAAmB,CAAC1D,EAAE,GAAG,KAAK0D,WAAX,MAA4B,IAA5B,IAAoC1D,EAAE,KAAK,KAAK,CAAhD,GAAoDA,EAApD,GAAyD,EAA7E,EAAiFyB,IAAjF,CAAsF0C,QAAtF;MACH;IACJ;EACJ;;EACDC,UAAU,CAACP,MAAD,EAAS;IACf,MAAM;MAAEJ;IAAF,IAAiB,IAAvB;IACA,OAAOA,UAAU,KAAKI,MAAf,IAA0B5C,KAAK,CAAC2C,OAAN,CAAcH,UAAd,KAA6BA,UAAU,CAACa,QAAX,CAAoBT,MAApB,CAA9D;EACH;;EACDQ,UAAU,CAACR,MAAD,EAAS;IACf,MAAM;MAAEJ;IAAF,IAAiB,IAAvB;IACA,KAAKA,UAAL,GAAkBxC,KAAK,CAAC2C,OAAN,CAAcH,UAAd,KAA6BA,UAAU,CAAChC,IAAX,CAAgBoC,MAAhB,GAAyBJ,UAAtD,IAAoEA,UAAU,GAAG,CAACA,UAAD,EAAaI,MAAb,CAAH,GAA0BA,MAA1H;EACH;;EACDU,aAAa,CAACV,MAAD,EAAS;IAClB,MAAM;MAAEJ;IAAF,IAAiB,IAAvB;;IACA,IAAIA,UAAU,KAAKI,MAAnB,EAA2B;MACvB,KAAKJ,UAAL,GAAkB,IAAlB;IACH,CAFD,MAGK,IAAIxC,KAAK,CAAC2C,OAAN,CAAcH,UAAd,CAAJ,EAA+B;MAChC9C,0DAAS,CAAC8C,UAAD,EAAaI,MAAb,CAAT;IACH;EACJ;;EACDC,MAAM,CAACK,QAAD,EAAW;IACb,MAAM;MAAET;IAAF,IAAkB,IAAxB;IACAA,WAAW,IAAI/C,0DAAS,CAAC+C,WAAD,EAAcS,QAAd,CAAxB;;IACA,IAAIA,QAAQ,YAAY3D,YAAxB,EAAsC;MAClC2D,QAAQ,CAACI,aAAT,CAAuB,IAAvB;IACH;EACJ;;AA/FqB;;AAiG1B/D,YAAY,CAACgE,KAAb,GAAqB,CAAC,MAAM;EACxB,MAAMC,KAAK,GAAG,IAAIjE,YAAJ,EAAd;EACAiE,KAAK,CAACjH,MAAN,GAAe,IAAf;EACA,OAAOiH,KAAP;AACH,CAJoB,GAArB;;AAKO,MAAMhE,kBAAkB,GAAGD,YAAY,CAACgE,KAAxC;AACA,SAASlG,cAAT,CAAwBnB,KAAxB,EAA+B;EAClC,OAAQA,KAAK,YAAYqD,YAAjB,IACHrD,KAAK,IAAI,YAAYA,KAArB,IAA8BwB,4DAAU,CAACxB,KAAK,CAAC2G,MAAP,CAAxC,IAA0DnF,4DAAU,CAACxB,KAAK,CAACkC,GAAP,CAApE,IAAmFV,4DAAU,CAACxB,KAAK,CAAC4C,WAAP,CADlG;AAEH;;AACD,SAASmE,aAAT,CAAuBD,SAAvB,EAAkC;EAC9B,IAAItF,4DAAU,CAACsF,SAAD,CAAd,EAA2B;IACvBA,SAAS;EACZ,CAFD,MAGK;IACDA,SAAS,CAAClE,WAAV;EACH;AACJ;;;;;;;;;;;;;;ACrHM,MAAMrB,MAAM,GAAG;EAClBgG,gBAAgB,EAAE,IADA;EAElBrB,qBAAqB,EAAE,IAFL;EAGlB/C,OAAO,EAAEvC,SAHS;EAIlBmF,qCAAqC,EAAE,KAJrB;EAKlBF,wBAAwB,EAAE;AALR,CAAf;;;;;;;;;;;;;;;;;;;ACAP;AACA;AACA;AACA;AACA;AACO,MAAM+B,qBAAN,SAAoClG,mDAApC,CAA+C;EAClD5B,WAAW,CAACgC,MAAD,EAAS+F,cAAT,EAAyB;IAChC;IACA,KAAK/F,MAAL,GAAcA,MAAd;IACA,KAAK+F,cAAL,GAAsBA,cAAtB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,SAAL,GAAiB,CAAjB;IACA,KAAKC,WAAL,GAAmB,IAAnB;;IACA,IAAIL,mDAAO,CAAC7F,MAAD,CAAX,EAAqB;MACjB,KAAKF,IAAL,GAAYE,MAAM,CAACF,IAAnB;IACH;EACJ;;EACD1B,UAAU,CAACC,UAAD,EAAa;IACnB,OAAO,KAAK8H,UAAL,GAAkBtG,SAAlB,CAA4BxB,UAA5B,CAAP;EACH;;EACD8H,UAAU,GAAG;IACT,MAAMrE,OAAO,GAAG,KAAKkE,QAArB;;IACA,IAAI,CAAClE,OAAD,IAAYA,OAAO,CAACD,SAAxB,EAAmC;MAC/B,KAAKmE,QAAL,GAAgB,KAAKD,cAAL,EAAhB;IACH;;IACD,OAAO,KAAKC,QAAZ;EACH;;EACDI,SAAS,GAAG;IACR,KAAKH,SAAL,GAAiB,CAAjB;IACA,MAAM;MAAEC;IAAF,IAAkB,IAAxB;IACA,KAAKF,QAAL,GAAgB,KAAKE,WAAL,GAAmB,IAAnC;IACAA,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,WAAW,CAACpF,WAAZ,EAA1D;EACH;;EACDuF,OAAO,GAAG;IACN,IAAIC,UAAU,GAAG,KAAKJ,WAAtB;;IACA,IAAI,CAACI,UAAL,EAAiB;MACbA,UAAU,GAAG,KAAKJ,WAAL,GAAmB,IAAI3E,uDAAJ,EAAhC;MACA,MAAMO,OAAO,GAAG,KAAKqE,UAAL,EAAhB;MACAG,UAAU,CAAClG,GAAX,CAAe,KAAKJ,MAAL,CAAYH,SAAZ,CAAsB+F,uFAAwB,CAAC9D,OAAD,EAAUhD,SAAV,EAAqB,MAAM;QACpF,KAAKsH,SAAL;;QACAtE,OAAO,CAAC5B,QAAR;MACH,CAH4D,EAGzDM,GAAD,IAAS;QACR,KAAK4F,SAAL;;QACAtE,OAAO,CAAC9C,KAAR,CAAcwB,GAAd;MACH,CAN4D,EAM1D,MAAM,KAAK4F,SAAL,EANoD,CAA9C,CAAf;;MAOA,IAAIE,UAAU,CAAC/H,MAAf,EAAuB;QACnB,KAAK2H,WAAL,GAAmB,IAAnB;QACAI,UAAU,GAAG/E,6DAAb;MACH;IACJ;;IACD,OAAO+E,UAAP;EACH;;EACDZ,QAAQ,GAAG;IACP,OAAOC,6DAAmB,GAAG,IAAH,CAA1B;EACH;;AAjDiD;;;;;;;;;;;;;;;;;;;;;;;;ACLtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASmB,aAAT,CAAuB,GAAGC,IAA1B,EAAgC;EACnC,MAAMC,SAAS,GAAGL,wDAAY,CAACI,IAAD,CAA9B;EACA,MAAME,cAAc,GAAGP,6DAAiB,CAACK,IAAD,CAAxC;EACA,MAAM;IAAEA,IAAI,EAAEG,WAAR;IAAqBC;EAArB,IAA8BZ,gFAAoB,CAACQ,IAAD,CAAxD;;EACA,IAAIG,WAAW,CAAC/E,MAAZ,KAAuB,CAA3B,EAA8B;IAC1B,OAAOF,2CAAI,CAAC,EAAD,EAAK+E,SAAL,CAAX;EACH;;EACD,MAAMI,MAAM,GAAG,IAAIxH,mDAAJ,CAAeyH,iBAAiB,CAACH,WAAD,EAAcF,SAAd,EAAyBG,IAAI,GAEnEG,MAAD,IAAYV,gEAAY,CAACO,IAAD,EAAOG,MAAP,CAF4C,GAIpEd,oDAJuC,CAAhC,CAAf;EAKA,OAAOS,cAAc,GAAGG,MAAM,CAACpG,IAAP,CAAYyF,wEAAgB,CAACQ,cAAD,CAA5B,CAAH,GAAmDG,MAAxE;AACH;AACM,SAASC,iBAAT,CAA2BH,WAA3B,EAAwCF,SAAxC,EAAmDO,cAAc,GAAGf,oDAApE,EAA8E;EACjF,OAAQnI,UAAD,IAAgB;IACnBmJ,aAAa,CAACR,SAAD,EAAY,MAAM;MAC3B,MAAM;QAAE7E;MAAF,IAAa+E,WAAnB;MACA,MAAMI,MAAM,GAAG,IAAItF,KAAJ,CAAUG,MAAV,CAAf;MACA,IAAIsF,MAAM,GAAGtF,MAAb;MACA,IAAIuF,oBAAoB,GAAGvF,MAA3B;;MACA,KAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGxF,MAApB,EAA4BwF,CAAC,EAA7B,EAAiC;QAC7BH,aAAa,CAACR,SAAD,EAAY,MAAM;UAC3B,MAAMhH,MAAM,GAAGiC,2CAAI,CAACiF,WAAW,CAACS,CAAD,CAAZ,EAAiBX,SAAjB,CAAnB;UACA,IAAIY,aAAa,GAAG,KAApB;UACA5H,MAAM,CAACH,SAAP,CAAiB+F,uFAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;YAC7DoJ,MAAM,CAACK,CAAD,CAAN,GAAYzJ,KAAZ;;YACA,IAAI,CAAC0J,aAAL,EAAoB;cAChBA,aAAa,GAAG,IAAhB;cACAF,oBAAoB;YACvB;;YACD,IAAI,CAACA,oBAAL,EAA2B;cACvBrJ,UAAU,CAACG,IAAX,CAAgB+I,cAAc,CAACD,MAAM,CAACO,KAAP,EAAD,CAA9B;YACH;UACJ,CATwC,EAStC,MAAM;YACL,IAAI,CAAC,GAAEJ,MAAP,EAAe;cACXpJ,UAAU,CAAC6B,QAAX;YACH;UACJ,CAbwC,CAAzC;QAcH,CAjBY,EAiBV7B,UAjBU,CAAb;MAkBH;IACJ,CAzBY,EAyBVA,UAzBU,CAAb;EA0BH,CA3BD;AA4BH;;AACD,SAASmJ,aAAT,CAAuBR,SAAvB,EAAkCc,OAAlC,EAA2CxJ,YAA3C,EAAyD;EACrD,IAAI0I,SAAJ,EAAe;IACXH,sEAAe,CAACvI,YAAD,EAAe0I,SAAf,EAA0Bc,OAA1B,CAAf;EACH,CAFD,MAGK;IACDA,OAAO;EACV;AACJ;;;;;;;;;;;;;;;;;AC5DD;AACA;AACA;AACO,SAASE,MAAT,CAAgB,GAAGjB,IAAnB,EAAyB;EAC5B,OAAOgB,+DAAS,GAAG9F,2CAAI,CAAC8E,IAAD,EAAOJ,wDAAY,CAACI,IAAD,CAAnB,CAAP,CAAhB;AACH;;;;;;;;;;;;;;;;ACLD;AACA;AACO,SAASmB,KAAT,CAAeC,iBAAf,EAAkC;EACrC,OAAO,IAAIvI,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC4J,qDAAS,CAACE,iBAAiB,EAAlB,CAAT,CAA+BtI,SAA/B,CAAyCxB,UAAzC;EACH,CAFM,CAAP;AAGH;;;;;;;;;;;;;;;;ACND;AACO,MAAMkH,KAAK,GAAG,IAAI3F,mDAAJ,CAAgBvB,UAAD,IAAgBA,UAAU,CAAC6B,QAAX,EAA/B,CAAd;AACA,SAASsF,KAAT,CAAewB,SAAf,EAA0B;EAC7B,OAAOA,SAAS,GAAGoB,cAAc,CAACpB,SAAD,CAAjB,GAA+BzB,KAA/C;AACH;;AACD,SAAS6C,cAAT,CAAwBpB,SAAxB,EAAmC;EAC/B,OAAO,IAAIpH,mDAAJ,CAAgBvB,UAAD,IAAgB2I,SAAS,CAACqB,QAAV,CAAmB,MAAMhK,UAAU,CAAC6B,QAAX,EAAzB,CAA/B,CAAP;AACH;;;;;;;;;;;;;;;;ACPD;AACA;AACO,SAAS+B,IAAT,CAAcsG,KAAd,EAAqBvB,SAArB,EAAgC;EACnC,OAAOA,SAAS,GAAGsB,+DAAS,CAACC,KAAD,EAAQvB,SAAR,CAAZ,GAAiCiB,qDAAS,CAACM,KAAD,CAA1D;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASN,SAAT,CAAmBM,KAAnB,EAA0B;EAC7B,IAAIA,KAAK,YAAY3I,mDAArB,EAAiC;IAC7B,OAAO2I,KAAP;EACH;;EACD,IAAIA,KAAK,IAAI,IAAb,EAAmB;IACf,IAAIK,8EAAmB,CAACL,KAAD,CAAvB,EAAgC;MAC5B,OAAOW,qBAAqB,CAACX,KAAD,CAA5B;IACH;;IACD,IAAIG,8DAAW,CAACH,KAAD,CAAf,EAAwB;MACpB,OAAOY,aAAa,CAACZ,KAAD,CAApB;IACH;;IACD,IAAII,0DAAS,CAACJ,KAAD,CAAb,EAAsB;MAClB,OAAOa,WAAW,CAACb,KAAD,CAAlB;IACH;;IACD,IAAIM,sEAAe,CAACN,KAAD,CAAnB,EAA4B;MACxB,OAAOc,iBAAiB,CAACd,KAAD,CAAxB;IACH;;IACD,IAAIQ,4DAAU,CAACR,KAAD,CAAd,EAAuB;MACnB,OAAOe,YAAY,CAACf,KAAD,CAAnB;IACH;;IACD,IAAIS,gFAAoB,CAACT,KAAD,CAAxB,EAAiC;MAC7B,OAAOgB,sBAAsB,CAAChB,KAAD,CAA7B;IACH;EACJ;;EACD,MAAMO,8FAAgC,CAACP,KAAD,CAAtC;AACH;AACM,SAASW,qBAAT,CAA+BM,GAA/B,EAAoC;EACvC,OAAO,IAAI5J,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC,MAAMoL,GAAG,GAAGD,GAAG,CAACjK,0DAAD,CAAH,EAAZ;;IACA,IAAIG,4DAAU,CAAC+J,GAAG,CAAC5J,SAAL,CAAd,EAA+B;MAC3B,OAAO4J,GAAG,CAAC5J,SAAJ,CAAcxB,UAAd,CAAP;IACH;;IACD,MAAM,IAAIqL,SAAJ,CAAc,gEAAd,CAAN;EACH,CANM,CAAP;AAOH;AACM,SAASP,aAAT,CAAuBQ,KAAvB,EAA8B;EACjC,OAAO,IAAI/J,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC,KAAK,IAAIsJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgC,KAAK,CAACxH,MAAV,IAAoB,CAAC9D,UAAU,CAACE,MAAhD,EAAwDoJ,CAAC,EAAzD,EAA6D;MACzDtJ,UAAU,CAACG,IAAX,CAAgBmL,KAAK,CAAChC,CAAD,CAArB;IACH;;IACDtJ,UAAU,CAAC6B,QAAX;EACH,CALM,CAAP;AAMH;AACM,SAASkJ,WAAT,CAAqBQ,OAArB,EAA8B;EACjC,OAAO,IAAIhK,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClCuL,OAAO,CACFC,IADL,CACW3L,KAAD,IAAW;MACjB,IAAI,CAACG,UAAU,CAACE,MAAhB,EAAwB;QACpBF,UAAU,CAACG,IAAX,CAAgBN,KAAhB;QACAG,UAAU,CAAC6B,QAAX;MACH;IACJ,CAND,EAMIM,GAAD,IAASnC,UAAU,CAACW,KAAX,CAAiBwB,GAAjB,CANZ,EAOKqJ,IAPL,CAOU,IAPV,EAOgBjH,6EAPhB;EAQH,CATM,CAAP;AAUH;AACM,SAAS0G,YAAT,CAAsBQ,QAAtB,EAAgC;EACnC,OAAO,IAAIlK,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC,KAAK,MAAMH,KAAX,IAAoB4L,QAApB,EAA8B;MAC1BzL,UAAU,CAACG,IAAX,CAAgBN,KAAhB;;MACA,IAAIG,UAAU,CAACE,MAAf,EAAuB;QACnB;MACH;IACJ;;IACDF,UAAU,CAAC6B,QAAX;EACH,CARM,CAAP;AASH;AACM,SAASmJ,iBAAT,CAA2BU,aAA3B,EAA0C;EAC7C,OAAO,IAAInK,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC2L,OAAO,CAACD,aAAD,EAAgB1L,UAAhB,CAAP,CAAmC4L,KAAnC,CAA0CzJ,GAAD,IAASnC,UAAU,CAACW,KAAX,CAAiBwB,GAAjB,CAAlD;EACH,CAFM,CAAP;AAGH;AACM,SAAS+I,sBAAT,CAAgCW,cAAhC,EAAgD;EACnD,OAAOb,iBAAiB,CAACJ,8FAAkC,CAACiB,cAAD,CAAnC,CAAxB;AACH;;AACD,SAASF,OAAT,CAAiBD,aAAjB,EAAgC1L,UAAhC,EAA4C;EACxC,IAAI8L,eAAJ,EAAqBC,iBAArB;;EACA,IAAIC,GAAJ,EAAStJ,EAAT;;EACA,OAAO0H,iDAAS,CAAC,IAAD,EAAO,KAAK,CAAZ,EAAe,KAAK,CAApB,EAAuB,aAAa;IAChD,IAAI;MACA,KAAK0B,eAAe,GAAG3B,qDAAa,CAACuB,aAAD,CAApC,EAAqDK,iBAAiB,GAAG,MAAMD,eAAe,CAAC3L,IAAhB,EAA1B,EAAkD,CAAC4L,iBAAiB,CAACE,IAA1H,GAAiI;QAC7H,MAAMpM,KAAK,GAAGkM,iBAAiB,CAAClM,KAAhC;QACAG,UAAU,CAACG,IAAX,CAAgBN,KAAhB;;QACA,IAAIG,UAAU,CAACE,MAAf,EAAuB;UACnB;QACH;MACJ;IACJ,CARD,CASA,OAAOgM,KAAP,EAAc;MAAEF,GAAG,GAAG;QAAErL,KAAK,EAAEuL;MAAT,CAAN;IAAyB,CATzC,SAUQ;MACJ,IAAI;QACA,IAAIH,iBAAiB,IAAI,CAACA,iBAAiB,CAACE,IAAxC,KAAiDvJ,EAAE,GAAGoJ,eAAe,CAACK,MAAtE,CAAJ,EAAmF,MAAMzJ,EAAE,CAACV,IAAH,CAAQ8J,eAAR,CAAN;MACtF,CAFD,SAGQ;QAAE,IAAIE,GAAJ,EAAS,MAAMA,GAAG,CAACrL,KAAV;MAAkB;IACxC;;IACDX,UAAU,CAAC6B,QAAX;EACH,CAlBe,CAAhB;AAmBH;;;;;;;;;;;;;;;;;;;AC5GD;AACA;AACA;AACA;AACA;AACO,SAASyK,KAAT,CAAe,GAAG5D,IAAlB,EAAwB;EAC3B,MAAMC,SAAS,GAAGL,wDAAY,CAACI,IAAD,CAA9B;EACA,MAAM6D,UAAU,GAAGF,qDAAS,CAAC3D,IAAD,EAAO8D,QAAP,CAA5B;EACA,MAAMC,OAAO,GAAG/D,IAAhB;EACA,OAAO,CAAC+D,OAAO,CAAC3I,MAAT,GAECoD,yCAFD,GAGDuF,OAAO,CAAC3I,MAAR,KAAmB,CAAnB,GAEM8F,qDAAS,CAAC6C,OAAO,CAAC,CAAD,CAAR,CAFf,GAIML,6DAAQ,CAACG,UAAD,CAAR,CAAqB3I,2CAAI,CAAC6I,OAAD,EAAU9D,SAAV,CAAzB,CAPZ;AAQH;;;;;;;;;;;;;;;;ACjBD;AACA;AACO,SAAS+D,EAAT,CAAY,GAAGhE,IAAf,EAAqB;EACxB,MAAMC,SAAS,GAAGL,wDAAY,CAACI,IAAD,CAA9B;EACA,OAAO9E,2CAAI,CAAC8E,IAAD,EAAOC,SAAP,CAAX;AACH;;;;;;;;;;;;;;;;ACLD;AACA;AACO,SAASgE,UAAT,CAAoBC,mBAApB,EAAyCjE,SAAzC,EAAoD;EACvD,MAAMkE,YAAY,GAAGxL,4DAAU,CAACuL,mBAAD,CAAV,GAAkCA,mBAAlC,GAAwD,MAAMA,mBAAnF;;EACA,MAAME,IAAI,GAAI9M,UAAD,IAAgBA,UAAU,CAACW,KAAX,CAAiBkM,YAAY,EAA7B,CAA7B;;EACA,OAAO,IAAItL,mDAAJ,CAAeoH,SAAS,GAAI3I,UAAD,IAAgB2I,SAAS,CAACqB,QAAV,CAAmB8C,IAAnB,EAAyB,CAAzB,EAA4B9M,UAA5B,CAAnB,GAA6D8M,IAArF,CAAP;AACH;;;;;;;;;;;;;;;;ACND;AACO,SAASvF,wBAAT,CAAkClD,WAAlC,EAA+C0I,MAA/C,EAAuDC,UAAvD,EAAmEC,OAAnE,EAA4EC,UAA5E,EAAwF;EAC3F,OAAO,IAAIC,kBAAJ,CAAuB9I,WAAvB,EAAoC0I,MAApC,EAA4CC,UAA5C,EAAwDC,OAAxD,EAAiEC,UAAjE,CAAP;AACH;AACM,MAAMC,kBAAN,SAAiCpM,mDAAjC,CAA4C;EAC/CpB,WAAW,CAAC0E,WAAD,EAAc0I,MAAd,EAAsBC,UAAtB,EAAkCC,OAAlC,EAA2CC,UAA3C,EAAuDE,iBAAvD,EAA0E;IACjF,MAAM/I,WAAN;IACA,KAAK6I,UAAL,GAAkBA,UAAlB;IACA,KAAKE,iBAAL,GAAyBA,iBAAzB;IACA,KAAKvI,KAAL,GAAakI,MAAM,GACb,UAAUlN,KAAV,EAAiB;MACf,IAAI;QACAkN,MAAM,CAAClN,KAAD,CAAN;MACH,CAFD,CAGA,OAAOsC,GAAP,EAAY;QACRkC,WAAW,CAAC1D,KAAZ,CAAkBwB,GAAlB;MACH;IACJ,CARc,GASb,MAAM0C,KATZ;IAUA,KAAKC,MAAL,GAAcmI,OAAO,GACf,UAAU9K,GAAV,EAAe;MACb,IAAI;QACA8K,OAAO,CAAC9K,GAAD,CAAP;MACH,CAFD,CAGA,OAAOA,GAAP,EAAY;QACRkC,WAAW,CAAC1D,KAAZ,CAAkBwB,GAAlB;MACH,CALD,SAMQ;QACJ,KAAKM,WAAL;MACH;IACJ,CAXgB,GAYf,MAAMqC,MAZZ;IAaA,KAAKC,SAAL,GAAiBiI,UAAU,GACrB,YAAY;MACV,IAAI;QACAA,UAAU;MACb,CAFD,CAGA,OAAO7K,GAAP,EAAY;QACRkC,WAAW,CAAC1D,KAAZ,CAAkBwB,GAAlB;MACH,CALD,SAMQ;QACJ,KAAKM,WAAL;MACH;IACJ,CAXsB,GAYrB,MAAMsC,SAZZ;EAaH;;EACDtC,WAAW,GAAG;IACV,IAAIC,EAAJ;;IACA,IAAI,CAAC,KAAK0K,iBAAN,IAA2B,KAAKA,iBAAL,EAA/B,EAAyD;MACrD,MAAM;QAAElN;MAAF,IAAa,IAAnB;MACA,MAAMuC,WAAN;MACA,CAACvC,MAAD,KAAY,CAACwC,EAAE,GAAG,KAAKwK,UAAX,MAA2B,IAA3B,IAAmCxK,EAAE,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,EAAE,CAACV,IAAH,CAAQ,IAAR,CAAxE;IACH;EACJ;;AAjD8C;;;;;;;;;;;;;;;;;ACJnD;AACA;AACA;AACO,SAASsL,UAAT,CAAoBC,QAApB,EAA8B;EACjC,OAAOF,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAIwN,QAAQ,GAAG,IAAf;IACA,IAAIC,SAAS,GAAG,KAAhB;IACA,IAAIC,aAAJ;IACAF,QAAQ,GAAG7L,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAaS,SAAb,EAAwBA,SAAxB,EAAoC0B,GAAD,IAAS;MAC5FuL,aAAa,GAAG9D,gEAAS,CAAC2D,QAAQ,CAACpL,GAAD,EAAMmL,UAAU,CAACC,QAAD,CAAV,CAAqB5L,MAArB,CAAN,CAAT,CAAzB;;MACA,IAAI6L,QAAJ,EAAc;QACVA,QAAQ,CAAC/K,WAAT;QACA+K,QAAQ,GAAG,IAAX;QACAE,aAAa,CAAClM,SAAd,CAAwBxB,UAAxB;MACH,CAJD,MAKK;QACDyN,SAAS,GAAG,IAAZ;MACH;IACJ,CAVmD,CAAzC,CAAX;;IAWA,IAAIA,SAAJ,EAAe;MACXD,QAAQ,CAAC/K,WAAT;MACA+K,QAAQ,GAAG,IAAX;MACAE,aAAa,CAAClM,SAAd,CAAwBxB,UAAxB;IACH;EACJ,CApBa,CAAd;AAqBH;;;;;;;;;;;;;;;ACzBD;AACO,SAAS0J,SAAT,GAAqB;EACxB,OAAO0C,mDAAQ,CAAC,CAAD,CAAf;AACH;;;;;;;;;;;;;;;;ACHD;AACA;AACO,SAASwB,SAAT,CAAmBC,OAAnB,EAA4BjF,cAA5B,EAA4C;EAC/C,OAAOvH,4DAAU,CAACuH,cAAD,CAAV,GAA6B+E,mDAAQ,CAACE,OAAD,EAAUjF,cAAV,EAA0B,CAA1B,CAArC,GAAoE+E,mDAAQ,CAACE,OAAD,EAAU,CAAV,CAAnF;AACH;;;;;;;;;;;;;;;;ACJD;AACA;AACO,SAASC,cAAT,CAAwBC,YAAxB,EAAsC;EACzC,OAAOV,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAIgO,QAAQ,GAAG,KAAf;IACArM,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7DmO,QAAQ,GAAG,IAAX;MACAhO,UAAU,CAACG,IAAX,CAAgBN,KAAhB;IACH,CAHwC,EAGtC,MAAM;MACL,IAAI,CAACmO,QAAL,EAAe;QACXhO,UAAU,CAACG,IAAX,CAAgB4N,YAAhB;MACH;;MACD/N,UAAU,CAAC6B,QAAX;IACH,CARwC,CAAzC;EASH,CAXa,CAAd;AAYH;;;;;;;;;;;;;;;;ACfD;AACA;AACO,SAASoM,MAAT,CAAgBC,SAAhB,EAA2B7I,OAA3B,EAAoC;EACvC,OAAOgI,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAImO,KAAK,GAAG,CAAZ;IACAxM,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAWqO,SAAS,CAAClM,IAAV,CAAeqD,OAAf,EAAwBxF,KAAxB,EAA+BsO,KAAK,EAApC,KAA2CnO,UAAU,CAACG,IAAX,CAAgBN,KAAhB,CAAnE,CAAzC;EACH,CAHa,CAAd;AAIH;;;;;;;;;;;;;;;ACPD;AACO,SAASuO,QAAT,CAAkBC,QAAlB,EAA4B;EAC/B,OAAOhB,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAI;MACA2B,MAAM,CAACH,SAAP,CAAiBxB,UAAjB;IACH,CAFD,SAGQ;MACJA,UAAU,CAAC+B,GAAX,CAAesM,QAAf;IACH;EACJ,CAPa,CAAd;AAQH;;;;;;;;;;;;;;;;;;;;ACVD;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,KAAT,CAAeP,SAAf,EAA0BH,YAA1B,EAAwC;EAC3C,MAAMW,eAAe,GAAGC,SAAS,CAAC7K,MAAV,IAAoB,CAA5C;EACA,OAAQnC,MAAD,IAAYA,MAAM,CAACgB,IAAP,CAAYuL,SAAS,GAAGD,+CAAM,CAAC,CAACW,CAAD,EAAItF,CAAJ,KAAU4E,SAAS,CAACU,CAAD,EAAItF,CAAJ,EAAO3H,MAAP,CAApB,CAAT,GAA+CwG,oDAApE,EAA8EoG,2CAAI,CAAC,CAAD,CAAlF,EAAuFG,eAAe,GAAGZ,+DAAc,CAACC,YAAD,CAAjB,GAAkCS,2DAAY,CAAC,MAAM,IAAIF,wDAAJ,EAAP,CAApJ,CAAnB;AACH;;;;;;;;;;;;;;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,IAAT,CAAcZ,SAAd,EAAyBH,YAAzB,EAAuC;EAC1C,MAAMW,eAAe,GAAGC,SAAS,CAAC7K,MAAV,IAAoB,CAA5C;EACA,OAAQnC,MAAD,IAAYA,MAAM,CAACgB,IAAP,CAAYuL,SAAS,GAAGD,+CAAM,CAAC,CAACW,CAAD,EAAItF,CAAJ,KAAU4E,SAAS,CAACU,CAAD,EAAItF,CAAJ,EAAO3H,MAAP,CAApB,CAAT,GAA+CwG,oDAApE,EAA8E0G,mDAAQ,CAAC,CAAD,CAAtF,EAA2FH,eAAe,GAAGZ,+DAAc,CAACC,YAAD,CAAjB,GAAkCS,2DAAY,CAAC,MAAM,IAAIF,wDAAJ,EAAP,CAAxJ,CAAnB;AACH;;;;;;;;;;;;;;;;ACTD;AACA;AACO,SAASS,GAAT,CAAalB,OAAb,EAAsBxI,OAAtB,EAA+B;EAClC,OAAOgI,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAImO,KAAK,GAAG,CAAZ;IACAxM,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7DG,UAAU,CAACG,IAAX,CAAgB0N,OAAO,CAAC7L,IAAR,CAAaqD,OAAb,EAAsBxF,KAAtB,EAA6BsO,KAAK,EAAlC,CAAhB;IACH,CAFwC,CAAzC;EAGH,CALa,CAAd;AAMH;;;;;;;;;;;;;;;ACTD;AACO,SAASa,KAAT,CAAenP,KAAf,EAAsB;EACzB,OAAOkP,yCAAG,CAAC,MAAMlP,KAAP,CAAV;AACH;;;;;;;;;;;;;;;;ACHD;AACA;AACO,SAASuM,QAAT,CAAkBG,UAAU,GAAGC,QAA/B,EAAyC;EAC5C,OAAOmB,mDAAQ,CAACxF,oDAAD,EAAWoE,UAAX,CAAf;AACH;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACO,SAAS0C,cAAT,CAAwBtN,MAAxB,EAAgC3B,UAAhC,EAA4C6N,OAA5C,EAAqDtB,UAArD,EAAiE2C,YAAjE,EAA+EC,MAA/E,EAAuFC,iBAAvF,EAA0GC,mBAA1G,EAA+H;EAClI,MAAMC,MAAM,GAAG,EAAf;EACA,IAAIlG,MAAM,GAAG,CAAb;EACA,IAAI+E,KAAK,GAAG,CAAZ;EACA,IAAIoB,UAAU,GAAG,KAAjB;;EACA,MAAMC,aAAa,GAAG,MAAM;IACxB,IAAID,UAAU,IAAI,CAACD,MAAM,CAACxL,MAAtB,IAAgC,CAACsF,MAArC,EAA6C;MACzCpJ,UAAU,CAAC6B,QAAX;IACH;EACJ,CAJD;;EAKA,MAAM4N,SAAS,GAAI5P,KAAD,IAAYuJ,MAAM,GAAGmD,UAAT,GAAsBmD,UAAU,CAAC7P,KAAD,CAAhC,GAA0CyP,MAAM,CAACnL,IAAP,CAAYtE,KAAZ,CAAxE;;EACA,MAAM6P,UAAU,GAAI7P,KAAD,IAAW;IAC1BsP,MAAM,IAAInP,UAAU,CAACG,IAAX,CAAgBN,KAAhB,CAAV;IACAuJ,MAAM;IACN,IAAIuG,aAAa,GAAG,KAApB;IACA/F,gEAAS,CAACiE,OAAO,CAAChO,KAAD,EAAQsO,KAAK,EAAb,CAAR,CAAT,CAAmC3M,SAAnC,CAA6C+F,6EAAwB,CAACvH,UAAD,EAAc4P,UAAD,IAAgB;MAC9FV,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAACU,UAAD,CAAxE;;MACA,IAAIT,MAAJ,EAAY;QACRM,SAAS,CAACG,UAAD,CAAT;MACH,CAFD,MAGK;QACD5P,UAAU,CAACG,IAAX,CAAgByP,UAAhB;MACH;IACJ,CARoE,EAQlE,MAAM;MACLD,aAAa,GAAG,IAAhB;IACH,CAVoE,EAUlElP,SAVkE,EAUvD,MAAM;MAChB,IAAIkP,aAAJ,EAAmB;QACf,IAAI;UACAvG,MAAM;;UACN,OAAOkG,MAAM,CAACxL,MAAP,IAAiBsF,MAAM,GAAGmD,UAAjC,EAA6C;YACzC,MAAMsD,aAAa,GAAGP,MAAM,CAACvL,KAAP,EAAtB;;YACA,IAAIqL,iBAAJ,EAAuB;cACnB5G,sEAAe,CAACxI,UAAD,EAAaoP,iBAAb,EAAgC,MAAMM,UAAU,CAACG,aAAD,CAAhD,CAAf;YACH,CAFD,MAGK;cACDH,UAAU,CAACG,aAAD,CAAV;YACH;UACJ;;UACDL,aAAa;QAChB,CAZD,CAaA,OAAOrN,GAAP,EAAY;UACRnC,UAAU,CAACW,KAAX,CAAiBwB,GAAjB;QACH;MACJ;IACJ,CA7BoE,CAArE;EA8BH,CAlCD;;EAmCAR,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAayP,SAAb,EAAwB,MAAM;IACnEF,UAAU,GAAG,IAAb;IACAC,aAAa;EAChB,CAHwC,CAAzC;EAIA,OAAO,MAAM;IACTH,mBAAmB,KAAK,IAAxB,IAAgCA,mBAAmB,KAAK,KAAK,CAA7D,GAAiE,KAAK,CAAtE,GAA0EA,mBAAmB,EAA7F;EACH,CAFD;AAGH;;;;;;;;;;;;;;;;;;;ACxDD;AACA;AACA;AACA;AACA;AACO,SAAS1B,QAAT,CAAkBE,OAAlB,EAA2BjF,cAA3B,EAA2C2D,UAAU,GAAGC,QAAxD,EAAkE;EACrE,IAAInL,4DAAU,CAACuH,cAAD,CAAd,EAAgC;IAC5B,OAAO+E,QAAQ,CAAC,CAACmC,CAAD,EAAIxG,CAAJ,KAAUyF,yCAAG,CAAC,CAACgB,CAAD,EAAIC,EAAJ,KAAWpH,cAAc,CAACkH,CAAD,EAAIC,CAAJ,EAAOzG,CAAP,EAAU0G,EAAV,CAA1B,CAAH,CAA4CpG,gEAAS,CAACiE,OAAO,CAACiC,CAAD,EAAIxG,CAAJ,CAAR,CAArD,CAAX,EAAkFiD,UAAlF,CAAf;EACH,CAFD,MAGK,IAAI,OAAO3D,cAAP,KAA0B,QAA9B,EAAwC;IACzC2D,UAAU,GAAG3D,cAAb;EACH;;EACD,OAAOyE,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwBiP,+DAAc,CAACtN,MAAD,EAAS3B,UAAT,EAAqB6N,OAArB,EAA8BtB,UAA9B,CAAvC,CAAd;AACH;;;;;;;;;;;;;;;;;ACbD;AACA;AACA;AACO,SAAS0D,SAAT,CAAmBtH,SAAnB,EAA8BuH,KAAK,GAAG,CAAtC,EAAyC;EAC5C,OAAO7C,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC2B,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW2I,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM3I,UAAU,CAACG,IAAX,CAAgBN,KAAhB,CAA9B,EAAsDqQ,KAAtD,CAAvC,EAAqG,MAAM1H,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM3I,UAAU,CAAC6B,QAAX,EAA9B,EAAqDqO,KAArD,CAA1H,EAAwL/N,GAAD,IAASqG,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM3I,UAAU,CAACW,KAAX,CAAiBwB,GAAjB,CAA9B,EAAqD+N,KAArD,CAA/M,CAAzC;EACH,CAFa,CAAd;AAGH;;;;;;;;;;;;;;;;ACPD;AACA;AACO,SAAS7I,QAAT,GAAoB;EACvB,OAAOgG,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAIiI,UAAU,GAAG,IAAjB;IACAtG,MAAM,CAACiG,SAAP;IACA,MAAMuI,UAAU,GAAG5I,6EAAwB,CAACvH,UAAD,EAAaS,SAAb,EAAwBA,SAAxB,EAAmCA,SAAnC,EAA8C,MAAM;MAC3F,IAAI,CAACkB,MAAD,IAAWA,MAAM,CAACiG,SAAP,IAAoB,CAA/B,IAAoC,IAAI,EAAEjG,MAAM,CAACiG,SAArD,EAAgE;QAC5DK,UAAU,GAAG,IAAb;QACA;MACH;;MACD,MAAMmI,gBAAgB,GAAGzO,MAAM,CAACkG,WAAhC;MACA,MAAMwI,IAAI,GAAGpI,UAAb;MACAA,UAAU,GAAG,IAAb;;MACA,IAAImI,gBAAgB,KAAK,CAACC,IAAD,IAASD,gBAAgB,KAAKC,IAAnC,CAApB,EAA8D;QAC1DD,gBAAgB,CAAC3N,WAAjB;MACH;;MACDzC,UAAU,CAACyC,WAAX;IACH,CAZ0C,CAA3C;IAaAd,MAAM,CAACH,SAAP,CAAiB2O,UAAjB;;IACA,IAAI,CAACA,UAAU,CAACjQ,MAAhB,EAAwB;MACpB+H,UAAU,GAAGtG,MAAM,CAACqG,OAAP,EAAb;IACH;EACJ,CApBa,CAAd;AAqBH;;;;;;;;;;;;;;;;ACxBD;AACA;AACO,SAASuI,IAAT,CAAcC,WAAd,EAA2BC,IAA3B,EAAiC;EACpC,OAAOpD,mDAAO,CAACiD,6DAAa,CAACE,WAAD,EAAcC,IAAd,EAAoB9B,SAAS,CAAC7K,MAAV,IAAoB,CAAxC,EAA2C,IAA3C,CAAd,CAAd;AACH;;;;;;;;;;;;;;;ACJD;AACO,SAASwM,aAAT,CAAuBE,WAAvB,EAAoCC,IAApC,EAA0CC,OAA1C,EAAmDC,UAAnD,EAA+DC,kBAA/D,EAAmF;EACtF,OAAO,CAACjP,MAAD,EAAS3B,UAAT,KAAwB;IAC3B,IAAI6Q,QAAQ,GAAGH,OAAf;IACA,IAAII,KAAK,GAAGL,IAAZ;IACA,IAAItC,KAAK,GAAG,CAAZ;IACAxM,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7D,MAAMyJ,CAAC,GAAG6E,KAAK,EAAf;MACA2C,KAAK,GAAGD,QAAQ,GAERL,WAAW,CAACM,KAAD,EAAQjR,KAAR,EAAeyJ,CAAf,CAFH,IAINuH,QAAQ,GAAG,IAAZ,EAAmBhR,KAJZ,CAAhB;MAKA8Q,UAAU,IAAI3Q,UAAU,CAACG,IAAX,CAAgB2Q,KAAhB,CAAd;IACH,CARwC,EAQtCF,kBAAkB,KAChB,MAAM;MACHC,QAAQ,IAAI7Q,UAAU,CAACG,IAAX,CAAgB2Q,KAAhB,CAAZ;MACA9Q,UAAU,CAAC6B,QAAX;IACH,CAJgB,CARoB,CAAzC;EAaH,CAjBD;AAkBH;;;;;;;;;;;;;;;;;;ACpBD;AACA;AACA;AACA;AACO,SAASkP,KAAT,CAAeC,OAAO,GAAG,EAAzB,EAA6B;EAChC,MAAM;IAAEC,SAAS,GAAG,MAAM,IAAIxR,6CAAJ,EAApB;IAAmCyR,YAAY,GAAG,IAAlD;IAAwDC,eAAe,GAAG,IAA1E;IAAgFC,mBAAmB,GAAG;EAAtG,IAA+GJ,OAArH;EACA,OAAQK,aAAD,IAAmB;IACtB,IAAIpJ,UAAJ;IACA,IAAIqJ,eAAJ;IACA,IAAI7N,OAAJ;IACA,IAAI4D,QAAQ,GAAG,CAAf;IACA,IAAIkK,YAAY,GAAG,KAAnB;IACA,IAAIC,UAAU,GAAG,KAAjB;;IACA,MAAMC,WAAW,GAAG,MAAM;MACtBH,eAAe,KAAK,IAApB,IAA4BA,eAAe,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,eAAe,CAAC7O,WAAhB,EAAlE;MACA6O,eAAe,GAAG7Q,SAAlB;IACH,CAHD;;IAIA,MAAMiR,KAAK,GAAG,MAAM;MAChBD,WAAW;MACXxJ,UAAU,GAAGxE,OAAO,GAAGhD,SAAvB;MACA8Q,YAAY,GAAGC,UAAU,GAAG,KAA5B;IACH,CAJD;;IAKA,MAAMG,mBAAmB,GAAG,MAAM;MAC9B,MAAMtB,IAAI,GAAGpI,UAAb;MACAyJ,KAAK;MACLrB,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK,KAAK,CAA/B,GAAmC,KAAK,CAAxC,GAA4CA,IAAI,CAAC5N,WAAL,EAA5C;IACH,CAJD;;IAKA,OAAO4K,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;MACnCqH,QAAQ;;MACR,IAAI,CAACmK,UAAD,IAAe,CAACD,YAApB,EAAkC;QAC9BE,WAAW;MACd;;MACD,MAAMG,IAAI,GAAInO,OAAO,GAAGA,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,KAAK,CAArC,GAAyCA,OAAzC,GAAmDwN,SAAS,EAApF;MACAjR,UAAU,CAAC+B,GAAX,CAAe,MAAM;QACjBsF,QAAQ;;QACR,IAAIA,QAAQ,KAAK,CAAb,IAAkB,CAACmK,UAAnB,IAAiC,CAACD,YAAtC,EAAoD;UAChDD,eAAe,GAAGO,WAAW,CAACF,mBAAD,EAAsBP,mBAAtB,CAA7B;QACH;MACJ,CALD;MAMAQ,IAAI,CAACpQ,SAAL,CAAexB,UAAf;;MACA,IAAI,CAACiI,UAAD,IACAZ,QAAQ,GAAG,CADf,EACkB;QACdY,UAAU,GAAG,IAAInH,uDAAJ,CAAmB;UAC5BX,IAAI,EAAGN,KAAD,IAAW+R,IAAI,CAACzR,IAAL,CAAUN,KAAV,CADW;UAE5Bc,KAAK,EAAGwB,GAAD,IAAS;YACZqP,UAAU,GAAG,IAAb;YACAC,WAAW;YACXH,eAAe,GAAGO,WAAW,CAACH,KAAD,EAAQR,YAAR,EAAsB/O,GAAtB,CAA7B;YACAyP,IAAI,CAACjR,KAAL,CAAWwB,GAAX;UACH,CAP2B;UAQ5BN,QAAQ,EAAE,MAAM;YACZ0P,YAAY,GAAG,IAAf;YACAE,WAAW;YACXH,eAAe,GAAGO,WAAW,CAACH,KAAD,EAAQP,eAAR,CAA7B;YACAS,IAAI,CAAC/P,QAAL;UACH;QAb2B,CAAnB,CAAb;QAeA+H,gEAAS,CAACjI,MAAD,CAAT,CAAkBH,SAAlB,CAA4ByG,UAA5B;MACH;IACJ,CAhCa,CAAP,CAgCJoJ,aAhCI,CAAP;EAiCH,CAtDD;AAuDH;;AACD,SAASQ,WAAT,CAAqBH,KAArB,EAA4BI,EAA5B,EAAgC,GAAGpJ,IAAnC,EAAyC;EACrC,IAAIoJ,EAAE,KAAK,IAAX,EAAiB;IACbJ,KAAK;IACL;EACH;;EACD,IAAII,EAAE,KAAK,KAAX,EAAkB;IACd;EACH;;EACD,MAAMC,YAAY,GAAG,IAAIjR,uDAAJ,CAAmB;IACpCX,IAAI,EAAE,MAAM;MACR4R,YAAY,CAACtP,WAAb;MACAiP,KAAK;IACR;EAJmC,CAAnB,CAArB;EAMA,OAAOI,EAAE,CAAC,GAAGpJ,IAAJ,CAAF,CAAYlH,SAAZ,CAAsBuQ,YAAtB,CAAP;AACH;;;;;;;;;;;;;;;;;AC7ED;AACA;AACA;AACO,SAASC,SAAT,CAAmB,GAAG/I,MAAtB,EAA8B;EACjC,MAAMN,SAAS,GAAGL,wDAAY,CAACW,MAAD,CAA9B;EACA,OAAOoE,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,CAAC2I,SAAS,GAAGgB,0DAAM,CAACV,MAAD,EAAStH,MAAT,EAAiBgH,SAAjB,CAAT,GAAuCgB,0DAAM,CAACV,MAAD,EAAStH,MAAT,CAAvD,EAAyEH,SAAzE,CAAmFxB,UAAnF;EACH,CAFa,CAAd;AAGH;;;;;;;;;;;;;;;ACRD;AACO,SAASiS,WAAT,CAAqBtJ,SAArB,EAAgCuH,KAAK,GAAG,CAAxC,EAA2C;EAC9C,OAAO7C,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnCA,UAAU,CAAC+B,GAAX,CAAe4G,SAAS,CAACqB,QAAV,CAAmB,MAAMrI,MAAM,CAACH,SAAP,CAAiBxB,UAAjB,CAAzB,EAAuDkQ,KAAvD,CAAf;EACH,CAFa,CAAd;AAGH;;;;;;;;;;;;;;;;;ACLD;AACA;AACA;AACO,SAASgC,SAAT,CAAmBrE,OAAnB,EAA4BjF,cAA5B,EAA4C;EAC/C,OAAOyE,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAImS,eAAe,GAAG,IAAtB;IACA,IAAIhE,KAAK,GAAG,CAAZ;IACA,IAAIoB,UAAU,GAAG,KAAjB;;IACA,MAAMC,aAAa,GAAG,MAAMD,UAAU,IAAI,CAAC4C,eAAf,IAAkCnS,UAAU,CAAC6B,QAAX,EAA9D;;IACAF,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7DsS,eAAe,KAAK,IAApB,IAA4BA,eAAe,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,eAAe,CAAC1P,WAAhB,EAAlE;MACA,IAAI2P,UAAU,GAAG,CAAjB;MACA,MAAMC,UAAU,GAAGlE,KAAK,EAAxB;MACAvE,gEAAS,CAACiE,OAAO,CAAChO,KAAD,EAAQwS,UAAR,CAAR,CAAT,CAAsC7Q,SAAtC,CAAiD2Q,eAAe,GAAG5K,6EAAwB,CAACvH,UAAD,EAAc4P,UAAD,IAAgB5P,UAAU,CAACG,IAAX,CAAgByI,cAAc,GAAGA,cAAc,CAAC/I,KAAD,EAAQ+P,UAAR,EAAoByC,UAApB,EAAgCD,UAAU,EAA1C,CAAjB,GAAiExC,UAA/F,CAA7B,EAAyI,MAAM;QACtOuC,eAAe,GAAG,IAAlB;QACA3C,aAAa;MAChB,CAH0F,CAA3F;IAIH,CARwC,EAQtC,MAAM;MACLD,UAAU,GAAG,IAAb;MACAC,aAAa;IAChB,CAXwC,CAAzC;EAYH,CAjBa,CAAd;AAkBH;;;;;;;;;;;;;;;;;ACtBD;AACA;AACA;AACO,SAASjB,IAAT,CAAc+D,KAAd,EAAqB;EACxB,OAAOA,KAAK,IAAI,CAAT,GAEC,MAAMpL,oDAFP,GAGDmG,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IAC9B,IAAIuS,IAAI,GAAG,CAAX;IACA5Q,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7D,IAAI,EAAE0S,IAAF,IAAUD,KAAd,EAAqB;QACjBtS,UAAU,CAACG,IAAX,CAAgBN,KAAhB;;QACA,IAAIyS,KAAK,IAAIC,IAAb,EAAmB;UACfvS,UAAU,CAAC6B,QAAX;QACH;MACJ;IACJ,CAPwC,CAAzC;EAQH,CAVQ,CAHb;AAcH;;;;;;;;;;;;;;;;;AClBD;AACA;AACA;AACO,SAASgN,QAAT,CAAkByD,KAAlB,EAAyB;EAC5B,OAAOA,KAAK,IAAI,CAAT,GACD,MAAMpL,oDADL,GAEDmG,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IAC9B,IAAIsP,MAAM,GAAG,EAAb;IACA3N,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7DyP,MAAM,CAACnL,IAAP,CAAYtE,KAAZ;MACAyS,KAAK,GAAGhD,MAAM,CAACxL,MAAf,IAAyBwL,MAAM,CAACvL,KAAP,EAAzB;IACH,CAHwC,EAGtC,MAAM;MACL,KAAK,MAAMlE,KAAX,IAAoByP,MAApB,EAA4B;QACxBtP,UAAU,CAACG,IAAX,CAAgBN,KAAhB;MACH;;MACDG,UAAU,CAAC6B,QAAX;IACH,CARwC,EAQtCpB,SARsC,EAQ3B,MAAM;MAChB6O,MAAM,GAAG,IAAT;IACH,CAVwC,CAAzC;EAWH,CAbQ,CAFb;AAgBH;;;;;;;;;;;;;;;;ACpBD;AACA;AACO,SAASkD,SAAT,CAAmBtE,SAAnB,EAA8BuE,SAAS,GAAG,KAA1C,EAAiD;EACpD,OAAOpF,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAImO,KAAK,GAAG,CAAZ;IACAxM,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7D,MAAMkJ,MAAM,GAAGmF,SAAS,CAACrO,KAAD,EAAQsO,KAAK,EAAb,CAAxB;MACA,CAACpF,MAAM,IAAI0J,SAAX,KAAyBzS,UAAU,CAACG,IAAX,CAAgBN,KAAhB,CAAzB;MACA,CAACkJ,MAAD,IAAW/I,UAAU,CAAC6B,QAAX,EAAX;IACH,CAJwC,CAAzC;EAKH,CAPa,CAAd;AAQH;;;;;;;;;;;;;;;;;;ACXD;AACA;AACA;AACA;AACO,SAAS6Q,GAAT,CAAa9Q,cAAb,EAA6BjB,KAA7B,EAAoCkB,QAApC,EAA8C;EACjD,MAAM8Q,WAAW,GAAGtR,4DAAU,CAACO,cAAD,CAAV,IAA8BjB,KAA9B,IAAuCkB,QAAvC,GAEZ;IAAE1B,IAAI,EAAEyB,cAAR;IAAwBjB,KAAxB;IAA+BkB;EAA/B,CAFY,GAGdD,cAHN;EAIA,OAAO+Q,WAAW,GACZtF,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IAC9B,IAAI0C,EAAJ;;IACA,CAACA,EAAE,GAAGiQ,WAAW,CAACnR,SAAlB,MAAiC,IAAjC,IAAyCkB,EAAE,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,EAAE,CAACV,IAAH,CAAQ2Q,WAAR,CAAlE;IACA,IAAIC,OAAO,GAAG,IAAd;IACAjR,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7D,IAAI6C,EAAJ;;MACA,CAACA,EAAE,GAAGiQ,WAAW,CAACxS,IAAlB,MAA4B,IAA5B,IAAoCuC,EAAE,KAAK,KAAK,CAAhD,GAAoD,KAAK,CAAzD,GAA6DA,EAAE,CAACV,IAAH,CAAQ2Q,WAAR,EAAqB9S,KAArB,CAA7D;MACAG,UAAU,CAACG,IAAX,CAAgBN,KAAhB;IACH,CAJwC,EAItC,MAAM;MACL,IAAI6C,EAAJ;;MACAkQ,OAAO,GAAG,KAAV;MACA,CAAClQ,EAAE,GAAGiQ,WAAW,CAAC9Q,QAAlB,MAAgC,IAAhC,IAAwCa,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAACV,IAAH,CAAQ2Q,WAAR,CAAjE;MACA3S,UAAU,CAAC6B,QAAX;IACH,CATwC,EASrCM,GAAD,IAAS;MACR,IAAIO,EAAJ;;MACAkQ,OAAO,GAAG,KAAV;MACA,CAAClQ,EAAE,GAAGiQ,WAAW,CAAChS,KAAlB,MAA6B,IAA7B,IAAqC+B,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAACV,IAAH,CAAQ2Q,WAAR,EAAqBxQ,GAArB,CAA9D;MACAnC,UAAU,CAACW,KAAX,CAAiBwB,GAAjB;IACH,CAdwC,EActC,MAAM;MACL,IAAIO,EAAJ,EAAQ4B,EAAR;;MACA,IAAIsO,OAAJ,EAAa;QACT,CAAClQ,EAAE,GAAGiQ,WAAW,CAAClQ,WAAlB,MAAmC,IAAnC,IAA2CC,EAAE,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,EAAE,CAACV,IAAH,CAAQ2Q,WAAR,CAApE;MACH;;MACD,CAACrO,EAAE,GAAGqO,WAAW,CAACvE,QAAlB,MAAgC,IAAhC,IAAwC9J,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAACtC,IAAH,CAAQ2Q,WAAR,CAAjE;IACH,CApBwC,CAAzC;EAqBH,CAzBQ,CADK,GA4BVxK,oDA5BR;AA6BH;;;;;;;;;;;;;;;;;ACtCD;AACA;AACA;AACO,SAASqG,YAAT,CAAsB3B,YAAY,GAAGgG,mBAArC,EAA0D;EAC7D,OAAOxF,mDAAO,CAAC,CAAC1L,MAAD,EAAS3B,UAAT,KAAwB;IACnC,IAAIgO,QAAQ,GAAG,KAAf;IACArM,MAAM,CAACH,SAAP,CAAiB+F,6EAAwB,CAACvH,UAAD,EAAcH,KAAD,IAAW;MAC7DmO,QAAQ,GAAG,IAAX;MACAhO,UAAU,CAACG,IAAX,CAAgBN,KAAhB;IACH,CAHwC,EAGtC,MAAOmO,QAAQ,GAAGhO,UAAU,CAAC6B,QAAX,EAAH,GAA2B7B,UAAU,CAACW,KAAX,CAAiBkM,YAAY,EAA7B,CAHJ,CAAzC;EAIH,CANa,CAAd;AAOH;;AACD,SAASgG,mBAAT,GAA+B;EAC3B,OAAO,IAAIvE,wDAAJ,EAAP;AACH;;;;;;;;;;;;;;;ACdD;AACO,SAASwE,aAAT,CAAuB5I,KAAvB,EAA8BvB,SAA9B,EAAyC;EAC5C,OAAO,IAAIpH,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC,IAAIsJ,CAAC,GAAG,CAAR;IACA,OAAOX,SAAS,CAACqB,QAAV,CAAmB,YAAY;MAClC,IAAIV,CAAC,KAAKY,KAAK,CAACpG,MAAhB,EAAwB;QACpB9D,UAAU,CAAC6B,QAAX;MACH,CAFD,MAGK;QACD7B,UAAU,CAACG,IAAX,CAAgB+J,KAAK,CAACZ,CAAC,EAAF,CAArB;;QACA,IAAI,CAACtJ,UAAU,CAACE,MAAhB,EAAwB;UACpB,KAAK8J,QAAL;QACH;MACJ;IACJ,CAVM,CAAP;EAWH,CAbM,CAAP;AAcH;;;;;;;;;;;;;;;;AChBD;AACA;AACO,SAAS+I,qBAAT,CAA+B7I,KAA/B,EAAsCvB,SAAtC,EAAiD;EACpD,IAAI,CAACuB,KAAL,EAAY;IACR,MAAM,IAAI8I,KAAJ,CAAU,yBAAV,CAAN;EACH;;EACD,OAAO,IAAIzR,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClCwI,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM;MACzC,MAAMsK,QAAQ,GAAG/I,KAAK,CAACgJ,MAAM,CAACC,aAAR,CAAL,EAAjB;MACA3K,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM;QACzCsK,QAAQ,CAAC9S,IAAT,GAAgBqL,IAAhB,CAAsBzC,MAAD,IAAY;UAC7B,IAAIA,MAAM,CAACkD,IAAX,EAAiB;YACbjM,UAAU,CAAC6B,QAAX;UACH,CAFD,MAGK;YACD7B,UAAU,CAACG,IAAX,CAAgB4I,MAAM,CAAClJ,KAAvB;UACH;QACJ,CAPD;MAQH,CATc,EASZ,CATY,EAST,IATS,CAAf;IAUH,CAZc,CAAf;EAaH,CAdM,CAAP;AAeH;;;;;;;;;;;;;;;;;;ACrBD;AACA;AACA;AACA;AACO,SAASwT,gBAAT,CAA0BnJ,KAA1B,EAAiCvB,SAAjC,EAA4C;EAC/C,OAAO,IAAIpH,mDAAJ,CAAgBvB,UAAD,IAAgB;IAClC,IAAIiT,QAAJ;IACAzK,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM;MACzCsK,QAAQ,GAAG/I,KAAK,CAACkJ,sDAAD,CAAL,EAAX;MACA5K,sEAAe,CAACxI,UAAD,EAAa2I,SAAb,EAAwB,MAAM;QACzC,IAAI9I,KAAJ;QACA,IAAIoM,IAAJ;;QACA,IAAI;UACA,CAAC;YAAEpM,KAAF;YAASoM;UAAT,IAAkBgH,QAAQ,CAAC9S,IAAT,EAAnB;QACH,CAFD,CAGA,OAAOgC,GAAP,EAAY;UACRnC,UAAU,CAACW,KAAX,CAAiBwB,GAAjB;UACA;QACH;;QACD,IAAI8J,IAAJ,EAAU;UACNjM,UAAU,CAAC6B,QAAX;QACH,CAFD,MAGK;UACD7B,UAAU,CAACG,IAAX,CAAgBN,KAAhB;QACH;MACJ,CAhBc,EAgBZ,CAhBY,EAgBT,IAhBS,CAAf;IAiBH,CAnBc,CAAf;IAoBA,OAAO,MAAMwB,4DAAU,CAAC4R,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,KAAK,CAAvC,GAA2C,KAAK,CAAhD,GAAoDA,QAAQ,CAAC9G,MAA9D,CAAV,IAAmF8G,QAAQ,CAAC9G,MAAT,EAAhG;EACH,CAvBM,CAAP;AAwBH;;;;;;;;;;;;;;;;;AC7BD;AACA;AACA;AACO,SAASmH,kBAAT,CAA4BpJ,KAA5B,EAAmCvB,SAAnC,EAA8C;EACjD,OAAOiB,gEAAS,CAACM,KAAD,CAAT,CAAiBvH,IAAjB,CAAsBsP,mEAAW,CAACtJ,SAAD,CAAjC,EAA8CsH,+DAAS,CAACtH,SAAD,CAAvD,CAAP;AACH;;;;;;;;;;;;;;;;;ACLD;AACA;AACA;AACO,SAAS4K,eAAT,CAAyBrJ,KAAzB,EAAgCvB,SAAhC,EAA2C;EAC9C,OAAOiB,gEAAS,CAACM,KAAD,CAAT,CAAiBvH,IAAjB,CAAsBsP,mEAAW,CAACtJ,SAAD,CAAjC,EAA8CsH,+DAAS,CAACtH,SAAD,CAAvD,CAAP;AACH;;;;;;;;;;;;;;;;ACLD;AACA;AACO,SAAS6K,0BAAT,CAAoCtJ,KAApC,EAA2CvB,SAA3C,EAAsD;EACzD,OAAOoK,6EAAqB,CAACnI,8FAAkC,CAACV,KAAD,CAAnC,EAA4CvB,SAA5C,CAA5B;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASsB,SAAT,CAAmBC,KAAnB,EAA0BvB,SAA1B,EAAqC;EACxC,IAAIuB,KAAK,IAAI,IAAb,EAAmB;IACf,IAAIK,8EAAmB,CAACL,KAAD,CAAvB,EAAgC;MAC5B,OAAOoJ,uEAAkB,CAACpJ,KAAD,EAAQvB,SAAR,CAAzB;IACH;;IACD,IAAI0B,8DAAW,CAACH,KAAD,CAAf,EAAwB;MACpB,OAAO4I,6DAAa,CAAC5I,KAAD,EAAQvB,SAAR,CAApB;IACH;;IACD,IAAI2B,0DAAS,CAACJ,KAAD,CAAb,EAAsB;MAClB,OAAOqJ,iEAAe,CAACrJ,KAAD,EAAQvB,SAAR,CAAtB;IACH;;IACD,IAAI6B,sEAAe,CAACN,KAAD,CAAnB,EAA4B;MACxB,OAAO6I,6EAAqB,CAAC7I,KAAD,EAAQvB,SAAR,CAA5B;IACH;;IACD,IAAI+B,4DAAU,CAACR,KAAD,CAAd,EAAuB;MACnB,OAAOmJ,mEAAgB,CAACnJ,KAAD,EAAQvB,SAAR,CAAvB;IACH;;IACD,IAAIgC,iFAAoB,CAACT,KAAD,CAAxB,EAAiC;MAC7B,OAAOsJ,wFAA0B,CAACtJ,KAAD,EAAQvB,SAAR,CAAjC;IACH;EACJ;;EACD,MAAM8B,+FAAgC,CAACP,KAAD,CAAtC;AACH;;;;;;;;;;;;;;ACnCM,MAAMzF,eAAe,GAAG;EAC3BuB,UAAU,CAACyN,OAAD,EAAUC,OAAV,EAAmB,GAAGhL,IAAtB,EAA4B;IAClC,MAAM;MAAEiL;IAAF,IAAelP,eAArB;;IACA,IAAIkP,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,KAAK,CAAvC,GAA2C,KAAK,CAAhD,GAAoDA,QAAQ,CAAC3N,UAAjE,EAA6E;MACzE,OAAO2N,QAAQ,CAAC3N,UAAT,CAAoByN,OAApB,EAA6BC,OAA7B,EAAsC,GAAGhL,IAAzC,CAAP;IACH;;IACD,OAAO1C,UAAU,CAACyN,OAAD,EAAUC,OAAV,EAAmB,GAAGhL,IAAtB,CAAjB;EACH,CAP0B;;EAQ3BkL,YAAY,CAACC,MAAD,EAAS;IACjB,MAAM;MAAEF;IAAF,IAAelP,eAArB;IACA,OAAO,CAAC,CAACkP,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,KAAK,CAAvC,GAA2C,KAAK,CAAhD,GAAoDA,QAAQ,CAACC,YAA9D,KAA+EA,YAAhF,EAA8FC,MAA9F,CAAP;EACH,CAX0B;;EAY3BF,QAAQ,EAAElT;AAZiB,CAAxB;;;;;;;;;;;;;;;ACAA,SAASqT,iBAAT,GAA6B;EAChC,IAAI,OAAOZ,MAAP,KAAkB,UAAlB,IAAgC,CAACA,MAAM,CAACD,QAA5C,EAAsD;IAClD,OAAO,YAAP;EACH;;EACD,OAAOC,MAAM,CAACD,QAAd;AACH;AACM,MAAMA,QAAQ,GAAGa,iBAAiB,EAAlC;;;;;;;;;;;;;;ACNA,MAAM7S,UAAU,GAAG,CAAC,MAAO,OAAOiS,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAACjS,UAAxC,IAAuD,cAA9D,GAAnB;;;;;;;;;;;;;;;ACAP;AACO,MAAMqN,UAAU,GAAGyF,mEAAgB,CAAEC,MAAD,IAAY,SAASC,cAAT,GAA0B;EAC7ED,MAAM,CAAC,IAAD,CAAN;;EACA,KAAKE,IAAL,GAAY,YAAZ;EACA,KAAKC,OAAL,GAAe,yBAAf;AACH,CAJyC,CAAnC;;;;;;;;;;;;;;;ACDP;AACO,MAAM/Q,uBAAuB,GAAG2Q,mEAAgB,CAAEC,MAAD,IAAY,SAASI,2BAAT,GAAuC;EACvGJ,MAAM,CAAC,IAAD,CAAN;;EACA,KAAKE,IAAL,GAAY,yBAAZ;EACA,KAAKC,OAAL,GAAe,qBAAf;AACH,CAJsD,CAAhD;;;;;;;;;;;;;;;ACDP;AACO,MAAMlO,mBAAmB,GAAG8N,mEAAgB,CAAEC,MAAD,IAAY,SAASK,uBAAT,CAAiChO,MAAjC,EAAyC;EACrG2N,MAAM,CAAC,IAAD,CAAN;;EACA,KAAKG,OAAL,GAAe9N,MAAM,GACd,GAAEA,MAAM,CAACvC,MAAO;AAC3B,EAAEuC,MAAM,CAAC0I,GAAP,CAAW,CAAC5M,GAAD,EAAMmH,CAAN,KAAa,GAAEA,CAAC,GAAG,CAAE,KAAInH,GAAG,CAACmS,QAAJ,EAAe,EAAnD,EAAsDC,IAAtD,CAA2D,MAA3D,CAAmE,EAF5C,GAGf,EAHN;EAIA,KAAKL,IAAL,GAAY,qBAAZ;EACA,KAAK7N,MAAL,GAAcA,MAAd;AACH,CARkD,CAA5C;;;;;;;;;;;;;;;;;;ACDP;AACA;;AACA,SAASyI,IAAT,CAAc2F,GAAd,EAAmB;EACf,OAAOA,GAAG,CAACA,GAAG,CAAC3Q,MAAJ,GAAa,CAAd,CAAV;AACH;;AACM,SAASuE,iBAAT,CAA2BK,IAA3B,EAAiC;EACpC,OAAOrH,uDAAU,CAACyN,IAAI,CAACpG,IAAD,CAAL,CAAV,GAAyBA,IAAI,CAACgM,GAAL,EAAzB,GAAsCjU,SAA7C;AACH;AACM,SAAS6H,YAAT,CAAsBI,IAAtB,EAA4B;EAC/B,OAAO8L,yDAAW,CAAC1F,IAAI,CAACpG,IAAD,CAAL,CAAX,GAA0BA,IAAI,CAACgM,GAAL,EAA1B,GAAuCjU,SAA9C;AACH;AACM,SAAS4L,SAAT,CAAmB3D,IAAnB,EAAyBqF,YAAzB,EAAuC;EAC1C,OAAO,OAAOe,IAAI,CAACpG,IAAD,CAAX,KAAsB,QAAtB,GAAiCA,IAAI,CAACgM,GAAL,EAAjC,GAA8C3G,YAArD;AACH;;;;;;;;;;;;;;ACbD,MAAM;EAAEzH;AAAF,IAAc3C,KAApB;AACA,MAAM;EAAEgR,cAAF;EAAkBzP,SAAS,EAAE0P,WAA7B;EAA0C9L,IAAI,EAAE+L;AAAhD,IAA4DlP,MAAlE;AACO,SAASuC,oBAAT,CAA8BQ,IAA9B,EAAoC;EACvC,IAAIA,IAAI,CAAC5E,MAAL,KAAgB,CAApB,EAAuB;IACnB,MAAM2K,KAAK,GAAG/F,IAAI,CAAC,CAAD,CAAlB;;IACA,IAAIpC,OAAO,CAACmI,KAAD,CAAX,EAAoB;MAChB,OAAO;QAAE/F,IAAI,EAAE+F,KAAR;QAAe3F,IAAI,EAAE;MAArB,CAAP;IACH;;IACD,IAAIgM,MAAM,CAACrG,KAAD,CAAV,EAAmB;MACf,MAAM3F,IAAI,GAAG+L,OAAO,CAACpG,KAAD,CAApB;MACA,OAAO;QACH/F,IAAI,EAAEI,IAAI,CAACiG,GAAL,CAAUgG,GAAD,IAAStG,KAAK,CAACsG,GAAD,CAAvB,CADH;QAEHjM;MAFG,CAAP;IAIH;EACJ;;EACD,OAAO;IAAEJ,IAAI,EAAEA,IAAR;IAAcI,IAAI,EAAE;EAApB,CAAP;AACH;;AACD,SAASgM,MAAT,CAAgB3J,GAAhB,EAAqB;EACjB,OAAOA,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAtB,IAAkCwJ,cAAc,CAACxJ,GAAD,CAAd,KAAwByJ,WAAjE;AACH;;;;;;;;;;;;;;ACpBM,SAASvR,SAAT,CAAmBoR,GAAnB,EAAwBO,IAAxB,EAA8B;EACjC,IAAIP,GAAJ,EAAS;IACL,MAAMtG,KAAK,GAAGsG,GAAG,CAACQ,OAAJ,CAAYD,IAAZ,CAAd;IACA,KAAK7G,KAAL,IAAcsG,GAAG,CAACS,MAAJ,CAAW/G,KAAX,EAAkB,CAAlB,CAAd;EACH;AACJ;;;;;;;;;;;;;;ACLM,SAAS4F,gBAAT,CAA0BoB,UAA1B,EAAsC;EACzC,MAAMnB,MAAM,GAAIoB,QAAD,IAAc;IACzBpC,KAAK,CAAChR,IAAN,CAAWoT,QAAX;IACAA,QAAQ,CAACC,KAAT,GAAiB,IAAIrC,KAAJ,GAAYqC,KAA7B;EACH,CAHD;;EAIA,MAAMC,QAAQ,GAAGH,UAAU,CAACnB,MAAD,CAA3B;EACAsB,QAAQ,CAACpQ,SAAT,GAAqBS,MAAM,CAAC5C,MAAP,CAAciQ,KAAK,CAAC9N,SAApB,CAArB;EACAoQ,QAAQ,CAACpQ,SAAT,CAAmBvF,WAAnB,GAAiC2V,QAAjC;EACA,OAAOA,QAAP;AACH;;;;;;;;;;;;;;ACTM,SAAS/M,YAAT,CAAsBO,IAAtB,EAA4BG,MAA5B,EAAoC;EACvC,OAAOH,IAAI,CAACyM,MAAL,CAAY,CAACxM,MAAD,EAASgM,GAAT,EAAczL,CAAd,MAAsBP,MAAM,CAACgM,GAAD,CAAN,GAAc9L,MAAM,CAACK,CAAD,CAArB,EAA2BP,MAAhD,CAAZ,EAAqE,EAArE,CAAP;AACH;;;;;;;;;;;;;;;;ACFD;AACA,IAAItD,OAAO,GAAG,IAAd;AACO,SAASnE,YAAT,CAAsBkU,EAAtB,EAA0B;EAC7B,IAAIpU,iFAAJ,EAAkD;IAC9C,MAAMqU,MAAM,GAAG,CAAChQ,OAAhB;;IACA,IAAIgQ,MAAJ,EAAY;MACRhQ,OAAO,GAAG;QAAEiQ,WAAW,EAAE,KAAf;QAAsB/U,KAAK,EAAE;MAA7B,CAAV;IACH;;IACD6U,EAAE;;IACF,IAAIC,MAAJ,EAAY;MACR,MAAM;QAAEC,WAAF;QAAe/U;MAAf,IAAyB8E,OAA/B;MACAA,OAAO,GAAG,IAAV;;MACA,IAAIiQ,WAAJ,EAAiB;QACb,MAAM/U,KAAN;MACH;IACJ;EACJ,CAbD,MAcK;IACD6U,EAAE;EACL;AACJ;AACM,SAAS9Q,YAAT,CAAsBvC,GAAtB,EAA2B;EAC9B,IAAIf,iFAAA,IAAgDqE,OAApD,EAA6D;IACzDA,OAAO,CAACiQ,WAAR,GAAsB,IAAtB;IACAjQ,OAAO,CAAC9E,KAAR,GAAgBwB,GAAhB;EACH;AACJ;;;;;;;;;;;;;;AC1BM,SAASqG,eAAT,CAAyBmN,kBAAzB,EAA6ChN,SAA7C,EAAwDiN,IAAxD,EAA8D1F,KAAK,GAAG,CAAtE,EAAyE2F,MAAM,GAAG,KAAlF,EAAyF;EAC5F,MAAMC,oBAAoB,GAAGnN,SAAS,CAACqB,QAAV,CAAmB,YAAY;IACxD4L,IAAI;;IACJ,IAAIC,MAAJ,EAAY;MACRF,kBAAkB,CAAC5T,GAAnB,CAAuB,KAAKiI,QAAL,CAAc,IAAd,EAAoBkG,KAApB,CAAvB;IACH,CAFD,MAGK;MACD,KAAKzN,WAAL;IACH;EACJ,CAR4B,EAQ1ByN,KAR0B,CAA7B;EASAyF,kBAAkB,CAAC5T,GAAnB,CAAuB+T,oBAAvB;;EACA,IAAI,CAACD,MAAL,EAAa;IACT,OAAOC,oBAAP;EACH;AACJ;;;;;;;;;;;;;;ACdM,SAAS3N,QAAT,CAAkBrF,CAAlB,EAAqB;EACxB,OAAOA,CAAP;AACH;;;;;;;;;;;;;;ACFM,MAAMuH,WAAW,GAAKvH,CAAD,IAAOA,CAAC,IAAI,OAAOA,CAAC,CAACgB,MAAT,KAAoB,QAAzB,IAAqC,OAAOhB,CAAP,KAAa,UAA9E;;;;;;;;;;;;;;;ACAP;AACO,SAAS0H,eAAT,CAAyBW,GAAzB,EAA8B;EACjC,OAAO+H,MAAM,CAACC,aAAP,IAAwB9R,uDAAU,CAAC8J,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAAC+H,MAAM,CAACC,aAAR,CAA9C,CAAzC;AACH;;;;;;;;;;;;;;ACHM,SAAS9R,UAAT,CAAoBxB,KAApB,EAA2B;EAC9B,OAAO,OAAOA,KAAP,KAAiB,UAAxB;AACH;;;;;;;;;;;;;;;;ACFD;AACA;AACO,SAAS0K,mBAAT,CAA6BL,KAA7B,EAAoC;EACvC,OAAO7I,uDAAU,CAAC6I,KAAK,CAAChJ,0DAAD,CAAN,CAAjB;AACH;;;;;;;;;;;;;;;;ACJD;AACA;AACO,SAASwJ,UAAT,CAAoBR,KAApB,EAA2B;EAC9B,OAAO7I,uDAAU,CAAC6I,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACkJ,sDAAD,CAApD,CAAjB;AACH;;;;;;;;;;;;;;;ACJD;AACO,SAAS9I,SAAT,CAAmBzK,KAAnB,EAA0B;EAC7B,OAAOwB,uDAAU,CAACxB,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAAC2L,IAArD,CAAjB;AACH;;;;;;;;;;;;;;;;;ACHD;AACA;AACO,SAASZ,kCAAT,CAA4CiB,cAA5C,EAA4D;EAC/D,OAAOkK,uDAAgB,CAAC,IAAD,EAAOpH,SAAP,EAAkB,UAAUsH,oCAAV,GAAiD;IACtF,MAAMC,MAAM,GAAGrK,cAAc,CAACsK,SAAf,EAAf;;IACA,IAAI;MACA,OAAO,IAAP,EAAa;QACT,MAAM;UAAEtW,KAAF;UAASoM;QAAT,IAAkB,MAAM+J,8CAAO,CAACE,MAAM,CAACE,IAAP,EAAD,CAArC;;QACA,IAAInK,IAAJ,EAAU;UACN,OAAO,MAAM+J,8CAAO,CAAC,KAAK,CAAN,CAApB;QACH;;QACD,MAAM,MAAMA,8CAAO,CAACnW,KAAD,CAAnB;MACH;IACJ,CARD,SASQ;MACJqW,MAAM,CAACG,WAAP;IACH;EACJ,CAdsB,CAAvB;AAeH;AACM,SAAS1L,oBAAT,CAA8BQ,GAA9B,EAAmC;EACtC,OAAO9J,uDAAU,CAAC8J,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAACgL,SAA/C,CAAjB;AACH;;;;;;;;;;;;;;;ACrBD;AACO,SAAS3B,WAAT,CAAqB3U,KAArB,EAA4B;EAC/B,OAAOA,KAAK,IAAIwB,uDAAU,CAACxB,KAAK,CAACmK,QAAP,CAA1B;AACH;;;;;;;;;;;;;;;;ACHD;AACO,SAASxC,OAAT,CAAiB7F,MAAjB,EAAyB;EAC5B,OAAON,uDAAU,CAACM,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACF,IAAxD,CAAjB;AACH;AACM,SAAS4L,OAAT,CAAiBP,IAAjB,EAAuB;EAC1B,OAAQnL,MAAD,IAAY;IACf,IAAI6F,OAAO,CAAC7F,MAAD,CAAX,EAAqB;MACjB,OAAOA,MAAM,CAACF,IAAP,CAAY,UAAU6U,YAAV,EAAwB;QACvC,IAAI;UACA,OAAOxJ,IAAI,CAACwJ,YAAD,EAAe,IAAf,CAAX;QACH,CAFD,CAGA,OAAOnU,GAAP,EAAY;UACR,KAAKxB,KAAL,CAAWwB,GAAX;QACH;MACJ,CAPM,CAAP;IAQH;;IACD,MAAM,IAAIkJ,SAAJ,CAAc,wCAAd,CAAN;EACH,CAZD;AAaH;;;;;;;;;;;;;;;AClBD;AACA,MAAM;EAAE/E;AAAF,IAAc3C,KAApB;;AACA,SAAS4S,WAAT,CAAqBnR,EAArB,EAAyBsD,IAAzB,EAA+B;EAC3B,OAAOpC,OAAO,CAACoC,IAAD,CAAP,GAAgBtD,EAAE,CAAC,GAAGsD,IAAJ,CAAlB,GAA8BtD,EAAE,CAACsD,IAAD,CAAvC;AACH;;AACM,SAASN,gBAAT,CAA0BhD,EAA1B,EAA8B;EACjC,OAAO2J,mDAAG,CAACrG,IAAI,IAAI6N,WAAW,CAACnR,EAAD,EAAKsD,IAAL,CAApB,CAAV;AACH;;;;;;;;;;;;;;ACPM,SAASlE,IAAT,GAAgB,CAAG;;;;;;;;;;;;;;;;ACA1B;AACO,SAAS7B,IAAT,CAAc,GAAG6T,GAAjB,EAAsB;EACzB,OAAOrV,aAAa,CAACqV,GAAD,CAApB;AACH;AACM,SAASrV,aAAT,CAAuBqV,GAAvB,EAA4B;EAC/B,IAAIA,GAAG,CAAC1S,MAAJ,KAAe,CAAnB,EAAsB;IAClB,OAAOqE,+CAAP;EACH;;EACD,IAAIqO,GAAG,CAAC1S,MAAJ,KAAe,CAAnB,EAAsB;IAClB,OAAO0S,GAAG,CAAC,CAAD,CAAV;EACH;;EACD,OAAO,SAASC,KAAT,CAAevM,KAAf,EAAsB;IACzB,OAAOsM,GAAG,CAACjB,MAAJ,CAAW,CAACmB,IAAD,EAAOtR,EAAP,KAAcA,EAAE,CAACsR,IAAD,CAA3B,EAAmCxM,KAAnC,CAAP;EACH,CAFD;AAGH;;;;;;;;;;;;;;;;ACdD;AACA;AACO,SAAS3F,oBAAT,CAA8BpC,GAA9B,EAAmC;EACtCsC,kFAAA,CAA2B,MAAM;IAC7B,MAAM;MAAE2C;IAAF,IAAuBhG,2CAA7B;;IACA,IAAIgG,gBAAJ,EAAsB;MAClBA,gBAAgB,CAACjF,GAAD,CAAhB;IACH,CAFD,MAGK;MACD,MAAMA,GAAN;IACH;EACJ,CARD;AASH;;;;;;;;;;;;;;ACZM,SAASsI,gCAAT,CAA0CP,KAA1C,EAAiD;EACpD,OAAO,IAAImB,SAAJ,CAAe,gBAAenB,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAP,KAAiB,QAAnC,GAA8C,mBAA9C,GAAqE,IAAGA,KAAM,GAAG,0HAA/G,CAAP;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvPA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyM,gBAAN,CAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAN,CAAuB;AAGvB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAU,GAAG,GAAnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT,CAAiB5C,IAAjB,EAAuB6C,WAAvB,EAAoC;EAChC,OAAO;IAAEC,IAAI,EAAE;IAAE;IAAV;IAA+C9C,IAA/C;IAAqD6C,WAArD;IAAkE/F,OAAO,EAAE;EAA3E,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiG,OAAT,CAAiBC,OAAjB,EAA0BC,MAAM,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEH,IAAI,EAAE;IAAE;IAAV;IAA+CG,MAA/C;IAAuDD;EAAvD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,KAAT,CAAeC,KAAf,EAAsBrG,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEgG,IAAI,EAAE;IAAE;IAAV;IAA6CK,KAA7C;IAAoDrG;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsG,QAAT,CAAkBD,KAAlB,EAAyBrG,OAAO,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEgG,IAAI,EAAE;IAAE;IAAV;IAAgDK,KAAhD;IAAuDrG;EAAvD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuG,KAAT,CAAeC,MAAf,EAAuB;EACnB,OAAO;IAAER,IAAI,EAAE;IAAE;IAAV;IAA6CG,MAAM,EAAEK,MAArD;IAA6DC,MAAM,EAAE;EAArE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS3G,KAAT,CAAeoD,IAAf,EAAqBiD,MAArB,EAA6BnG,OAA7B,EAAsC;EAClC,OAAO;IAAEgG,IAAI,EAAE;IAAE;IAAV;IAA6C9C,IAA7C;IAAmDiD,MAAnD;IAA2DnG;EAA3D,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0G,SAAT,CAAmBL,KAAnB,EAA0B;EACtB,OAAO;IAAEL,IAAI,EAAE;IAAE;IAAV;IAAiDK;EAAjD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASM,UAAT,CAAoBC,eAApB,EAAqCP,KAArC,EAA4CrG,OAAO,GAAG,IAAtD,EAA4D;EACxD,OAAO;IAAEgG,IAAI,EAAE;IAAE;IAAV;IAAkDa,IAAI,EAAED,eAAxD;IAAyEE,SAAS,EAAET,KAApF;IAA2FrG;EAA3F,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8G,SAAT,CAAmBT,KAAnB,EAA0BrG,OAAO,GAAG,IAApC,EAA0C;EACtC,OAAO;IAAEgG,IAAI,EAAE;IAAE;IAAV;IAAiDc,SAAS,EAAET,KAA5D;IAAmErG;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+G,YAAT,CAAsB/G,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEgG,IAAI,EAAE;IAAE;IAAV;IAAoDhG;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgH,YAAT,CAAsBF,SAAtB,EAAiC9G,OAAO,GAAG,IAA3C,EAAiD;EAC7C,OAAO;IAAEgG,IAAI,EAAE;IAAG;IAAX;IAAmDc,SAAnD;IAA8D9G;EAA9D,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiH,KAAT,CAAe1K,QAAf,EAAyBuK,SAAzB,EAAoC9G,OAAO,GAAG,IAA9C,EAAoD;EAChD,OAAO;IAAEgG,IAAI,EAAE;IAAG;IAAX;IAA8CzJ,QAA9C;IAAwDuK,SAAxD;IAAmE9G;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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CH;;AAlBgB;AAoBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,OAAN,CAAc;EACVvvD,WAAW,CAACwvD,cAAD,EAAiBC,SAAjB,EAA4BC,QAA5B,EAAsC;IAC7C,KAAKF,cAAL,GAAsBA,cAAtB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,OAAL,GAAe,IAAf;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPT,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKO,QAAL,GAAgBP,OAAhB;IACA,KAAKQ,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,IAAZE,YAAY,CAACrqD,EAAD,EAAK;IACjB,IAAIukB,WAAW,IAAIvkB,EAAE,IAAI,IAArB,IAA6B,OAAOA,EAAP,KAAc,UAA/C,EAA2D;MACvD;MACA,IAAI6kB,OAAO,IAAIA,OAAO,CAACC,IAAvB,EAA6B;QACzBD,OAAO,CAACC,IAAR,CAAc,4CAA2CwlC,IAAI,CAACC,SAAL,CAAevqD,EAAf,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AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg6C,IAAN,CAAW;EACPrxD,WAAW,CAACwvD,cAAD,EAAiB8B,WAAjB,EAA8B;IACrC,KAAK9B,cAAL,GAAsBA,cAAtB;IACA,KAAK+B,QAAL,GAAgB,IAAIC,WAAJ,EAAhB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKH,gBAAL,GAAwBH,WAAxB;EACH;EACD;AACJ;AACA;;;EACY,IAAJO,IAAI,CAACC,SAAD,EAAY;IAChB,KAAKP,QAAL,CAAcpC,SAAd,GAA0B,KAAKoC,QAAL,CAAcM,IAAd,GAAqBC,SAA/C;;IACA,KAAKC,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARC,QAAQ,CAACV,W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YAA/C;EACH;;EACDp4C,OAAO,GAAG;IACN,KAAKq4C,QAAL,GAAgB,KAAhB;;IACA,KAAKxE,iBAAL,CAAuBr8B,KAAvB;EACH;;EACD8gC,YAAY,CAACC,OAAD,EAAU;IAClB,IAAIA,OAAO,IAAI,CAAC,KAAKF,QAArB,EAA+B;MAC3B,KAAKlvD,MAAL;IACH,CAFD,MAGK,IAAI,CAACovD,OAAD,IAAY,KAAKF,QAArB,EAA+B;MAChC,KAAKr4C,OAAL;IACH;EACJ;;AArBY;AAuBjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMw4C,QAAN,CAAe;EACXzyD,WAAW,GAAG;IACV,KAAK0yD,YAAL,GAAoB,KAApB;IACA,KAAKC,UAAL,GAAkB,CAAlB;IACA,KAAKC,mBAAL,GAA2B,CAA3B;IACA,KAAKC,iBAAL,GAAyB,KAAzB;EACH;;EACW,IAARC,QAAQ,CAACC,QAAD,EAAW;IACnB,KAAKC,SAAL,GAAiBD,QAAjB;;IACA,IAAI,KAAKJ,UAAL,KAAoB,CAAxB,EAA2B;MACvB,KAAKM,mBAAL,CAAyB,IAAzB;IACH;EACJ;EACD;;;EACAC,QAAQ,GAAG;IACP,OAAO,KAAKP,UAAL,EAAP;EACH;EACD;;;EACAQ,WAAW,CAACvC,IAAD,EAAO;IACd,IAAI,CAAC,KAAKwC,aAAV,EAAyB;MACrB,KAAKA,aAAL,GAAqB,EAArB;IACH;;IACD,KAAKA,aAAL,CAAmB5uD,IAAnB,CAAwBosD,IAAxB;EACH;EACD;;;EACAyC,UAAU,CAACnzD,KAAD,EAAQ;IACd,MAAMozD,OAAO,GAAGpzD,KAAK,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AK,CAACojB,WAAN,EAAP;EACH;;AARe;;AAUpBk0C,aAAa,CAAC/yC,IAAd;EAAA,iBAA0G+yC,aAA1G;AAAA;;AACAA,aAAa,CAACN,KAAd,kBA7rImGr7C,0DA6rInG;EAAA;EAAA,MAAwG27C,aAAxG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA9rImG37C,+DA8rInG,CAA2F27C,aAA3F,EAAsH,CAAC;IAC3GngD,IAAI,EAAEw6B,+CADqG;IAE3G9oC,IAAI,EAAE,CAAC;MACCwL,IAAI,EAAE,WADP;MAECq5C,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM6J,0BAA0B,GAAG,IAAInnB,yDAAJ,CAAmB,4BAAnB,CAAnC,EACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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CA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,8BAA8B,GAAG,EAAvC;AACA;AACA;AACA;AACA;;AACA,MAAMC,6BAA6B,GAAG,2BAAtC;AACA;AACA;AACA;AACA;;AACA,MAAMC,+BAA+B,GAAG,mCAAxC;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,2BAA2B,GAAG,CAApC;AACA;AACA;AACA;AACA;;AACA,MAAMC,8BAA8B,GAAG,CAAvC;AACA;AACA;AACA;;AACA,MAAMC,sBAAsB,GAAG,EAA/B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,yBAAyB,GAAG,IAAlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAN,CAAuB;EACnBpiE,WAAW,GAAG;IACV,KAAKqiE,WAAL,GAAmB5xB,qDAAM,CAAC6uB,YAAD,CAAzB;IACA,KAAKgD,QAAL,GAAgB7xB,qDAAM,CAAC0B,oDAAD,CAAtB;IACA,KAAKowB,UAAL,GAAkB9xB,qDAAM,CAAC2B,qDAAD,CAAN,CAAmBob,aAArC;IACA,KAAKe,QAAL,GAAgB9d,qDAAM,CAAC4B,mDAAD,CAAtB,CAJU,CAKV;;IACA,KAAKmwB,WAAL,GAAmBrmD,SAAS,GAAG,KAAKoyC,QA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;MACzC,KAAKv4D,OAAL,GAAgB,mCAAkCrH,IAAI,CAACwnC,GAAL,IAAY,eAAgB,EAA9E;IACH,CAFD,MAGK;MACD,KAAKngC,OAAL,GAAgB,6BAA4BrH,IAAI,CAACwnC,GAAL,IAAY,eAAgB,KAAIxnC,IAAI,CAAC4/D,MAAO,IAAG5/D,IAAI,CAAC6/D,UAAW,EAA3G;IACH;;IACD,KAAKhsE,KAAL,GAAamM,IAAI,CAACnM,KAAL,IAAc,IAA3B;EACH;;AAnB4C;AAsBjD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASusE,OAAT,CAAiBl8D,OAAjB,EAA0BoS,IAA1B,EAAgC;EAC5B,OAAO;IACHA,IADG;IAEH8kD,OAAO,EAAEl3D,OAAO,CAACk3D,OAFd;IAGHziE,OAAO,EAAEuL,OAAO,CAACvL,OAHd;IAIHy7D,OAAO,EAAElwD,OAAO,CAACkwD,OAJd;IAKH35C,MAAM,EAAEvW,OAAO,CAACuW,MALb;IAMHqkD,cAAc,EAAE56D,OAAO,CAAC46D,cANrB;IAOHE,YAAY,EAAE96D,OAAO,CAAC86D,YAPnB;IAQHD,eAAe,EAAE76D,OAAO,CAAC66D;EARtB,CAAP;AAUH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMsB,UAAN,CAAiB;EACbxtE,WAAW,CAAC8T,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AAT,GAA2C;EACvC,OAAOL,gBAAgB,CAACC,MAAjB,CAAwB5gF,MAAxB,KAAmC,IAA1C;AACH;;AACD,SAASihF,oBAAT,GAAgC;EAC5B,OAAON,gBAAgB,CAACC,MAAjB,CAAwBM,iBAA/B;AACH;;AACD,SAASC,yBAAT,GAAqC;EACjCR,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASE,yBAAT,GAAqC;EACjCT,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASG,kBAAT,GAA8B;EAC1B,OAAOV,gBAAgB,CAACG,eAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,gBAAT,GAA4B;EACxBX,gBAAgB,CAACG,eAAjB,GAAmC,IAAnC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,iBAAT,GAA6B;EACzBZ,gBAAgB,CAACG,eAAjB,GAAmC,KAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASU,QAAT,GAAoB;EAChB,OAAOb,gBAAgB,CAACC,MAAjB,CAAwBpF,KAA/B;AACH;AACD;AACA;AACA;;;AACA,SAASiG,QAAT,GAAoB;EAChB,OAAOd,gBAAgB,CAACC,MAAjB,CAAwBtN,KAA/B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoO,aAAT,CAAuBC,aAAvB,EAAsC;EAClChB,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GAAuCD,aAAvC;EACA,OAAOA,aAAa,CAAC5H,OAAD,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8H,WAAT,CAAqBvoF,KAArB,EAA4B;EACxBqnF,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GAAuC,IAAvC;EACA,OAAOtoF,KAAP;AACH;;AACD,SAASwoF,eAAT,GAA2B;EACvB,IAAIC,YAAY,GAAGC,4BAA4B,EAA/C;;EACA,OAAOD,YAAY,KAAK,IAAjB,IAAyBA,YAAY,CAACtxE,IAAb,KAAsB;EAAG;EAAzD,EAAsF;IAClFsxE,YAAY,GAAGA,YAAY,CAAC/hF,MAA5B;EACH;;EACD,OAAO+hF,YAAP;AACH;;AACD,SAASC,4BAAT,GAAwC;EACpC,OAAOrB,gBAAgB,CAACC,MAAjB,CAAwBmB,YAA/B;AACH;;AACD,SAASE,qBAAT,GAAiC;EAC7B,MAAMrB,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;EACA,MAAMmB,YAAY,GAAGnB,MAAM,CAACmB,YAA5B;EACA,OAAOnB,MAAM,CAAC1E,QAAP,GAAkB6F,YAAlB,GAAiCA,YAAY,CAAC/hF,MAArD;AACH;;AACD,SAASkiF,eAAT,CAAyB7O,KAAzB,EAAgC6I,QAAhC,EAA0C;EACtC3mE,SAAS,IAAI89D,KAAb,IAAsBoI,mBAAmB,CAACpI,KAAD,EAAQsN,gBAAgB,CAACC,MAAjB,CAAwBtN,KAAhC,CAAzC;EACA,MAAMsN,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;EACAA,MAAM,CAACmB,YAAP,GAAsB1O,KAAtB;EACAuN,MAAM,CAAC1E,QAAP,GAAkBA,QAAlB;AACH;;AACD,SAASiG,oBAAT,GAAgC;EAC5B,OAAOxB,gBAAgB,CAACC,MAAjB,CAAwB1E,QAA/B;AACH;;AACD,SAASkG,0BAAT,GAAsC;EAClCzB,gBAAgB,CAACC,MAAjB,CAAwB1E,QAAxB,GAAmC,KAAnC;AACH;;AACD,SAASmG,uBAAT,GAAmC;EAC/B1B,gBAAgB,CAACC,MAAjB,CAAwB1E,QAAxB,GAAmC,IAAnC;AACH;;AACD,SAASoG,eAAT,GAA2B;EACvB,MAAMV,YAAY,GAAGjB,gBAAgB,CAACC,MAAjB,CAAwBgB,YAA7C;EACArsE,SAAS,IAAI06D,aAAa,CAAC2R,YAAD,EAAe,+BAAf,CAA1B;EACA,OAAOA,YAAP;AACH;;AACD,SAASW,sBAAT,GAAkC;EAC9B,CAAChtE,SAAD,IAAcnP,UAAU,CAAC,yCAAD,CAAxB;EACA,OAAO26E,uBAAP;AACH;;AACD,SAASyB,yBAAT,CAAmCC,IAAnC,EAAyC;EACrC,CAACltE,SAAD,IAAcnP,UAAU,CAAC,yCAAD,CAAxB;EACA26E,uBAAuB,GAAG0B,IAA1B;AACH,EACD;;;AACA,SAASC,cAAT,GAA0B;EACtB,MAAM9B,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;EACA,IAAIh5E,KAAK,GAAGg5E,MAAM,CAAC+B,gBAAnB;;EACA,IAAI/6E,KAAK,KAAK,CAAC,CAAf,EAAkB;IACdA,KAAK,GAAGg5E,MAAM,CAAC+B,gBAAP,GAA0B/B,MAAM,CAACtN,KAAP,CAAayJ,iBAA/C;EACH;;EACD,OAAOn1E,KAAP;AACH;;AACD,SAASg7E,eAAT,GAA2B;EACvB,OAAOjC,gBAAgB,CAACC,MAAjB,CAAwBiC,YAA/B;AACH;;AACD,SAASC,eAAT,CAAyBxpF,KAAzB,EAAgC;EAC5B,OAAOqnF,gBAAgB,CAACC,MAAjB,CAAwBiC,YAAxB,GAAuCvpF,KAA9C;AACH;;AACD,SAASypF,gBAAT,GAA4B;EACxB,OAAOpC,gBAAgB,CAACC,MAAjB,CAAwBiC,YAAxB,EAAP;AACH;;AACD,SAASG,qBAAT,CAA+Bj3E,KAA/B,EAAsC;EAClC,MAAM60E,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;EACA,MAAMh5E,KAAK,GAAGg5E,MAAM,CAACiC,YAArB;EACAjC,MAAM,CAACiC,YAAP,GAAsBjC,MAAM,CAACiC,YAAP,GAAsB92E,KAA5C;EACA,OAAOnE,KAAP;AACH;;AACD,SAASq7E,aAAT,GAAyB;EACrB,OAAOtC,gBAAgB,CAACC,MAAjB,CAAwBsC,MAA/B;AACH;;AACD,SAASC,cAAT,CAAwBF,aAAxB,EAAuC;EACnCtC,gBAAgB,CAACC,MAAjB,CAAwBsC,MAAxB,GAAiCD,aAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,6BAAT,CAAuCT,gBAAvC,EAAyDU,qBAAzD,EAAgF;EAC5E,MAAMzC,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;EACAA,MAAM,CAACiC,YAAP,GAAsBjC,MAAM,CAAC+B,gBAAP,GAA0BA,gBAAhD;EACAW,wBAAwB,CAACD,qBAAD,CAAxB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASE,wBAAT,GAAoC;EAChC,OAAO5C,gBAAgB,CAACC,MAAjB,CAAwByC,qBAA/B;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASC,wBAAT,CAAkCD,qBAAlC,EAAyD;EACrD1C,gBAAgB,CAACC,MAAjB,CAAwByC,qBAAxB,GAAgDA,qBAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,sBAAT,CAAgCC,KAAhC,EAAuC;EACnC,MAAMJ,qBAAqB,GAAG1C,gBAAgB,CAACC,MAAjB,CAAwByC,qBAAtD;EACA,OAAOA,qBAAqB,KAAK,CAAC,CAA3B,GAA+B,IAA/B,GAAsCI,KAAK,CAACJ,qBAAD,CAAlD;AACH;;AACD,SAASK,oBAAT,GAAgC;EAC5B,OAAO/C,gBAAgB,CAACC,MAAjB,CAAwBvyD,iBAA/B;AACH;;AACD,SAASs1D,oBAAT,CAA8BrqF,KAA9B,EAAqC;EACjCqnF,gBAAgB,CAACC,MAAjB,CAAwBvyD,iBAAxB,GAA4C/0B,KAA5C;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASsqF,mBAAT,CAA6BpI,KAA7B,EAAoC;EAChC,MAAMlI,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB,CADgC,CAEhC;;EACA,IAAIlG,KAAK,CAAC7iE,IAAN,KAAe;EAAE;EAArB,EAA+C;IAC3C8E,SAAS,IAAI06D,aAAa,CAACqD,KAAK,CAACuQ,SAAP,EAAkB,kDAAlB,CAA1B;IACA,OAAOvQ,KAAK,CAACuQ,SAAb;EACH,CAN+B,CAOhC;EACA;EACA;;;EACA,IAAIvQ,KAAK,CAAC7iE,IAAN,KAAe;EAAE;EAArB,EAAgD;IAC5C,OAAO+qE,KAAK,CAAC3B,MAAD,CAAZ;EACH,CAZ+B,CAahC;;;EACA,OAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiK,OAAT,CAAiBtI,KAAjB,EAAwBnI,KAAxB,EAA+B/kB,KAA/B,EAAsC;EAClC/4C,SAAS,IAAI+mE,sBAAsB,CAACd,KAAD,CAAnC;;EACA,IAAIltB,KAAK,GAAGmjB,WAAW,CAACsS,QAAxB,EAAkC;IAC9BxuE,SAAS,IAAIkmE,mBAAmB,CAACpI,KAAD,EAAQmI,KAAK,CAAChC,KAAD,CAAb,CAAhC;IACA,IAAIwK,WAAW,GAAG3Q,KAAlB;IACA,IAAI4Q,WAAW,GAAGzI,KAAlB;;IACA,OAAO,IAAP,EAAa;MACTjmE,SAAS,IAAI06D,aAAa,CAAC+T,WAAD,EAAc,gCAAd,CAA1B;MACAA,WAAW,GAAGA,WAAW,CAAChkF,MAA1B;;MACA,IAAIgkF,WAAW,KAAK,IAAhB,IAAwB,EAAE11B,KAAK,GAAGmjB,WAAW,CAAC7mC,IAAtB,CAA5B,EAAyD;QACrDo5C,WAAW,GAAGJ,mBAAmB,CAACK,WAAD,CAAjC;QACA,IAAID,WAAW,KAAK,IAApB,EACI,MAHiD,CAIrD;QACA;;QACAzuE,SAAS,IAAI06D,aAAa,CAACgU,WAAD,EAAc,gCAAd,CAA1B;QACAA,WAAW,GAAGA,WAAW,CAAC3J,gBAAD,CAAzB,CAPqD,CAQrD;QACA;QACA;;QACA,IAAI0J,WAAW,CAACvzE,IAAZ,IAAoB;QAAE;QAAF,EAA4B;QAAE;QAAlD,CAAJ,EAAyF;UACrF;QACH;MACJ,CAdD,MAeK;QACD;MACH;IACJ;;IACD,IAAIuzE,WAAW,KAAK,IAApB,EAA0B;MACtB;MACA,OAAO,KAAP;IACH,CAHD,MAIK;MACD3Q,KAAK,GAAG2Q,WAAR;MACAxI,KAAK,GAAGyI,WAAR;IACH;EACJ;;EACD1uE,SAAS,IAAIgmE,mBAAmB,CAAClI,KAAD,EAAQmI,KAAR,CAAhC;EACA,MAAMoF,MAAM,GAAGD,gBAAgB,CAACC,MAAjB,GAA0BsD,WAAW,EAApD;EACAtD,MAAM,CAACmB,YAAP,GAAsB1O,KAAtB;EACAuN,MAAM,CAACpF,KAAP,GAAeA,KAAf;EACA,OAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2I,SAAT,CAAmBC,OAAnB,EAA4B;EACxB7uE,SAAS,IAAIo6D,cAAc,CAACyU,OAAO,CAAC,CAAD,CAAR,EAAaA,OAAO,CAAC,CAAD,CAApB,EAAyB,MAAzB,CAA3B;EACA7uE,SAAS,IAAI+mE,sBAAsB,CAAC8H,OAAD,CAAnC;EACA,MAAMC,SAAS,GAAGH,WAAW,EAA7B;;EACA,IAAI3uE,SAAJ,EAAe;IACXk6D,WAAW,CAAC4U,SAAS,CAACnI,QAAX,EAAqB,IAArB,EAA2B,uBAA3B,CAAX;IACAzM,WAAW,CAAC4U,SAAS,CAAC7I,KAAX,EAAkB,IAAlB,EAAwB,uBAAxB,CAAX;IACA/L,WAAW,CAAC4U,SAAS,CAAC/Q,KAAX,EAAkB,IAAlB,EAAwB,uBAAxB,CAAX;IACA7D,WAAW,CAAC4U,SAAS,CAACC,aAAX,EAA0B,CAAC,CAA3B,EAA8B,uBAA9B,CAAX;IACA7U,WAAW,CAAC4U,SAAS,CAACnD,iBAAX,EAA8B,CAA9B,EAAiC,uBAAjC,CAAX;IACAzR,WAAW,CAAC4U,SAAS,CAAChB,qBAAX,EAAkC,CAAC,CAAnC,EAAsC,uBAAtC,CAAX;IACA5T,WAAW,CAAC4U,SAAS,CAACE,gBAAX,EAA6B,IAA7B,EAAmC,uBAAnC,CAAX;IACA9U,WAAW,CAAC4U,SAAS,CAAC1B,gBAAX,EAA6B,CAAC,CAA9B,EAAiC,uBAAjC,CAAX;IACAlT,WAAW,CAAC4U,SAAS,CAACh2D,iBAAX,EAA8B,CAA9B,EAAiC,uBAAjC,CAAX;EACH;;EACD,MAAMilD,KAAK,GAAG8Q,OAAO,CAAC5K,KAAD,CAArB;EACAmH,gBAAgB,CAACC,MAAjB,GAA0ByD,SAA1B;EACA9uE,SAAS,IAAI+9D,KAAK,CAACkR,UAAnB,IAAiC/I,mBAAmB,CAACnI,KAAK,CAACkR,UAAP,EAAmBlR,KAAnB,CAApD;EACA+Q,SAAS,CAACtC,YAAV,GAAyBzO,KAAK,CAACkR,UAA/B;EACAH,SAAS,CAAC7I,KAAV,GAAkB4I,OAAlB;EACAC,SAAS,CAAC/Q,KAAV,GAAkBA,KAAlB;EACA+Q,SAAS,CAACzC,YAAV,GAAyBwC,OAAzB;EACAC,SAAS,CAACxB,YAAV,GAAyBvP,KAAK,CAACyJ,iBAA/B;EACAsH,SAAS,CAACnB,MAAV,GAAmB,KAAnB;AACH;AACD;AACA;AACA;;;AACA,SAASgB,WAAT,GAAuB;EACnB,MAAMO,aAAa,GAAG9D,gBAAgB,CAACC,MAAvC;EACA,MAAM8D,WAAW,GAAGD,aAAa,KAAK,IAAlB,GAAyB,IAAzB,GAAgCA,aAAa,CAACE,KAAlE;EACA,MAAMN,SAAS,GAAGK,WAAW,KAAK,IAAhB,GAAuB7D,YAAY,CAAC4D,aAAD,CAAnC,GAAqDC,WAAvE;EACA,OAAOL,SAAP;AACH;;AACD,SAASxD,YAAT,CAAsB7gF,MAAtB,EAA8B;EAC1B,MAAM4gF,MAAM,GAAG;IACXmB,YAAY,EAAE,IADH;IAEX7F,QAAQ,EAAE,IAFC;IAGXV,KAAK,EAAE,IAHI;IAIXlI,KAAK,EAAE,IAJI;IAKXgR,aAAa,EAAE,CAAC,CALL;IAMX1C,YAAY,EAAE,IANH;IAOXV,iBAAiB,EAAE,CAPR;IAQXqD,gBAAgB,EAAE,IARP;IASXlB,qBAAqB,EAAE,CAAC,CATb;IAUXV,gBAAgB,EAAE,CAAC,CAVR;IAWXE,YAAY,EAAE,CAAC,CAXJ;IAYXx0D,iBAAiB,EAAE,CAZR;IAaXruB,MAAM,EAAEA,MAbG;IAcX2kF,KAAK,EAAE,IAdI;IAeXzB,MAAM,EAAE;EAfG,CAAf;EAiBAljF,MAAM,KAAK,IAAX,KAAoBA,MAAM,CAAC2kF,KAAP,GAAe/D,MAAnC,EAlB0B,CAkBkB;;EAC5C,OAAOA,MAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgE,cAAT,GAA0B;EACtB,MAAMC,SAAS,GAAGlE,gBAAgB,CAACC,MAAnC;EACAD,gBAAgB,CAACC,MAAjB,GAA0BiE,SAAS,CAAC7kF,MAApC;EACA6kF,SAAS,CAAC9C,YAAV,GAAyB,IAAzB;EACA8C,SAAS,CAACrJ,KAAV,GAAkB,IAAlB;EACA,OAAOqJ,SAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,OAAO,GAAGF,cAAhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASG,SAAT,GAAqB;EACjB,MAAMF,SAAS,GAAGD,cAAc,EAAhC;EACAC,SAAS,CAAC3I,QAAV,GAAqB,IAArB;EACA2I,SAAS,CAACvR,KAAV,GAAkB,IAAlB;EACAuR,SAAS,CAACP,aAAV,GAA0B,CAAC,CAA3B;EACAO,SAAS,CAACjD,YAAV,GAAyB,IAAzB;EACAiD,SAAS,CAAC3D,iBAAV,GAA8B,CAA9B;EACA2D,SAAS,CAACxB,qBAAV,GAAkC,CAAC,CAAnC;EACAwB,SAAS,CAACN,gBAAV,GAA6B,IAA7B;EACAM,SAAS,CAAClC,gBAAV,GAA6B,CAAC,CAA9B;EACAkC,SAAS,CAAChC,YAAV,GAAyB,CAAC,CAA1B;EACAgC,SAAS,CAACx2D,iBAAV,GAA8B,CAA9B;AACH;;AACD,SAAS22D,eAAT,CAAyBC,KAAzB,EAAgC;EAC5B,MAAMrD,YAAY,GAAGjB,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GACjBsD,WAAW,CAACD,KAAD,EAAQtE,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAhC,CADf;EAEA,OAAOA,YAAY,CAAC7H,OAAD,CAAnB;AACH;;AACD,SAASmL,WAAT,CAAqBC,YAArB,EAAmCC,WAAnC,EAAgD;EAC5C,OAAOD,YAAY,GAAG,CAAtB,EAAyB;IACrB5vE,SAAS,IACL06D,aAAa,CAACmV,WAAW,CAAC9K,gBAAD,CAAZ,EAAgC,wEAAhC,CADjB;IAEA8K,WAAW,GAAGA,WAAW,CAAC9K,gBAAD,CAAzB;IACA6K,YAAY;EACf;;EACD,OAAOC,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,gBAAT,GAA4B;EACxB,OAAO1E,gBAAgB,CAACC,MAAjB,CAAwB0D,aAA/B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgB,gBAAT,CAA0B19E,KAA1B,EAAiC;EAC7B2N,SAAS,IAAI3N,KAAK,KAAK,CAAC,CAAxB,IACI0nE,wBAAwB,CAAC1nE,KAAD,EAAQizE,aAAR,EAAuB,2CAAvB,CAD5B;EAEAtlE,SAAS,IACLu6D,cAAc,CAACloE,KAAD,EAAQ+4E,gBAAgB,CAACC,MAAjB,CAAwBpF,KAAxB,CAA8Bj+E,MAAtC,EAA8C,sCAA9C,CADlB;EAEAojF,gBAAgB,CAACC,MAAjB,CAAwB0D,aAAxB,GAAwC18E,KAAxC;AACH;AACD;AACA;AACA;;;AACA,SAAS29E,gBAAT,GAA4B;EACxB,MAAM3E,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;EACA,OAAOhB,QAAQ,CAACgB,MAAM,CAACtN,KAAR,EAAesN,MAAM,CAAC0D,aAAtB,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASkB,cAAT,GAA0B;EACtB7E,gBAAgB,CAACC,MAAjB,CAAwB2D,gBAAxB,GAA2CvF,aAA3C;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASyG,iBAAT,GAA6B;EACzB9E,gBAAgB,CAACC,MAAjB,CAAwB2D,gBAAxB,GAA2CrF,iBAA3C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwG,eAAT,GAA2B;EACvBC,qBAAqB;AACxB;AACD;AACA;AACA;AACA;;;AACA,SAASA,qBAAT,GAAiC;EAC7BhF,gBAAgB,CAACC,MAAjB,CAAwB2D,gBAAxB,GAA2C,IAA3C;AACH;;AACD,SAASqB,cAAT,GAA0B;EACtB,OAAOjF,gBAAgB,CAACC,MAAjB,CAAwB2D,gBAA/B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsB,qBAAT,CAA+BC,cAA/B,EAA+CC,YAA/C,EAA6DzS,KAA7D,EAAoE;EAChE/9D,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC;EACA,MAAM;IAAElsB,WAAF;IAAemV,QAAf;IAAyBzW;EAAzB,IAAuCigC,YAAY,CAACt1E,IAAb,CAAkB9R,SAA/D;;EACA,IAAIyoD,WAAJ,EAAiB;IACb,MAAM4+B,gBAAgB,GAAGjI,sBAAsB,CAACgI,YAAD,CAA/C;IACA,CAACzS,KAAK,CAAC2S,aAAN,KAAwB3S,KAAK,CAAC2S,aAAN,GAAsB,EAA9C,CAAD,EAAoDroF,IAApD,CAAyDkoF,cAAzD,EAAyEE,gBAAzE;IACA,CAAC1S,KAAK,CAAC4S,kBAAN,KAA6B5S,KAAK,CAAC4S,kBAAN,GAA2B,EAAxD,CAAD,EACKtoF,IADL,CACUkoF,cADV,EAC0BE,gBAD1B;EAEH;;EACD,IAAIzpB,QAAJ,EAAc;IACV,CAAC+W,KAAK,CAAC2S,aAAN,KAAwB3S,KAAK,CAAC2S,aAAN,GAAsB,EAA9C,CAAD,EAAoDroF,IAApD,CAAyD,IAAIkoF,cAA7D,EAA6EvpB,QAA7E;EACH;;EACD,IAAIzW,SAAJ,EAAe;IACX,CAACwtB,KAAK,CAAC2S,aAAN,KAAwB3S,KAAK,CAAC2S,aAAN,GAAsB,EAA9C,CAAD,EAAoDroF,IAApD,CAAyDkoF,cAAzD,EAAyEhgC,SAAzE;IACA,CAACwtB,KAAK,CAAC4S,kBAAN,KAA6B5S,KAAK,CAAC4S,kBAAN,GAA2B,EAAxD,CAAD,EAA8DtoF,IAA9D,CAAmEkoF,cAAnE,EAAmFhgC,SAAnF;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqgC,sBAAT,CAAgC7S,KAAhC,EAAuCD,KAAvC,EAA8C;EAC1C99D,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC,CAD0C,CAE1C;EACA;EACA;;EACA,KAAK,IAAIvwE,CAAC,GAAGswE,KAAK,CAAC+S,cAAd,EAA8B33C,GAAG,GAAG4kC,KAAK,CAACgT,YAA/C,EAA6DtjF,CAAC,GAAG0rC,GAAjE,EAAsE1rC,CAAC,EAAvE,EAA2E;IACvE,MAAMgjF,YAAY,GAAGzS,KAAK,CAAC14D,IAAN,CAAW7X,CAAX,CAArB;IACAwS,SAAS,IAAI06D,aAAa,CAAC8V,YAAD,EAAe,wBAAf,CAA1B;IACA,MAAMO,cAAc,GAAGP,YAAY,CAACt1E,IAAb,CAAkB9R,SAAzC;IACA,MAAM;MAAE4nF,kBAAF;MAAsBC,qBAAtB;MAA6CC,eAA7C;MAA8DC,kBAA9D;MAAkFl3C;IAAlF,IAAkG82C,cAAxG;;IACA,IAAIC,kBAAJ,EAAwB;MACpB,CAACjT,KAAK,CAACqT,YAAN,KAAuBrT,KAAK,CAACqT,YAAN,GAAqB,EAA5C,CAAD,EAAkD/oF,IAAlD,CAAuD,CAACmF,CAAxD,EAA2DwjF,kBAA3D;IACH;;IACD,IAAIC,qBAAJ,EAA2B;MACvB,CAAClT,KAAK,CAACqT,YAAN,KAAuBrT,KAAK,CAACqT,YAAN,GAAqB,EAA5C,CAAD,EAAkD/oF,IAAlD,CAAuDmF,CAAvD,EAA0DyjF,qBAA1D;MACA,CAAClT,KAAK,CAACsT,iBAAN,KAA4BtT,KAAK,CAACsT,iBAAN,GAA0B,EAAtD,CAAD,EAA4DhpF,IAA5D,CAAiEmF,CAAjE,EAAoEyjF,qBAApE;IACH;;IACD,IAAIC,eAAJ,EAAqB;MACjB,CAACnT,KAAK,CAACuT,SAAN,KAAoBvT,KAAK,CAACuT,SAAN,GAAkB,EAAtC,CAAD,EAA4CjpF,IAA5C,CAAiD,CAACmF,CAAlD,EAAqD0jF,eAArD;IACH;;IACD,IAAIC,kBAAJ,EAAwB;MACpB,CAACpT,KAAK,CAACuT,SAAN,KAAoBvT,KAAK,CAACuT,SAAN,GAAkB,EAAtC,CAAD,EAA4CjpF,IAA5C,CAAiDmF,CAAjD,EAAoD2jF,kBAApD;MACA,CAACpT,KAAK,CAACwT,cAAN,KAAyBxT,KAAK,CAACwT,cAAN,GAAuB,EAAhD,CAAD,EAAsDlpF,IAAtD,CAA2DmF,CAA3D,EAA8D2jF,kBAA9D;IACH;;IACD,IAAIl3C,WAAW,IAAI,IAAnB,EAAyB;MACrB,CAAC8jC,KAAK,CAACyT,YAAN,KAAuBzT,KAAK,CAACyT,YAAN,GAAqB,EAA5C,CAAD,EAAkDnpF,IAAlD,CAAuDmF,CAAvD,EAA0DysC,WAA1D;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw3C,iBAAT,CAA2BxL,KAA3B,EAAkCyL,KAAlC,EAAyClH,SAAzC,EAAoD;EAChDmH,SAAS,CAAC1L,KAAD,EAAQyL,KAAR,EAAe;EAAE;EAAjB,EAA0DlH,SAA1D,CAAT;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoH,wBAAT,CAAkC3L,KAAlC,EAAyCyL,KAAzC,EAAgDG,SAAhD,EAA2DrH,SAA3D,EAAsE;EAClExqE,SAAS,IACLo6D,cAAc,CAACyX,SAAD,EAAY;EAAE;EAAd,EAAuD,0DAAvD,CADlB;;EAEA,IAAI,CAAC5L,KAAK,CAAC/B,KAAD,CAAL,GAAe;EAAE;EAAlB,MAA2D2N,SAA/D,EAA0E;IACtEF,SAAS,CAAC1L,KAAD,EAAQyL,KAAR,EAAeG,SAAf,EAA0BrH,SAA1B,CAAT;EACH;AACJ;;AACD,SAASsH,uBAAT,CAAiC7L,KAAjC,EAAwC4L,SAAxC,EAAmD;EAC/C7xE,SAAS,IACLo6D,cAAc,CAACyX,SAAD,EAAY;EAAE;EAAd,EAAuD,gFAAvD,CADlB;EAEA,IAAI94B,KAAK,GAAGktB,KAAK,CAAC/B,KAAD,CAAjB;;EACA,IAAI,CAACnrB,KAAK,GAAG;EAAE;EAAX,MAAoD84B,SAAxD,EAAmE;IAC/D94B,KAAK,IAAI;IAAK;IAAd;IACAA,KAAK,IAAI;IAAE;IAAX;IACAktB,KAAK,CAAC/B,KAAD,CAAL,GAAenrB,KAAf;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS44B,SAAT,CAAmB9B,WAAnB,EAAgCl3E,GAAhC,EAAqCk5E,SAArC,EAAgDE,gBAAhD,EAAkE;EAC9D/xE,SAAS,IACLk6D,WAAW,CAAC8S,sBAAsB,EAAvB,EAA2B,KAA3B,EAAkC,0DAAlC,CADf;EAEA,MAAM/iE,UAAU,GAAG8nE,gBAAgB,KAAKptF,SAArB,GACdkrF,WAAW,CAAC3K,mBAAD,CAAX,GAAmC;EAAM;EAD3B,EAEf,CAFJ;EAGA,MAAM8M,cAAc,GAAGD,gBAAgB,IAAI,IAApB,GAA2BA,gBAA3B,GAA8C,CAAC,CAAtE;EACA,MAAM/yE,GAAG,GAAGrG,GAAG,CAAC3Q,MAAJ,GAAa,CAAzB,CAP8D,CAOlC;;EAC5B,IAAIiqF,kBAAkB,GAAG,CAAzB;;EACA,KAAK,IAAIzkF,CAAC,GAAGyc,UAAb,EAAyBzc,CAAC,GAAGwR,GAA7B,EAAkCxR,CAAC,EAAnC,EAAuC;IACnC,MAAM0kF,IAAI,GAAGv5E,GAAG,CAACnL,CAAC,GAAG,CAAL,CAAhB;;IACA,IAAI,OAAO0kF,IAAP,KAAgB,QAApB,EAA8B;MAC1BD,kBAAkB,GAAGt5E,GAAG,CAACnL,CAAD,CAAxB;;MACA,IAAIukF,gBAAgB,IAAI,IAApB,IAA4BE,kBAAkB,IAAIF,gBAAtD,EAAwE;QACpE;MACH;IACJ,CALD,MAMK;MACD,MAAMI,UAAU,GAAGx5E,GAAG,CAACnL,CAAD,CAAH,GAAS,CAA5B;MACA,IAAI2kF,UAAJ,EACItC,WAAW,CAAC3K,mBAAD,CAAX,IAAoC;MAAM;MAA1C;;MACJ,IAAI+M,kBAAkB,GAAGD,cAArB,IAAuCA,cAAc,IAAI,CAAC,CAA9D,EAAiE;QAC7DI,QAAQ,CAACvC,WAAD,EAAcgC,SAAd,EAAyBl5E,GAAzB,EAA8BnL,CAA9B,CAAR;QACAqiF,WAAW,CAAC3K,mBAAD,CAAX,GACI,CAAC2K,WAAW,CAAC3K,mBAAD,CAAX,GAAmC;QAAW;QAA/C,IAAsG13E,CAAtG,GACI,CAFR;MAGH;;MACDA,CAAC;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4kF,QAAT,CAAkBvC,WAAlB,EAA+BgC,SAA/B,EAA0Cl5E,GAA1C,EAA+CnL,CAA/C,EAAkD;EAC9C,MAAM2kF,UAAU,GAAGx5E,GAAG,CAACnL,CAAD,CAAH,GAAS,CAA5B;EACA,MAAM0kF,IAAI,GAAGv5E,GAAG,CAACnL,CAAC,GAAG,CAAL,CAAhB;EACA,MAAM+iF,cAAc,GAAG4B,UAAU,GAAG,CAACx5E,GAAG,CAACnL,CAAD,CAAP,GAAamL,GAAG,CAACnL,CAAD,CAAjD;EACA,MAAM6kF,SAAS,GAAGxC,WAAW,CAACU,cAAD,CAA7B;;EACA,IAAI4B,UAAJ,EAAgB;IACZ,MAAMG,qBAAqB,GAAGzC,WAAW,CAAC3L,KAAD,CAAX,IAAsB;IAAG;IAAvD,CADY,CAEZ;;IACA,IAAIoO,qBAAqB,GACpBzC,WAAW,CAAC3K,mBAAD,CAAX,IAAoC;IAAG;IADxC,GAEA,CAAC2K,WAAW,CAAC3L,KAAD,CAAX,GAAqB;IAAE;IAAxB,MAAiE2N,SAFrE,EAEgF;MAC5EhC,WAAW,CAAC3L,KAAD,CAAX,IAAsB;MAAK;MAA3B;MACAqF,QAAQ,CAAC;MAAE;MAAH,EAA2C8I,SAA3C,EAAsDH,IAAtD,CAAR;;MACA,IAAI;QACAA,IAAI,CAAChsF,IAAL,CAAUmsF,SAAV;MACH,CAFD,SAGQ;QACJ9I,QAAQ,CAAC;QAAE;QAAH,EAAyC8I,SAAzC,EAAoDH,IAApD,CAAR;MACH;IACJ;EACJ,CAfD,MAgBK;IACD3I,QAAQ,CAAC;IAAE;IAAH,EAA2C8I,SAA3C,EAAsDH,IAAtD,CAAR;;IACA,IAAI;MACAA,IAAI,CAAChsF,IAAL,CAAUmsF,SAAV;IACH,CAFD,SAGQ;MACJ9I,QAAQ,CAAC;MAAE;MAAH,EAAyC8I,SAAzC,EAAoDH,IAApD,CAAR;IACH;EACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMK,kBAAkB,GAAG,CAAC,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAN,CAA0B;EACtB3uF,WAAW;EACX;AACJ;AACA;EACI26D,OAJW;EAKX;AACJ;AACA;EACIi0B,cARW,EAQKC,oBARL,EAQ2B;IAClC,KAAKl0B,OAAL,GAAeA,OAAf;IACA;AACR;AACA;AACA;;IACQ,KAAKm0B,SAAL,GAAiB,KAAjB;IACA3yE,SAAS,IAAI06D,aAAa,CAAClc,OAAD,EAAU,uBAAV,CAA1B;IACAx+C,SAAS,IAAIk6D,WAAW,CAAC,OAAO1b,OAAR,EAAiB,UAAjB,EAA6B,4BAA7B,CAAxB;IACA,KAAKo0B,mBAAL,GAA2BH,cAA3B;IACA,KAAKI,UAAL,GAAkBH,oBAAlB;EACH;;AApBqB;;AAsB1B,SAASI,SAAT,CAAmBzjF,GAAnB,EAAwB;EACpB,OAAOA,GAAG,YAAYmjF,mBAAtB;AACH,EACD;AACA;;;AACA,MAAMO,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;;AACA,SAASC,mBAAT,CAA6BC,SAA7B,EAAwC;EACpC,IAAIhxC,IAAI,GAAG,EAAX;EACCgxC,SAAS,GAAG;EAAE;EAAf,IAAyChxC,IAAI,IAAI,OAAjD;EACCgxC,SAAS,GAAG;EAAE;EAAf,IAA4ChxC,IAAI,IAAI,UAApD;EACCgxC,SAAS,GAAG;EAAE;EAAf,IAA8ChxC,IAAI,IAAI,YAAtD;EACCgxC,SAAS,GAAG;EAAE;EAAf,IAAqDhxC,IAAI,IAAI,mBAA7D;EACCgxC,SAAS,GAAG;EAAG;EAAhB,IAAgDhxC,IAAI,IAAI,aAAxD;EACCgxC,SAAS,GAAG;EAAG;EAAhB,IAAyChxC,IAAI,IAAI,eAAjD;EACCgxC,SAAS,GAAG;EAAG;EAAhB,IAAiDhxC,IAAI,IAAI,cAAzD;EACA,OAAOA,IAAI,CAACj6C,MAAL,GAAc,CAAd,GAAkBi6C,IAAI,CAACv8B,SAAL,CAAe,CAAf,CAAlB,GAAsCu8B,IAA7C;AACH,EACD;AACA;;;AACA,MAAMixC,+BAA+B,GAAG,CAAxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,aAAT,CAAuBrV,KAAvB,EAA8B;EAC1B,OAAO,CAACA,KAAK,CAAC/kB,KAAN,GAAc;EAAG;EAAlB,MAAsD,CAA7D;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq6B,aAAT,CAAuBtV,KAAvB,EAA8B;EAC1B,OAAO,CAACA,KAAK,CAAC/kB,KAAN,GAAc;EAAG;EAAlB,MAAsD,CAA7D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASs6B,eAAT,CAAyBvV,KAAzB,EAAgCwV,aAAhC,EAA+Cj7E,OAA/C,EAAwD;EACpDqiE,aAAa,CAACoD,KAAD,EAAQ,+BAAR,CAAb;;EACA,IAAI,CAACA,KAAK,CAAC5iE,IAAN,GAAao4E,aAAd,MAAiC,CAArC,EAAwC;IACpCziF,UAAU,CAACwH,OAAO,IACb,aAAY26E,mBAAmB,CAACM,aAAD,CAAgB,aAAYN,mBAAmB,CAAClV,KAAK,CAAC5iE,IAAP,CAAa,GADtF,CAAV;EAEH;AACJ;;AACD,SAASq4E,mBAAT,CAA6Br4E,IAA7B,EAAmC;EAC/B,IAAI,EAAEA,IAAI,KAAK;EAAE;EAAX,GAAsC;EACxCA,IAAI,KAAK;EAAE;EADT,GACiC;EACnCA,IAAI,KAAK;EAAE;EAFT,GAEsC;EACxCA,IAAI,KAAK;EAAE;EAHT,GAG6C;EAC/CA,IAAI,KAAK;EAAG;EAJV,GAIiC;EACnCA,IAAI,KAAK;EAAG;EALV,GAKwC;EAC1CA,IAAI,KAAK;EAAG;EANZ,CAAJ,EAM8C;IAC1CrK,UAAU,CAAE,mEAAkEmiF,mBAAmB,CAAC93E,IAAD,CAAO,GAA9F,CAAV;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASs4E,eAAT,CAAyBrtB,QAAzB,EAAmCstB,MAAnC,EAA2CC,KAA3C,EAAkD;EAC9C,IAAIlmF,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGkmF,KAAK,CAAC1rF,MAAjB,EAAyB;IACrB,MAAMjE,KAAK,GAAG2vF,KAAK,CAAClmF,CAAD,CAAnB;;IACA,IAAI,OAAOzJ,KAAP,KAAiB,QAArB,EAA+B;MAC3B;MACA;MACA,IAAIA,KAAK,KAAK;MAAE;MAAhB,EAAoD;QAChD;MACH,CAL0B,CAM3B;MACA;;;MACAyJ,CAAC;MACD,MAAMmmF,YAAY,GAAGD,KAAK,CAAClmF,CAAC,EAAF,CAA1B;MACA,MAAMmqD,QAAQ,GAAG+7B,KAAK,CAAClmF,CAAC,EAAF,CAAtB;MACA,MAAMomF,OAAO,GAAGF,KAAK,CAAClmF,CAAC,EAAF,CAArB;MACAwS,SAAS,IAAIA,SAAS,CAACo+D,oBAAV,EAAb;MACAjY,QAAQ,CAACl7C,YAAT,CAAsBwoE,MAAtB,EAA8B97B,QAA9B,EAAwCi8B,OAAxC,EAAiDD,YAAjD;IACH,CAdD,MAeK;MACD;MACA,MAAMh8B,QAAQ,GAAG5zD,KAAjB;MACA,MAAM6vF,OAAO,GAAGF,KAAK,CAAC,EAAElmF,CAAH,CAArB,CAHC,CAID;;MACAwS,SAAS,IAAIA,SAAS,CAACo+D,oBAAV,EAAb;;MACA,IAAIyV,eAAe,CAACl8B,QAAD,CAAnB,EAA+B;QAC3BwO,QAAQ,CAAC2tB,WAAT,CAAqBL,MAArB,EAA6B97B,QAA7B,EAAuCi8B,OAAvC;MACH,CAFD,MAGK;QACDztB,QAAQ,CAACl7C,YAAT,CAAsBwoE,MAAtB,EAA8B97B,QAA9B,EAAwCi8B,OAAxC;MACH;;MACDpmF,CAAC;IACJ;EACJ,CAjC6C,CAkC9C;EACA;EACA;EACA;;;EACA,OAAOA,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASumF,yBAAT,CAAmCC,MAAnC,EAA2C;EACvC,OAAOA,MAAM,KAAK;EAAE;EAAb,GAA+CA,MAAM,KAAK;EAAE;EAA5D,GACHA,MAAM,KAAK;EAAE;EADjB;AAEH;;AACD,SAASH,eAAT,CAAyBz7E,IAAzB,EAA+B;EAC3B;EACA;EACA;EACA,OAAOA,IAAI,CAAC67E,UAAL,CAAgB,CAAhB,MAAuB;EAAG;EAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAwBC,GAAxB,EAA6B3yB,GAA7B,EAAkC;EAC9B,IAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAACx5D,MAAJ,KAAe,CAAnC,EAAsC,CAClC;EACH,CAFD,MAGK,IAAImsF,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAACnsF,MAAJ,KAAe,CAAnC,EAAsC;IACvC;IACAmsF,GAAG,GAAG3yB,GAAG,CAAC9zD,KAAJ,EAAN;EACH,CAHI,MAIA;IACD,IAAI0mF,SAAS,GAAG,CAAC;IAAE;IAAnB;;IACA,KAAK,IAAI5mF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGg0D,GAAG,CAACx5D,MAAxB,EAAgCwF,CAAC,EAAjC,EAAqC;MACjC,MAAM0L,IAAI,GAAGsoD,GAAG,CAACh0D,CAAD,CAAhB;;MACA,IAAI,OAAO0L,IAAP,KAAgB,QAApB,EAA8B;QAC1Bk7E,SAAS,GAAGl7E,IAAZ;MACH,CAFD,MAGK;QACD,IAAIk7E,SAAS,KAAK;QAAE;QAApB,EAAwD,CACpD;QACH,CAFD,MAGK,IAAIA,SAAS,KAAK,CAAC;QAAE;QAAjB,GACLA,SAAS,KAAK;QAAE;QADf,EAC6C;UAC9C;UACAC,kBAAkB,CAACF,GAAD,EAAMC,SAAN,EAAiBl7E,IAAjB,EAAuB,IAAvB,EAA6BsoD,GAAG,CAAC,EAAEh0D,CAAH,CAAhC,CAAlB;QACH,CAJI,MAKA;UACD;UACA6mF,kBAAkB,CAACF,GAAD,EAAMC,SAAN,EAAiBl7E,IAAjB,EAAuB,IAAvB,EAA6B,IAA7B,CAAlB;QACH;MACJ;IACJ;EACJ;;EACD,OAAOi7E,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,kBAAT,CAA4BF,GAA5B,EAAiCH,MAAjC,EAAyC1yD,IAAzC,EAA+CC,IAA/C,EAAqDx9B,KAArD,EAA4D;EACxD,IAAIyJ,CAAC,GAAG,CAAR,CADwD,CAExD;;EACA,IAAI8mF,oBAAoB,GAAGH,GAAG,CAACnsF,MAA/B,CAHwD,CAIxD;;EACA,IAAIgsF,MAAM,KAAK,CAAC;EAAE;EAAlB,EAA4D;IACxDM,oBAAoB,GAAG,CAAC,CAAxB;EACH,CAFD,MAGK;IACD,OAAO9mF,CAAC,GAAG2mF,GAAG,CAACnsF,MAAf,EAAuB;MACnB,MAAMusF,QAAQ,GAAGJ,GAAG,CAAC3mF,CAAC,EAAF,CAApB;;MACA,IAAI,OAAO+mF,QAAP,KAAoB,QAAxB,EAAkC;QAC9B,IAAIA,QAAQ,KAAKP,MAAjB,EAAyB;UACrBM,oBAAoB,GAAG,CAAC,CAAxB;UACA;QACH,CAHD,MAIK,IAAIC,QAAQ,GAAGP,MAAf,EAAuB;UACxB;UACAM,oBAAoB,GAAG9mF,CAAC,GAAG,CAA3B;UACA;QACH;MACJ;IACJ;EACJ,CAvBuD,CAwBxD;;;EACA,OAAOA,CAAC,GAAG2mF,GAAG,CAACnsF,MAAf,EAAuB;IACnB,MAAMkR,IAAI,GAAGi7E,GAAG,CAAC3mF,CAAD,CAAhB;;IACA,IAAI,OAAO0L,IAAP,KAAgB,QAApB,EAA8B;MAC1B;MACA;MACA;IACH,CAJD,MAKK,IAAIA,IAAI,KAAKooB,IAAb,EAAmB;MACpB;MACA,IAAIC,IAAI,KAAK,IAAb,EAAmB;QACf,IAAIx9B,KAAK,KAAK,IAAd,EAAoB;UAChBowF,GAAG,CAAC3mF,CAAC,GAAG,CAAL,CAAH,GAAazJ,KAAb;QACH;;QACD;MACH,CALD,MAMK,IAAIw9B,IAAI,KAAK4yD,GAAG,CAAC3mF,CAAC,GAAG,CAAL,CAAhB,EAAyB;QAC1B2mF,GAAG,CAAC3mF,CAAC,GAAG,CAAL,CAAH,GAAazJ,KAAb;QACA;MACH;IACJ,CAnBkB,CAoBnB;;;IACAyJ,CAAC;IACD,IAAI+zB,IAAI,KAAK,IAAb,EACI/zB,CAAC;IACL,IAAIzJ,KAAK,KAAK,IAAd,EACIyJ,CAAC;EACR,CAnDuD,CAoDxD;;;EACA,IAAI8mF,oBAAoB,KAAK,CAAC,CAA9B,EAAiC;IAC7BH,GAAG,CAAC/6E,MAAJ,CAAWk7E,oBAAX,EAAiC,CAAjC,EAAoCN,MAApC;IACAxmF,CAAC,GAAG8mF,oBAAoB,GAAG,CAA3B;EACH;;EACDH,GAAG,CAAC/6E,MAAJ,CAAW5L,CAAC,EAAZ,EAAgB,CAAhB,EAAmB8zB,IAAnB;;EACA,IAAIC,IAAI,KAAK,IAAb,EAAmB;IACf4yD,GAAG,CAAC/6E,MAAJ,CAAW5L,CAAC,EAAZ,EAAgB,CAAhB,EAAmB+zB,IAAnB;EACH;;EACD,IAAIx9B,KAAK,KAAK,IAAd,EAAoB;IAChBowF,GAAG,CAAC/6E,MAAJ,CAAW5L,CAAC,EAAZ,EAAgB,CAAhB,EAAmBzJ,KAAnB;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASywF,iBAAT,CAA2BC,cAA3B,EAA2C;EACvC,OAAOA,cAAc,KAAKlC,kBAA1B;AACH;;AACD,SAASmC,sBAAT,CAAgCD,cAAhC,EAAgD;EAC5Cz0E,SAAS,IAAIw5D,YAAY,CAACib,cAAD,EAAiB,iBAAjB,CAAzB;EACAz0E,SAAS,IAAIo6D,cAAc,CAACqa,cAAD,EAAiB,CAAC,CAAlB,EAAqB,oBAArB,CAA3B;EACA,MAAME,mBAAmB,GAAGF,cAAc,GAAG;EAAM;EAAnD;EACAz0E,SAAS,IACLw6D,iBAAiB,CAACma,mBAAD,EAAsBrP,aAAtB,EAAqC,sDAArC,CADrB;EAEA,OAAOmP,cAAc,GAAG;EAAM;EAA9B;AACH;;AACD,SAASG,2BAAT,CAAqCH,cAArC,EAAqD;EACjD,OAAOA,cAAc,IAAI;EAAG;EAA5B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,qBAAT,CAA+Bx9C,QAA/B,EAAyCy9C,SAAzC,EAAoD;EAChD,IAAIC,UAAU,GAAGH,2BAA2B,CAACv9C,QAAD,CAA5C;EACA,IAAI29C,UAAU,GAAGF,SAAjB,CAFgD,CAGhD;EACA;EACA;EACA;;EACA,OAAOC,UAAU,GAAG,CAApB,EAAuB;IACnBC,UAAU,GAAGA,UAAU,CAACjQ,gBAAD,CAAvB;IACAgQ,UAAU;EACb;;EACD,OAAOC,UAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,oBAAoB,GAAG,IAA3B;;AACA,SAASC,uBAAT,CAAiCpiF,CAAjC,EAAoC;EAChC,MAAMo8B,QAAQ,GAAG+lD,oBAAjB;EACAA,oBAAoB,GAAGniF,CAAvB;EACA,OAAOo8B,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAMimD,UAAU,GAAG,GAAnB;AACA,MAAMC,UAAU,GAAGD,UAAU,GAAG,CAAhC;AACA;AACA;AACA;AACA;AACA;;AACA,MAAME,iBAAiB,GAAG,CAA1B;AACA;;AACA,IAAIC,eAAe,GAAG,CAAtB;AACA;;AACA,MAAMC,SAAS,GAAG,EAAlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,QAAT,CAAkBtN,aAAlB,EAAiCnK,KAAjC,EAAwC7iE,IAAxC,EAA8C;EAC1C8E,SAAS,IAAIk6D,WAAW,CAAC6D,KAAK,CAACF,eAAP,EAAwB,IAAxB,EAA8B,qCAA9B,CAAxB;EACA,IAAIr7D,EAAJ;;EACA,IAAI,OAAOtH,IAAP,KAAgB,QAApB,EAA8B;IAC1BsH,EAAE,GAAGtH,IAAI,CAAC+4E,UAAL,CAAgB,CAAhB,KAAsB,CAA3B;EACH,CAFD,MAGK,IAAI/4E,IAAI,CAACyO,cAAL,CAAoBm2D,aAApB,CAAJ,EAAwC;IACzCt9D,EAAE,GAAGtH,IAAI,CAAC4kE,aAAD,CAAT;EACH,CARyC,CAS1C;EACA;;;EACA,IAAIt9D,EAAE,IAAI,IAAV,EAAgB;IACZA,EAAE,GAAGtH,IAAI,CAAC4kE,aAAD,CAAJ,GAAsBwV,eAAe,EAA1C;EACH,CAbyC,CAc1C;EACA;;;EACA,MAAMG,SAAS,GAAGjzE,EAAE,GAAG4yE,UAAvB,CAhB0C,CAiB1C;EACA;EACA;;EACA,MAAMM,IAAI,GAAG,KAAKD,SAAlB,CApB0C,CAqB1C;EACA;EACA;;EACA1X,KAAK,CAAC14D,IAAN,CAAW6iE,aAAa,IAAIuN,SAAS,IAAIJ,iBAAjB,CAAxB,KAAgEK,IAAhE;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,8BAAT,CAAwC7X,KAAxC,EAA+CmI,KAA/C,EAAsD;EAClD,MAAM2P,qBAAqB,GAAGC,gBAAgB,CAAC/X,KAAD,EAAQmI,KAAR,CAA9C;;EACA,IAAI2P,qBAAqB,KAAK,CAAC,CAA/B,EAAkC;IAC9B,OAAOA,qBAAP;EACH;;EACD,MAAM7X,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB;;EACA,IAAIlG,KAAK,CAACF,eAAV,EAA2B;IACvBC,KAAK,CAACoK,aAAN,GAAsBjC,KAAK,CAACj+E,MAA5B;IACA8tF,WAAW,CAAC/X,KAAK,CAAC14D,IAAP,EAAay4D,KAAb,CAAX,CAFuB,CAES;;IAChCgY,WAAW,CAAC7P,KAAD,EAAQ,IAAR,CAAX,CAHuB,CAGG;;IAC1B6P,WAAW,CAAC/X,KAAK,CAACgY,SAAP,EAAkB,IAAlB,CAAX;EACH;;EACD,MAAMC,SAAS,GAAGC,yBAAyB,CAACnY,KAAD,EAAQmI,KAAR,CAA3C;EACA,MAAMiC,aAAa,GAAGpK,KAAK,CAACoK,aAA5B,CAbkD,CAclD;EACA;;EACA,IAAIsM,iBAAiB,CAACwB,SAAD,CAArB,EAAkC;IAC9B,MAAME,WAAW,GAAGxB,sBAAsB,CAACsB,SAAD,CAA1C;IACA,MAAMtH,WAAW,GAAGmG,qBAAqB,CAACmB,SAAD,EAAY/P,KAAZ,CAAzC;IACA,MAAMkQ,UAAU,GAAGzH,WAAW,CAACzK,KAAD,CAAX,CAAmB5+D,IAAtC,CAH8B,CAI9B;IACA;;IACA,KAAK,IAAI7X,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG;IAAE;IAAtB,EAA2DA,CAAC,EAA5D,EAAgE;MAC5Dy4E,KAAK,CAACiC,aAAa,GAAG16E,CAAjB,CAAL,GAA2BkhF,WAAW,CAACwH,WAAW,GAAG1oF,CAAf,CAAX,GAA+B2oF,UAAU,CAACD,WAAW,GAAG1oF,CAAf,CAApE;IACH;EACJ;;EACDy4E,KAAK,CAACiC,aAAa,GAAG;EAAE;EAAnB,CAAL,GAA2D8N,SAA3D;EACA,OAAO9N,aAAP;AACH;;AACD,SAAS4N,WAAT,CAAqBn9E,GAArB,EAA0By9E,MAA1B,EAAkC;EAC9Bz9E,GAAG,CAACtQ,IAAJ,CAAS,CAAT,EAAY,CAAZ,EAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,EAAiC+tF,MAAjC;AACH;;AACD,SAASP,gBAAT,CAA0B/X,KAA1B,EAAiCmI,KAAjC,EAAwC;EACpC,IAAInI,KAAK,CAACoK,aAAN,KAAwB,CAAC,CAAzB,IACA;EACA;EACCpK,KAAK,CAACrzE,MAAN,IAAgBqzE,KAAK,CAACrzE,MAAN,CAAay9E,aAAb,KAA+BpK,KAAK,CAACoK,aAHtD,IAIA;EACA;EACAjC,KAAK,CAACnI,KAAK,CAACoK,aAAN,GAAsB;EAAE;EAAzB,CAAL,KAAmE,IANvE,EAM6E;IACzE,OAAO,CAAC,CAAR;EACH,CARD,MASK;IACDloE,SAAS,IAAI86D,kBAAkB,CAACmL,KAAD,EAAQnI,KAAK,CAACoK,aAAd,CAA/B;IACA,OAAOpK,KAAK,CAACoK,aAAb;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+N,yBAAT,CAAmCnY,KAAnC,EAA0CmI,KAA1C,EAAiD;EAC7C,IAAInI,KAAK,CAACrzE,MAAN,IAAgBqzE,KAAK,CAACrzE,MAAN,CAAay9E,aAAb,KAA+B,CAAC,CAApD,EAAuD;IACnD;IACA;IACA,OAAOpK,KAAK,CAACrzE,MAAN,CAAay9E,aAApB,CAHmD,CAGhB;EACtC,CAL4C,CAM7C;EACA;EACA;;;EACA,IAAImO,qBAAqB,GAAG,CAA5B;EACA,IAAI5H,WAAW,GAAG,IAAlB;EACA,IAAI6H,WAAW,GAAGrQ,KAAlB,CAX6C,CAY7C;EACA;EACA;;EACA,OAAOqQ,WAAW,KAAK,IAAvB,EAA6B;IACzB7H,WAAW,GAAG8H,iBAAiB,CAACD,WAAD,CAA/B;;IACA,IAAI7H,WAAW,KAAK,IAApB,EAA0B;MACtB;MACA,OAAO8D,kBAAP;IACH;;IACDvyE,SAAS,IAAIyuE,WAAb,IAA4BzI,mBAAmB,CAACyI,WAAD,EAAc6H,WAAW,CAACvR,gBAAD,CAAzB,CAA/C,CANyB,CAOzB;;IACAsR,qBAAqB;IACrBC,WAAW,GAAGA,WAAW,CAACvR,gBAAD,CAAzB;;IACA,IAAI0J,WAAW,CAACvG,aAAZ,KAA8B,CAAC,CAAnC,EAAsC;MAClC;MACA,OAAQuG,WAAW,CAACvG,aAAZ,GACHmO,qBAAqB,IAAI;MAAG;MADjC;IAEH;EACJ;;EACD,OAAO9D,kBAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiE,kBAAT,CAA4BtO,aAA5B,EAA2CnK,KAA3C,EAAkD1pD,KAAlD,EAAyD;EACrDmhE,QAAQ,CAACtN,aAAD,EAAgBnK,KAAhB,EAAuB1pD,KAAvB,CAAR;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoiE,mBAAT,CAA6B3Y,KAA7B,EAAoC4Y,gBAApC,EAAsD;EAClD12E,SAAS,IAAIqzE,eAAe,CAACvV,KAAD,EAAQ;EAAG;EAAH,EAAkC;EAAE;EAA5C,CAA5B;EACA99D,SAAS,IAAI06D,aAAa,CAACoD,KAAD,EAAQ,iBAAR,CAA1B;;EACA,IAAI4Y,gBAAgB,KAAK,OAAzB,EAAkC;IAC9B,OAAO5Y,KAAK,CAAC6Y,OAAb;EACH;;EACD,IAAID,gBAAgB,KAAK,OAAzB,EAAkC;IAC9B,OAAO5Y,KAAK,CAACziE,MAAb;EACH;;EACD,MAAMq4E,KAAK,GAAG5V,KAAK,CAAC4V,KAApB;;EACA,IAAIA,KAAJ,EAAW;IACP,MAAMkD,WAAW,GAAGlD,KAAK,CAAC1rF,MAA1B;IACA,IAAIwF,CAAC,GAAG,CAAR;;IACA,OAAOA,CAAC,GAAGopF,WAAX,EAAwB;MACpB,MAAM7yF,KAAK,GAAG2vF,KAAK,CAAClmF,CAAD,CAAnB,CADoB,CAEpB;;MACA,IAAIumF,yBAAyB,CAAChwF,KAAD,CAA7B,EACI,MAJgB,CAKpB;;MACA,IAAIA,KAAK,KAAK;MAAE;MAAhB,EAAoD;QAChD;QACA;QACA;QACA;QACAyJ,CAAC,GAAGA,CAAC,GAAG,CAAR;MACH,CAND,MAOK,IAAI,OAAOzJ,KAAP,KAAiB,QAArB,EAA+B;QAChC;QACAyJ,CAAC;;QACD,OAAOA,CAAC,GAAGopF,WAAJ,IAAmB,OAAOlD,KAAK,CAAClmF,CAAD,CAAZ,KAAoB,QAA9C,EAAwD;UACpDA,CAAC;QACJ;MACJ,CANI,MAOA,IAAIzJ,KAAK,KAAK2yF,gBAAd,EAAgC;QACjC,OAAOhD,KAAK,CAAClmF,CAAC,GAAG,CAAL,CAAZ;MACH,CAFI,MAGA;QACDA,CAAC,GAAGA,CAAC,GAAG,CAAR;MACH;IACJ;EACJ;;EACD,OAAO,IAAP;AACH;;AACD,SAASqpF,oBAAT,CAA8Bpa,aAA9B,EAA6CpoD,KAA7C,EAAoD0kC,KAApD,EAA2D;EACvD,IAAKA,KAAK,GAAGmjB,WAAW,CAAC3nC,QAArB,IAAkCkoC,aAAa,KAAK93E,SAAxD,EAAmE;IAC/D,OAAO83E,aAAP;EACH,CAFD,MAGK;IACDpD,0BAA0B,CAAChlD,KAAD,EAAQ,cAAR,CAA1B;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyiE,8BAAT,CAAwC7Q,KAAxC,EAA+C5xD,KAA/C,EAAsD0kC,KAAtD,EAA6D0jB,aAA7D,EAA4E;EACxE,IAAK1jB,KAAK,GAAGmjB,WAAW,CAAC3nC,QAArB,IAAkCkoC,aAAa,KAAK93E,SAAxD,EAAmE;IAC/D;IACA83E,aAAa,GAAG,IAAhB;EACH;;EACD,IAAI,CAAC1jB,KAAK,IAAImjB,WAAW,CAAC6a,IAAZ,GAAmB7a,WAAW,CAAC7mC,IAAnC,CAAN,MAAoD,CAAxD,EAA2D;IACvD,MAAM2hD,cAAc,GAAG/Q,KAAK,CAACxB,UAAD,CAA5B,CADuD,CAEvD;IACA;IACA;;IACA,MAAMwS,4BAA4B,GAAG5a,uBAAuB,CAAC13E,SAAD,CAA5D;;IACA,IAAI;MACA,IAAIqyF,cAAJ,EAAoB;QAChB,OAAOA,cAAc,CAAC7yE,GAAf,CAAmBkQ,KAAnB,EAA0BooD,aAA1B,EAAyC1jB,KAAK,GAAGmjB,WAAW,CAAC3nC,QAA7D,CAAP;MACH,CAFD,MAGK;QACD,OAAOioC,kBAAkB,CAACnoD,KAAD,EAAQooD,aAAR,EAAuB1jB,KAAK,GAAGmjB,WAAW,CAAC3nC,QAA3C,CAAzB;MACH;IACJ,CAPD,SAQQ;MACJ8nC,uBAAuB,CAAC4a,4BAAD,CAAvB;IACH;EACJ;;EACD,OAAOJ,oBAAoB,CAACpa,aAAD,EAAgBpoD,KAAhB,EAAuB0kC,KAAvB,CAA3B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm+B,qBAAT,CAA+BpZ,KAA/B,EAAsCmI,KAAtC,EAA6C5xD,KAA7C,EAAoD0kC,KAAK,GAAGmjB,WAAW,CAACe,OAAxE,EAAiFR,aAAjF,EAAgG;EAC5F,IAAIqB,KAAK,KAAK,IAAd,EAAoB;IAChB;IACA;IACA,IAAImI,KAAK,CAAC/B,KAAD,CAAL,GAAe;IAAK;IAAxB,EAAkE;MAC9D,MAAMiT,qBAAqB,GAAGC,gCAAgC,CAACtZ,KAAD,EAAQmI,KAAR,EAAe5xD,KAAf,EAAsB0kC,KAAtB,EAA6Bw8B,SAA7B,CAA9D;;MACA,IAAI4B,qBAAqB,KAAK5B,SAA9B,EAAyC;QACrC,OAAO4B,qBAAP;MACH;IACJ,CARe,CAShB;;;IACA,MAAMpzF,KAAK,GAAGszF,4BAA4B,CAACvZ,KAAD,EAAQmI,KAAR,EAAe5xD,KAAf,EAAsB0kC,KAAtB,EAA6Bw8B,SAA7B,CAA1C;;IACA,IAAIxxF,KAAK,KAAKwxF,SAAd,EAAyB;MACrB,OAAOxxF,KAAP;IACH;EACJ,CAf2F,CAgB5F;;;EACA,OAAO+yF,8BAA8B,CAAC7Q,KAAD,EAAQ5xD,KAAR,EAAe0kC,KAAf,EAAsB0jB,aAAtB,CAArC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4a,4BAAT,CAAsCvZ,KAAtC,EAA6CmI,KAA7C,EAAoD5xD,KAApD,EAA2D0kC,KAA3D,EAAkE0jB,aAAlE,EAAiF;EAC7E,MAAMgZ,SAAS,GAAG6B,qBAAqB,CAACjjE,KAAD,CAAvC,CAD6E,CAE7E;EACA;;EACA,IAAI,OAAOohE,SAAP,KAAqB,UAAzB,EAAqC;IACjC,IAAI,CAAClH,OAAO,CAACtI,KAAD,EAAQnI,KAAR,EAAe/kB,KAAf,CAAZ,EAAmC;MAC/B;MACA;MACA,OAAQA,KAAK,GAAGmjB,WAAW,CAAC7mC,IAArB,GACHwhD,oBAAoB,CAACpa,aAAD,EAAgBpoD,KAAhB,EAAuB0kC,KAAvB,CADjB,GAEH+9B,8BAA8B,CAAC7Q,KAAD,EAAQ5xD,KAAR,EAAe0kC,KAAf,EAAsB0jB,aAAtB,CAFlC;IAGH;;IACD,IAAI;MACA,MAAM14E,KAAK,GAAG0xF,SAAS,CAAC18B,KAAD,CAAvB;;MACA,IAAIh1D,KAAK,IAAI,IAAT,IAAiB,EAAEg1D,KAAK,GAAGmjB,WAAW,CAAC3nC,QAAtB,CAArB,EAAsD;QAClD8kC,0BAA0B,CAAChlD,KAAD,CAA1B;MACH,CAFD,MAGK;QACD,OAAOtwB,KAAP;MACH;IACJ,CARD,SASQ;MACJwrF,OAAO;IACV;EACJ,CApBD,MAqBK,IAAI,OAAOkG,SAAP,KAAqB,QAAzB,EAAmC;IACpC;IACA;IACA;IACA,IAAI8B,aAAa,GAAG,IAApB;IACA,IAAIrP,aAAa,GAAG2N,gBAAgB,CAAC/X,KAAD,EAAQmI,KAAR,CAApC;IACA,IAAIwO,cAAc,GAAGlC,kBAArB;IACA,IAAIiF,gBAAgB,GAAGz+B,KAAK,GAAGmjB,WAAW,CAAC7mC,IAApB,GAA2B4wC,KAAK,CAACjB,0BAAD,CAAL,CAAkCV,MAAlC,CAA3B,GAAuE,IAA9F,CAPoC,CAQpC;IACA;;IACA,IAAI4D,aAAa,KAAK,CAAC,CAAnB,IAAwBnvB,KAAK,GAAGmjB,WAAW,CAACsS,QAAhD,EAA0D;MACtDiG,cAAc,GAAGvM,aAAa,KAAK,CAAC,CAAnB,GAAuB+N,yBAAyB,CAACnY,KAAD,EAAQmI,KAAR,CAAhD,GACbA,KAAK,CAACiC,aAAa,GAAG;MAAE;MAAnB,CADT;;MAEA,IAAIuM,cAAc,KAAKlC,kBAAnB,IAAyC,CAACkF,kBAAkB,CAAC1+B,KAAD,EAAQ,KAAR,CAAhE,EAAgF;QAC5EmvB,aAAa,GAAG,CAAC,CAAjB;MACH,CAFD,MAGK;QACDqP,aAAa,GAAGtR,KAAK,CAAChC,KAAD,CAArB;QACAiE,aAAa,GAAGwM,sBAAsB,CAACD,cAAD,CAAtC;QACAxO,KAAK,GAAG4O,qBAAqB,CAACJ,cAAD,EAAiBxO,KAAjB,CAA7B;MACH;IACJ,CArBmC,CAsBpC;IACA;;;IACA,OAAOiC,aAAa,KAAK,CAAC,CAA1B,EAA6B;MACzBloE,SAAS,IAAIioE,kBAAkB,CAAChC,KAAD,EAAQiC,aAAR,CAA/B,CADyB,CAEzB;;MACA,MAAMnK,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB;MACAjkE,SAAS,IACLgmE,mBAAmB,CAACjI,KAAK,CAAC14D,IAAN,CAAW6iE,aAAa,GAAG;MAAE;MAA7B,CAAD,EAA+DjC,KAA/D,CADvB;;MAEA,IAAIyR,aAAa,CAACjC,SAAD,EAAYvN,aAAZ,EAA2BnK,KAAK,CAAC14D,IAAjC,CAAjB,EAAyD;QACrD;QACA;QACA;QACA,MAAM/L,QAAQ,GAAGq+E,sBAAsB,CAACzP,aAAD,EAAgBjC,KAAhB,EAAuB5xD,KAAvB,EAA8BkjE,aAA9B,EAA6Cx+B,KAA7C,EAAoDy+B,gBAApD,CAAvC;;QACA,IAAIl+E,QAAQ,KAAKi8E,SAAjB,EAA4B;UACxB,OAAOj8E,QAAP;QACH;MACJ;;MACDm7E,cAAc,GAAGxO,KAAK,CAACiC,aAAa,GAAG;MAAE;MAAnB,CAAtB;;MACA,IAAIuM,cAAc,KAAKlC,kBAAnB,IACAkF,kBAAkB,CAAC1+B,KAAD,EAAQktB,KAAK,CAAChC,KAAD,CAAL,CAAa5+D,IAAb,CAAkB6iE,aAAa,GAAG;MAAE;MAApC,MAAwEsP,gBAAhF,CADlB,IAEAE,aAAa,CAACjC,SAAD,EAAYvN,aAAZ,EAA2BjC,KAA3B,CAFjB,EAEoD;QAChD;QACA;QACAsR,aAAa,GAAGxZ,KAAhB;QACAmK,aAAa,GAAGwM,sBAAsB,CAACD,cAAD,CAAtC;QACAxO,KAAK,GAAG4O,qBAAqB,CAACJ,cAAD,EAAiBxO,KAAjB,CAA7B;MACH,CARD,MASK;QACD;QACA;QACA;QACAiC,aAAa,GAAG,CAAC,CAAjB;MACH;IACJ;EACJ;;EACD,OAAOzL,aAAP;AACH;;AACD,SAASkb,sBAAT,CAAgCzP,aAAhC,EAA+CjC,KAA/C,EAAsD5xD,KAAtD,EAA6DkjE,aAA7D,EAA4Ex+B,KAA5E,EAAmFy+B,gBAAnF,EAAqG;EACjG,MAAMI,YAAY,GAAG3R,KAAK,CAAChC,KAAD,CAA1B;EACA,MAAMnG,KAAK,GAAG8Z,YAAY,CAACvyE,IAAb,CAAkB6iE,aAAa,GAAG;EAAE;EAApC,CAAd,CAFiG,CAGjG;EACA;;EACA,MAAM2P,sBAAsB,GAAGN,aAAa,IAAI,IAAjB,GAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACC3R,eAAe,CAAC9H,KAAD,CAAf,IAA0BmX,oBARA,GAS3B;EACA;EACA;EACA;EACA;EACA;EACCsC,aAAa,IAAIK,YAAjB,IAAkC,CAAC9Z,KAAK,CAAC5iE,IAAN,GAAa;EAAE;EAAhB,MAA8C,CAfrF,CALiG,CAqBjG;EACA;;EACA,MAAM48E,iBAAiB,GAAI/+B,KAAK,GAAGmjB,WAAW,CAAC7mC,IAArB,IAA8BmiD,gBAAgB,KAAK1Z,KAA7E;EACA,MAAMia,aAAa,GAAGC,yBAAyB,CAACla,KAAD,EAAQ8Z,YAAR,EAAsBvjE,KAAtB,EAA6BwjE,sBAA7B,EAAqDC,iBAArD,CAA/C;;EACA,IAAIC,aAAa,KAAK,IAAtB,EAA4B;IACxB,OAAOE,iBAAiB,CAAChS,KAAD,EAAQ2R,YAAR,EAAsBG,aAAtB,EAAqCja,KAArC,CAAxB;EACH,CAFD,MAGK;IACD,OAAOyX,SAAP;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyC,yBAAT,CAAmCla,KAAnC,EAA0CC,KAA1C,EAAiD1pD,KAAjD,EAAwDwjE,sBAAxD,EAAgFC,iBAAhF,EAAmG;EAC/F,MAAMI,mBAAmB,GAAGpa,KAAK,CAACqa,eAAlC;EACA,MAAMC,YAAY,GAAGra,KAAK,CAAC14D,IAA3B;EACA,MAAMgzE,gBAAgB,GAAGH,mBAAmB,GAAG;EAAQ;EAAvD;EACA,MAAMI,eAAe,GAAGxa,KAAK,CAAC+S,cAA9B;EACA,MAAMC,YAAY,GAAGhT,KAAK,CAACgT,YAA3B;EACA,MAAMyH,qBAAqB,GAAGL,mBAAmB,IAAI;EAAG;EAAxD;EACA,MAAMM,aAAa,GAAGX,sBAAsB,GAAGQ,gBAAH,GAAsBA,gBAAgB,GAAGE,qBAArF,CAP+F,CAQ/F;;EACA,MAAME,QAAQ,GAAGX,iBAAiB,GAAGO,gBAAgB,GAAGE,qBAAtB,GAA8CzH,YAAhF;;EACA,KAAK,IAAItjF,CAAC,GAAGgrF,aAAb,EAA4BhrF,CAAC,GAAGirF,QAAhC,EAA0CjrF,CAAC,EAA3C,EAA+C;IAC3C,MAAMkrF,kBAAkB,GAAGN,YAAY,CAAC5qF,CAAD,CAAvC;;IACA,IAAIA,CAAC,GAAG8qF,eAAJ,IAAuBjkE,KAAK,KAAKqkE,kBAAjC,IACAlrF,CAAC,IAAI8qF,eAAL,IAAwBI,kBAAkB,CAACx9E,IAAnB,KAA4BmZ,KADxD,EAC+D;MAC3D,OAAO7mB,CAAP;IACH;EACJ;;EACD,IAAIsqF,iBAAJ,EAAuB;IACnB,MAAMa,MAAM,GAAGP,YAAY,CAACE,eAAD,CAA3B;;IACA,IAAIK,MAAM,IAAI7S,cAAc,CAAC6S,MAAD,CAAxB,IAAoCA,MAAM,CAACz9E,IAAP,KAAgBmZ,KAAxD,EAA+D;MAC3D,OAAOikE,eAAP;IACH;EACJ;;EACD,OAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASL,iBAAT,CAA2BhS,KAA3B,EAAkClI,KAAlC,EAAyC1rE,KAAzC,EAAgDyrE,KAAhD,EAAuD;EACnD,IAAI/5E,KAAK,GAAGkiF,KAAK,CAAC5zE,KAAD,CAAjB;EACA,MAAM67E,KAAK,GAAGnQ,KAAK,CAAC14D,IAApB;;EACA,IAAIytE,SAAS,CAAC/uF,KAAD,CAAb,EAAsB;IAClB,MAAMy6D,OAAO,GAAGz6D,KAAhB;;IACA,IAAIy6D,OAAO,CAACm0B,SAAZ,EAAuB;MACnB9Z,0BAA0B,CAACD,iBAAiB,CAACsV,KAAK,CAAC77E,KAAD,CAAN,CAAlB,CAA1B;IACH;;IACD,MAAMumF,4BAA4B,GAAG1D,uBAAuB,CAAC12B,OAAO,CAACo0B,mBAAT,CAA5D;IACAp0B,OAAO,CAACm0B,SAAR,GAAoB,IAApB;IACA,MAAMsE,4BAA4B,GAAGz4B,OAAO,CAACq0B,UAAR,GAAqBxW,uBAAuB,CAAC7d,OAAO,CAACq0B,UAAT,CAA5C,GAAmE,IAAxG;IACA,MAAMgG,OAAO,GAAGtK,OAAO,CAACtI,KAAD,EAAQnI,KAAR,EAAe5B,WAAW,CAACe,OAA3B,CAAvB;IACAj9D,SAAS,IACLk6D,WAAW,CAAC2e,OAAD,EAAU,IAAV,EAAgB,6EAAhB,CADf;;IAEA,IAAI;MACA90F,KAAK,GAAGkiF,KAAK,CAAC5zE,KAAD,CAAL,GAAemsD,OAAO,CAACA,OAAR,CAAgB75D,SAAhB,EAA2BupF,KAA3B,EAAkCjI,KAAlC,EAAyCnI,KAAzC,CAAvB,CADA,CAEA;MACA;MACA;MACA;MACA;MACA;;MACA,IAAIC,KAAK,CAACF,eAAN,IAAyBxrE,KAAK,IAAIyrE,KAAK,CAAC+S,cAA5C,EAA4D;QACxD7wE,SAAS,IAAIqnE,kBAAkB,CAAC6G,KAAK,CAAC77E,KAAD,CAAN,CAA/B;QACAi+E,qBAAqB,CAACj+E,KAAD,EAAQ67E,KAAK,CAAC77E,KAAD,CAAb,EAAsB0rE,KAAtB,CAArB;MACH;IACJ,CAZD,SAaQ;MACJkZ,4BAA4B,KAAK,IAAjC,IACI5a,uBAAuB,CAAC4a,4BAAD,CAD3B;MAEA/B,uBAAuB,CAAC0D,4BAAD,CAAvB;MACAp6B,OAAO,CAACm0B,SAAR,GAAoB,KAApB;MACApD,OAAO;IACV;EACJ;;EACD,OAAOxrF,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuzF,qBAAT,CAA+BjjE,KAA/B,EAAsC;EAClCrU,SAAS,IAAI06D,aAAa,CAACrmD,KAAD,EAAQ,uBAAR,CAA1B;;EACA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC3B,OAAOA,KAAK,CAAC4/D,UAAN,CAAiB,CAAjB,KAAuB,CAA9B;EACH;;EACD,MAAM6E,OAAO,GACb;EACAzkE,KAAK,CAAC1K,cAAN,CAAqBm2D,aAArB,IAAsCzrD,KAAK,CAACyrD,aAAD,CAA3C,GAA6Dn7E,SAF7D,CALkC,CAQlC;;EACA,IAAI,OAAOm0F,OAAP,KAAmB,QAAvB,EAAiC;IAC7B,IAAIA,OAAO,IAAI,CAAf,EAAkB;MACd,OAAOA,OAAO,GAAG1D,UAAjB;IACH,CAFD,MAGK;MACDp1E,SAAS,IACLk6D,WAAW,CAAC4e,OAAD,EAAU,CAAC;MAAE;MAAb,EAA6C,sCAA7C,CADf;MAEA,OAAOC,kBAAP;IACH;EACJ,CATD,MAUK;IACD,OAAOD,OAAP;EACH;AACJ;;AACD,SAASpB,aAAT,CAAuBjC,SAAvB,EAAkCvN,aAAlC,EAAiD8Q,YAAjD,EAA+D;EAC3D;EACA;EACA;EACA,MAAMtD,IAAI,GAAG,KAAKD,SAAlB,CAJ2D,CAK3D;EACA;EACA;;EACA,MAAM1xF,KAAK,GAAGi1F,YAAY,CAAC9Q,aAAa,IAAIuN,SAAS,IAAIJ,iBAAjB,CAAd,CAA1B,CAR2D,CAS3D;EACA;;EACA,OAAO,CAAC,EAAEtxF,KAAK,GAAG2xF,IAAV,CAAR;AACH;AACD;;;AACA,SAAS+B,kBAAT,CAA4B1+B,KAA5B,EAAmCkgC,gBAAnC,EAAqD;EACjD,OAAO,EAAElgC,KAAK,GAAGmjB,WAAW,CAAC6a,IAAtB,KAA+B,EAAEh+B,KAAK,GAAGmjB,WAAW,CAAC7mC,IAApB,IAA4B4jD,gBAA9B,CAAtC;AACH;;AACD,MAAMC,YAAN,CAAmB;EACfr1F,WAAW,CAACs1F,MAAD,EAASC,MAAT,EAAiB;IACxB,KAAKD,MAAL,GAAcA,MAAd;IACA,KAAKC,MAAL,GAAcA,MAAd;EACH;;EACDj1E,GAAG,CAACkQ,KAAD,EAAQooD,aAAR,EAAuB1jB,KAAvB,EAA8B;IAC7B,OAAOm+B,qBAAqB,CAAC,KAAKiC,MAAN,EAAc,KAAKC,MAAnB,EAA2B/kE,KAA3B,EAAkC0kC,KAAlC,EAAyC0jB,aAAzC,CAA5B;EACH;;AAPc;AASnB;;;AACA,SAASsc,kBAAT,GAA8B;EAC1B,OAAO,IAAIG,YAAJ,CAAiB3M,eAAe,EAAhC,EAAoCN,QAAQ,EAA5C,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAASoN,qBAAT,CAA+Bn+E,IAA/B,EAAqC;EACjC,OAAO0hE,aAAa,CAAC,MAAM;IACvB,MAAM0c,cAAc,GAAGp+E,IAAI,CAAC9R,SAAL,CAAevF,WAAtC;IACA,MAAM01F,UAAU,GAAGD,cAAc,CAACzZ,cAAD,CAAd,IAAkC2Z,YAAY,CAACF,cAAD,CAAjE;IACA,MAAMG,eAAe,GAAG5vF,MAAM,CAACT,SAA/B;IACA,IAAIqB,MAAM,GAAGZ,MAAM,CAACgP,cAAP,CAAsBqC,IAAI,CAAC9R,SAA3B,EAAsCvF,WAAnD,CAJuB,CAKvB;;IACA,OAAO4G,MAAM,IAAIA,MAAM,KAAKgvF,eAA5B,EAA6C;MACzC,MAAMj7B,OAAO,GAAG/zD,MAAM,CAACo1E,cAAD,CAAN,IAA0B2Z,YAAY,CAAC/uF,MAAD,CAAtD,CADyC,CAEzC;MACA;MACA;MACA;MACA;;MACA,IAAI+zD,OAAO,IAAIA,OAAO,KAAK+6B,UAA3B,EAAuC;QACnC,OAAO/6B,OAAP;MACH;;MACD/zD,MAAM,GAAGZ,MAAM,CAACgP,cAAP,CAAsBpO,MAAtB,CAAT;IACH,CAjBsB,CAkBvB;IACA;IACA;IACA;;;IACA,OAAO2jE,CAAC,IAAI,IAAIA,CAAJ,EAAZ;EACH,CAvBmB,CAApB;AAwBH;;AACD,SAASorB,YAAT,CAAsBt+E,IAAtB,EAA4B;EACxB,IAAIm9D,YAAY,CAACn9D,IAAD,CAAhB,EAAwB;IACpB,OAAO,MAAM;MACT,MAAMsjD,OAAO,GAAGg7B,YAAY,CAACphB,iBAAiB,CAACl9D,IAAD,CAAlB,CAA5B;MACA,OAAOsjD,OAAO,IAAIA,OAAO,EAAzB;IACH,CAHD;EAIH;;EACD,OAAO2pB,aAAa,CAACjtE,IAAD,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk8E,gCAAT,CAA0CtZ,KAA1C,EAAiDmI,KAAjD,EAAwD5xD,KAAxD,EAA+D0kC,KAA/D,EAAsE0jB,aAAtE,EAAqF;EACjF,IAAI+P,YAAY,GAAG1O,KAAnB;EACA,IAAI4b,YAAY,GAAGzT,KAAnB,CAFiF,CAGjF;EACA;EACA;EACA;EACA;EACA;;EACA,OAAOuG,YAAY,KAAK,IAAjB,IAAyBkN,YAAY,KAAK,IAA1C,IACFA,YAAY,CAACxV,KAAD,CAAZ,GAAsB;EAAK;EADzB,GAEH,EAAEwV,YAAY,CAACxV,KAAD,CAAZ,GAAsB;EAAI;EAA5B,CAFJ,EAE0D;IACtDlkE,SAAS,IAAIgmE,mBAAmB,CAACwG,YAAD,EAAekN,YAAf,CAAhC,CADsD,CAEtD;IACA;IACA;;IACA,MAAMC,iBAAiB,GAAGtC,4BAA4B,CAAC7K,YAAD,EAAekN,YAAf,EAA6BrlE,KAA7B,EAAoC0kC,KAAK,GAAGmjB,WAAW,CAAC6a,IAAxD,EAA8DxB,SAA9D,CAAtD;;IACA,IAAIoE,iBAAiB,KAAKpE,SAA1B,EAAqC;MACjC,OAAOoE,iBAAP;IACH,CARqD,CAStD;;;IACA,IAAIlL,WAAW,GAAGjC,YAAY,CAAC/hF,MAA/B,CAVsD,CAWtD;IACA;;IACA,IAAI,CAACgkF,WAAL,EAAkB;MACd;MACA,MAAMmL,oBAAoB,GAAGF,YAAY,CAACrU,sBAAD,CAAzC;;MACA,IAAIuU,oBAAJ,EAA0B;QACtB,MAAMC,yBAAyB,GAAGD,oBAAoB,CAACz1E,GAArB,CAAyBkQ,KAAzB,EAAgCkhE,SAAhC,EAA2Cx8B,KAA3C,CAAlC;;QACA,IAAI8gC,yBAAyB,KAAKtE,SAAlC,EAA6C;UACzC,OAAOsE,yBAAP;QACH;MACJ,CARa,CASd;;;MACApL,WAAW,GAAG8H,iBAAiB,CAACmD,YAAD,CAA/B;MACAA,YAAY,GAAGA,YAAY,CAAC3U,gBAAD,CAA3B;IACH;;IACDyH,YAAY,GAAGiC,WAAf;EACH;;EACD,OAAOhS,aAAP;AACH;AACD;;;AACA,SAAS8Z,iBAAT,CAA2BtQ,KAA3B,EAAkC;EAC9B,MAAMlI,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB;EACA,MAAM6V,SAAS,GAAG/b,KAAK,CAAC7iE,IAAxB,CAF8B,CAG9B;;EACA,IAAI4+E,SAAS,KAAK;EAAE;EAApB,EAA8C;IAC1C95E,SAAS,IAAI06D,aAAa,CAACqD,KAAK,CAACuQ,SAAP,EAAkB,kDAAlB,CAA1B;IACA,OAAOvQ,KAAK,CAACuQ,SAAb;EACH,CAHD,MAIK,IAAIwL,SAAS,KAAK;EAAE;EAApB,EAA+C;IAChD;IACA;IACA,OAAO7T,KAAK,CAAC3B,MAAD,CAAZ;EACH;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyV,iBAAT,CAA2BrD,gBAA3B,EAA6C;EACzC,OAAOD,mBAAmB,CAAClK,eAAe,EAAhB,EAAoBmK,gBAApB,CAA1B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMsD,WAAW,GAAG,iBAApB;AACA,MAAMC,UAAU,GAAG,gBAAnB;AACA,MAAMC,aAAa,GAAG,oBAAtB;AACA;AACA;AACA;;AACA,SAASC,aAAT,CAAuB/hF,IAAvB,EAA6BqW,KAA7B,EAAoC2rE,WAApC,EAAiDC,oBAAjD,EAAuEC,MAAvE,EAA+E;EAC3E,OAAO1d,aAAa,CAAC,MAAM;IACvB,MAAM2d,QAAQ,GAAGC,gBAAgB,CAAC/rE,KAAD,CAAjC;;IACA,SAASgsE,gBAAT,CAA0B,GAAG7tF,IAA7B,EAAmC;MAC/B,IAAI,gBAAgB6tF,gBAApB,EAAsC;QAClCF,QAAQ,CAACr0F,IAAT,CAAc,IAAd,EAAoB,GAAG0G,IAAvB;QACA,OAAO,IAAP;MACH;;MACD,MAAM8tF,kBAAkB,GAAG,IAAID,gBAAJ,CAAqB,GAAG7tF,IAAxB,CAA3B;MACA,OAAO,SAAS+tF,aAAT,CAAuBC,GAAvB,EAA4B;QAC/B,IAAIN,MAAJ,EACIA,MAAM,CAACM,GAAD,EAAM,GAAGhuF,IAAT,CAAN,CAF2B,CAG/B;QACA;;QACA,MAAMiuF,WAAW,GAAGD,GAAG,CAACjxE,cAAJ,CAAmBqwE,WAAnB,IAChBY,GAAG,CAACZ,WAAD,CADa,GAEhBnwF,MAAM,CAACixF,cAAP,CAAsBF,GAAtB,EAA2BZ,WAA3B,EAAwC;UAAEj2F,KAAK,EAAE;QAAT,CAAxC,EAAuDi2F,WAAvD,CAFJ;QAGAa,WAAW,CAACxyF,IAAZ,CAAiBqyF,kBAAjB;QACA,IAAIL,oBAAJ,EACIA,oBAAoB,CAACO,GAAD,CAApB;QACJ,OAAOA,GAAP;MACH,CAZD;IAaH;;IACD,IAAIR,WAAJ,EAAiB;MACbK,gBAAgB,CAACrxF,SAAjB,GAA6BS,MAAM,CAAC5C,MAAP,CAAcmzF,WAAW,CAAChxF,SAA1B,CAA7B;IACH;;IACDqxF,gBAAgB,CAACrxF,SAAjB,CAA2B2xF,cAA3B,GAA4C3iF,IAA5C;IACAqiF,gBAAgB,CAACO,aAAjB,GAAiCP,gBAAjC;IACA,OAAOA,gBAAP;EACH,CA5BmB,CAApB;AA6BH;;AACD,SAASD,gBAAT,CAA0B/rE,KAA1B,EAAiC;EAC7B,OAAO,SAASwsE,IAAT,CAAc,GAAGruF,IAAjB,EAAuB;IAC1B,IAAI6hB,KAAJ,EAAW;MACP,MAAMthB,MAAM,GAAGshB,KAAK,CAAC,GAAG7hB,IAAJ,CAApB;;MACA,KAAK,MAAMsuF,QAAX,IAAuB/tF,MAAvB,EAA+B;QAC3B,KAAK+tF,QAAL,IAAiB/tF,MAAM,CAAC+tF,QAAD,CAAvB;MACH;IACJ;EACJ,CAPD;AAQH;;AACD,SAASC,kBAAT,CAA4B/iF,IAA5B,EAAkCqW,KAAlC,EAAyC2rE,WAAzC,EAAsD;EAClD,OAAOxd,aAAa,CAAC,MAAM;IACvB,MAAM2d,QAAQ,GAAGC,gBAAgB,CAAC/rE,KAAD,CAAjC;;IACA,SAAS2sE,qBAAT,CAA+B,GAAGxuF,IAAlC,EAAwC;MACpC,IAAI,gBAAgBwuF,qBAApB,EAA2C;QACvCb,QAAQ,CAACc,KAAT,CAAe,IAAf,EAAqBzuF,IAArB;QACA,OAAO,IAAP;MACH;;MACD,MAAM8tF,kBAAkB,GAAG,IAAIU,qBAAJ,CAA0B,GAAGxuF,IAA7B,CAA3B;MACA0uF,cAAc,CAACC,UAAf,GAA4Bb,kBAA5B;MACA,OAAOY,cAAP;;MACA,SAASA,cAAT,CAAwBV,GAAxB,EAA6BY,SAA7B,EAAwCnpF,KAAxC,EAA+C;QAC3C;QACA;QACA,MAAMopF,UAAU,GAAGb,GAAG,CAACjxE,cAAJ,CAAmBswE,UAAnB,IACfW,GAAG,CAACX,UAAD,CADY,GAEfpwF,MAAM,CAACixF,cAAP,CAAsBF,GAAtB,EAA2BX,UAA3B,EAAuC;UAAEl2F,KAAK,EAAE;QAAT,CAAvC,EAAsDk2F,UAAtD,CAFJ,CAH2C,CAM3C;QACA;;QACA,OAAOwB,UAAU,CAACzzF,MAAX,IAAqBqK,KAA5B,EAAmC;UAC/BopF,UAAU,CAACpzF,IAAX,CAAgB,IAAhB;QACH;;QACD,CAACozF,UAAU,CAACppF,KAAD,CAAV,GAAoBopF,UAAU,CAACppF,KAAD,CAAV,IAAqB,EAA1C,EAA8ChK,IAA9C,CAAmDqyF,kBAAnD;QACA,OAAOE,GAAP;MACH;IACJ;;IACD,IAAIR,WAAJ,EAAiB;MACbgB,qBAAqB,CAAChyF,SAAtB,GAAkCS,MAAM,CAAC5C,MAAP,CAAcmzF,WAAW,CAAChxF,SAA1B,CAAlC;IACH;;IACDgyF,qBAAqB,CAAChyF,SAAtB,CAAgC2xF,cAAhC,GAAiD3iF,IAAjD;IACAgjF,qBAAqB,CAACJ,aAAtB,GAAsCI,qBAAtC;IACA,OAAOA,qBAAP;EACH,CA/BmB,CAApB;AAgCH;;AACD,SAASM,iBAAT,CAA2BtjF,IAA3B,EAAiCqW,KAAjC,EAAwC2rE,WAAxC,EAAqDC,oBAArD,EAA2E;EACvE,OAAOzd,aAAa,CAAC,MAAM;IACvB,MAAM2d,QAAQ,GAAGC,gBAAgB,CAAC/rE,KAAD,CAAjC;;IACA,SAASktE,oBAAT,CAA8B,GAAG/uF,IAAjC,EAAuC;MACnC,IAAI,gBAAgB+uF,oBAApB,EAA0C;QACtCpB,QAAQ,CAACc,KAAT,CAAe,IAAf,EAAqBzuF,IAArB;QACA,OAAO,IAAP;MACH;;MACD,MAAMgvF,iBAAiB,GAAG,IAAID,oBAAJ,CAAyB,GAAG/uF,IAA5B,CAA1B;;MACA,SAASivF,aAAT,CAAuB3hE,MAAvB,EAA+B9hB,IAA/B,EAAqC;QACjC,MAAMvU,WAAW,GAAGq2B,MAAM,CAACr2B,WAA3B,CADiC,CAEjC;QACA;;QACA,MAAMi4F,IAAI,GAAGj4F,WAAW,CAAC8lB,cAAZ,CAA2BuwE,aAA3B,IACTr2F,WAAW,CAACq2F,aAAD,CADF,GAETrwF,MAAM,CAACixF,cAAP,CAAsBj3F,WAAtB,EAAmCq2F,aAAnC,EAAkD;UAAEn2F,KAAK,EAAE;QAAT,CAAlD,EAAiEm2F,aAAjE,CAFJ;QAGA4B,IAAI,CAAC1jF,IAAD,CAAJ,GAAa0jF,IAAI,CAACnyE,cAAL,CAAoBvR,IAApB,KAA6B0jF,IAAI,CAAC1jF,IAAD,CAAjC,IAA2C,EAAxD;QACA0jF,IAAI,CAAC1jF,IAAD,CAAJ,CAAWuwB,OAAX,CAAmBizD,iBAAnB;QACA,IAAIvB,oBAAJ,EACIA,oBAAoB,CAACngE,MAAD,EAAS9hB,IAAT,EAAe,GAAGxL,IAAlB,CAApB;MACP;;MACD,OAAOivF,aAAP;IACH;;IACD,IAAIzB,WAAJ,EAAiB;MACbuB,oBAAoB,CAACvyF,SAArB,GAAiCS,MAAM,CAAC5C,MAAP,CAAcmzF,WAAW,CAAChxF,SAA1B,CAAjC;IACH;;IACDuyF,oBAAoB,CAACvyF,SAArB,CAA+B2xF,cAA/B,GAAgD3iF,IAAhD;IACAujF,oBAAoB,CAACX,aAArB,GAAqCW,oBAArC;IACA,OAAOA,oBAAP;EACH,CA5BmB,CAApB;AA6BH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMrmD,SAAS,GAAG6lD,kBAAkB,CAAC,WAAD,EAAeY,aAAD,KAAoB;EAAEA,aAAF;EAAiBhc,iBAAiB,EAAE,MAAMga,iBAAiB,CAACgC,aAAD;AAA3D,CAApB,CAAd,CAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM5nD,cAAN,CAAqB;EACjB;AACJ;AACA;AACA;AACA;AACA;EACItwC,WAAW,CAACm4F,KAAD,EAAQ9mF,OAAR,EAAiB;IACxB,KAAK8mF,KAAL,GAAaA,KAAb;IACA;;IACA,KAAKjB,cAAL,GAAsB,gBAAtB;IACA,KAAKxyE,KAAL,GAAa5jB,SAAb;;IACA,IAAI,OAAOuQ,OAAP,IAAkB,QAAtB,EAAgC;MAC5B,CAAC,OAAO8K,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACIu6D,cAAc,CAACrlE,OAAD,EAAU,CAAV,EAAa,0CAAb,CADlB,CAD4B,CAG5B;MACA;;MACA,KAAK6qE,iBAAL,GAAyB7qE,OAAzB;IACH,CAND,MAOK,IAAIA,OAAO,KAAKvQ,SAAhB,EAA2B;MAC5B,KAAK4jB,KAAL,GAAautB,kBAAkB,CAAC;QAC5BzhB,KAAK,EAAE,IADqB;QAE5B0iB,UAAU,EAAE7hC,OAAO,CAAC6hC,UAAR,IAAsB,MAFN;QAG5BynB,OAAO,EAAEtpD,OAAO,CAACspD;MAHW,CAAD,CAA/B;IAKH;EACJ;EACD;AACJ;AACA;;;EACa,IAALx4C,KAAK,GAAG;IACR,OAAO,IAAP;EACH;;EACDxN,QAAQ,GAAG;IACP,OAAQ,kBAAiB,KAAKwjF,KAAM,EAApC;EACH;;AAnCgB;AAsCrB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,4BAA4B,GAAG,IAAI9nD,cAAJ,CAAmB,2BAAnB,CAArC,EACA;AACA;;AACA,MAAM+nD,mCAAmC,GAAG,IAA5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,KAAN,CAAY;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,eAAe,GAAGV,iBAAiB,CAAC,iBAAD,EAAoB,CAACjqF,QAAD,EAAW4T,IAAI,GAAG,EAAlB,KAA0Bxb,MAAM,CAAC+5D,MAAP,CAAc;EAAEnyD,QAAF;EAAYkB,KAAK,EAAE,KAAnB;EAA0B0pF,WAAW,EAAE,KAAvC;EAA8CC,WAAW,EAAE,KAA3D;EAAkEC,uBAAuB,EAAEL;AAA3F,CAAd,EAAgJ72E,IAAhJ,CAA9C,EAAsM82E,KAAtM,CAAzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMK,YAAY,GAAGd,iBAAiB,CAAC,cAAD,EAAiB,CAACjqF,QAAD,EAAW4T,IAAI,GAAG,EAAlB,KAA0Bxb,MAAM,CAAC+5D,MAAP,CAAc;EAAEnyD,QAAF;EAAYkB,KAAK,EAAE,IAAnB;EAAyB0pF,WAAW,EAAE,KAAtC;EAA6CC,WAAW,EAAE;AAA1D,CAAd,EAAgFj3E,IAAhF,CAA3C,EAAmI82E,KAAnI,CAAtC;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMM,YAAY,GAAGf,iBAAiB,CAAC,cAAD,EAAiB,CAACjqF,QAAD,EAAW4T,IAAI,GAAG,EAAlB,KAA0Bxb,MAAM,CAAC+5D,MAAP,CAAc;EAAEnyD,QAAF;EAAYkB,KAAK,EAAE,KAAnB;EAA0B0pF,WAAW,EAAE,IAAvC;EAA6CC,WAAW,EAAE,IAA1D;EAAgEC,uBAAuB,EAAEL;AAAzF,CAAd,EAA8I72E,IAA9I,CAA3C,EAAiM82E,KAAjM,CAAtC;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMO,SAAS,GAAGhB,iBAAiB,CAAC,WAAD,EAAc,CAACjqF,QAAD,EAAW4T,IAAX,KAAqBxb,MAAM,CAAC+5D,MAAP,CAAc;EAAEnyD,QAAF;EAAYkB,KAAK,EAAE,IAAnB;EAAyB0pF,WAAW,EAAE,IAAtC;EAA4CC,WAAW,EAAE;AAAzD,CAAd,EAA+Ej3E,IAA/E,CAAnC,EAA0H82E,KAA1H,CAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIQ,aAAJ;;AACA,CAAC,UAAUA,aAAV,EAAyB;EACtBA,aAAa,CAACA,aAAa,CAAC,WAAD,CAAb,GAA6B,CAA9B,CAAb,GAAgD,WAAhD;EACAA,aAAa,CAACA,aAAa,CAAC,WAAD,CAAb,GAA6B,CAA9B,CAAb,GAAgD,WAAhD;EACAA,aAAa,CAACA,aAAa,CAAC,YAAD,CAAb,GAA8B,CAA/B,CAAb,GAAiD,YAAjD;EACAA,aAAa,CAACA,aAAa,CAAC,MAAD,CAAb,GAAwB,CAAzB,CAAb,GAA2C,MAA3C;EACAA,aAAa,CAACA,aAAa,CAAC,UAAD,CAAb,GAA4B,CAA7B,CAAb,GAA+C,UAA/C;AACH,CAND,EAMGA,aAAa,KAAKA,aAAa,GAAG,EAArB,CANhB;;AAOA,IAAIC,wBAAJ;;AACA,CAAC,UAAUA,wBAAV,EAAoC;EACjCA,wBAAwB,CAACA,wBAAwB,CAAC,WAAD,CAAxB,GAAwC,CAAzC,CAAxB,GAAsE,WAAtE;EACAA,wBAAwB,CAACA,wBAAwB,CAAC,MAAD,CAAxB,GAAmC,CAApC,CAAxB,GAAiE,MAAjE;EACAA,wBAAwB,CAACA,wBAAwB,CAAC,UAAD,CAAxB,GAAuC,CAAxC,CAAxB,GAAqE,UAArE;AACH,CAJD,EAIGA,wBAAwB,KAAKA,wBAAwB,GAAG,EAAhC,CAJ3B;;AAKA,IAAIzf,iBAAJ;;AACA,CAAC,UAAUA,iBAAV,EAA6B;EAC1BA,iBAAiB,CAACA,iBAAiB,CAAC,UAAD,CAAjB,GAAgC,CAAjC,CAAjB,GAAuD,UAAvD,CAD0B,CAE1B;;EACAA,iBAAiB,CAACA,iBAAiB,CAAC,MAAD,CAAjB,GAA4B,CAA7B,CAAjB,GAAmD,MAAnD;EACAA,iBAAiB,CAACA,iBAAiB,CAAC,WAAD,CAAjB,GAAiC,CAAlC,CAAjB,GAAwD,WAAxD;AACH,CALD,EAKGA,iBAAiB,KAAKA,iBAAiB,GAAG,EAAzB,CALpB;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0f,iBAAT,CAA2BvrB,OAA3B,EAAoC;EAChC,MAAMwrB,QAAQ,GAAG1f,OAAO,CAAC,IAAD,CAAxB;;EACA,IAAI0f,QAAQ,IAAIA,QAAQ,CAACC,eAAzB,EAA0C;IACtC,OAAOD,QAAQ,CAACC,eAAhB;EACH;;EACD,IAAI,OAAO/8E,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/C;IACA;IACAmO,OAAO,CAACtpB,KAAR,CAAe,8BAA6BysE,OAAO,CAACvsE,IAAK,EAAzD,EAA4DusE,OAAO,CAACp2D,IAApE;IACA,IAAI7C,OAAO,GAAI,OAAMi5D,OAAO,CAACvsE,IAAK,KAAIusE,OAAO,CACxCp2D,IADiC,CAC5B9C,IAAK,8FADf;;IAEA,IAAIk5D,OAAO,CAAC0rB,KAAR,KAAkB;IAAE;IAAxB,EAAmE;MAC/D3kF,OAAO,IAAK,OAAMi5D,OAAO,CAACvsE,IAAK,2DAA/B;MACAsT,OAAO,IACF,4GADL;MAEAA,OAAO,IAAI,IAAX;MACAA,OAAO,IACF,4FADL;IAEH,CAPD,MAQK;MACDA,OAAO,IACF,6FADL;IAEH;;IACDA,OAAO,IACF,8IADL;IAEAA,OAAO,IACF,2FADL;IAEA,MAAM,IAAInB,KAAJ,CAAUmB,OAAV,CAAN;EACH,CAvBD,MAwBK;IACD,MAAM,IAAInB,KAAJ,CAAU,0BAAV,CAAN;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+lF,IAAI,GAAG9zF,QAAb;;AACA,SAAS+zF,MAAT,CAAgBpqF,CAAhB,EAAmB;EACf,OAAO,OAAOA,CAAP,KAAa,UAApB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqqF,aAAT,CAAuBC,KAAvB,EAA8BzkF,GAA9B,EAAmC;EAC/B,KAAK,IAAInL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4vF,KAAK,CAACp1F,MAA1B,EAAkCwF,CAAC,EAAnC,EAAuC;IACnCmL,GAAG,CAACtQ,IAAJ,CAAS+0F,KAAK,CAAC5vF,CAAD,CAAd;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6vF,WAAT,CAAqBrpF,CAArB,EAAwBC,CAAxB,EAA2BqpF,gBAA3B,EAA6C;EACzC,IAAItpF,CAAC,CAAChM,MAAF,KAAaiM,CAAC,CAACjM,MAAnB,EACI,OAAO,KAAP;;EACJ,KAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwG,CAAC,CAAChM,MAAtB,EAA8BwF,CAAC,EAA/B,EAAmC;IAC/B,IAAI+vF,MAAM,GAAGvpF,CAAC,CAACxG,CAAD,CAAd;IACA,IAAIgwF,MAAM,GAAGvpF,CAAC,CAACzG,CAAD,CAAd;;IACA,IAAI8vF,gBAAJ,EAAsB;MAClBC,MAAM,GAAGD,gBAAgB,CAACC,MAAD,CAAzB;MACAC,MAAM,GAAGF,gBAAgB,CAACE,MAAD,CAAzB;IACH;;IACD,IAAIA,MAAM,KAAKD,MAAf,EAAuB;MACnB,OAAO,KAAP;IACH;EACJ;;EACD,OAAO,IAAP;AACH;AACD;AACA;AACA;;;AACA,SAASE,OAAT,CAAiBxvB,IAAjB,EAAuBkmB,GAAvB,EAA4B;EACxB,IAAIA,GAAG,KAAKxvF,SAAZ,EACIwvF,GAAG,GAAGlmB,IAAN;;EACJ,KAAK,IAAIzgE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGygE,IAAI,CAACjmE,MAAzB,EAAiCwF,CAAC,EAAlC,EAAsC;IAClC,IAAI0L,IAAI,GAAG+0D,IAAI,CAACzgE,CAAD,CAAf;;IACA,IAAI3F,KAAK,CAAC2C,OAAN,CAAc0O,IAAd,CAAJ,EAAyB;MACrB;MACA,IAAIi7E,GAAG,KAAKlmB,IAAZ,EAAkB;QACd;QACA;QACAkmB,GAAG,GAAGlmB,IAAI,CAACvgE,KAAL,CAAW,CAAX,EAAcF,CAAd,CAAN;MACH;;MACDiwF,OAAO,CAACvkF,IAAD,EAAOi7E,GAAP,CAAP;IACH,CARD,MASK,IAAIA,GAAG,KAAKlmB,IAAZ,EAAkB;MACnBkmB,GAAG,CAAC9rF,IAAJ,CAAS6Q,IAAT;IACH;EACJ;;EACD,OAAOi7E,GAAP;AACH;;AACD,SAAS1xB,WAAT,CAAqBr0D,KAArB,EAA4B9E,EAA5B,EAAgC;EAC5B8E,KAAK,CAAC9H,OAAN,CAAcvC,KAAK,IAAI8D,KAAK,CAAC2C,OAAN,CAAczG,KAAd,IAAuB0+D,WAAW,CAAC1+D,KAAD,EAAQuF,EAAR,CAAlC,GAAgDA,EAAE,CAACvF,KAAD,CAAzE;AACH;;AACD,SAAS25F,UAAT,CAAoB/kF,GAApB,EAAyBtG,KAAzB,EAAgCtO,KAAhC,EAAuC;EACnC;EACA,IAAIsO,KAAK,IAAIsG,GAAG,CAAC3Q,MAAjB,EAAyB;IACrB2Q,GAAG,CAACtQ,IAAJ,CAAStE,KAAT;EACH,CAFD,MAGK;IACD4U,GAAG,CAACS,MAAJ,CAAW/G,KAAX,EAAkB,CAAlB,EAAqBtO,KAArB;EACH;AACJ;;AACD,SAAS45F,eAAT,CAAyBhlF,GAAzB,EAA8BtG,KAA9B,EAAqC;EACjC;EACA,IAAIA,KAAK,IAAIsG,GAAG,CAAC3Q,MAAJ,GAAa,CAA1B,EAA6B;IACzB,OAAO2Q,GAAG,CAACC,GAAJ,EAAP;EACH,CAFD,MAGK;IACD,OAAOD,GAAG,CAACS,MAAJ,CAAW/G,KAAX,EAAkB,CAAlB,EAAqB,CAArB,CAAP;EACH;AACJ;;AACD,SAASurF,QAAT,CAAkBnxE,IAAlB,EAAwB1oB,KAAxB,EAA+B;EAC3B,MAAMkqE,IAAI,GAAG,EAAb;;EACA,KAAK,IAAIzgE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGif,IAApB,EAA0Bjf,CAAC,EAA3B,EAA+B;IAC3BygE,IAAI,CAAC5lE,IAAL,CAAUtE,KAAV;EACH;;EACD,OAAOkqE,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4vB,WAAT,CAAqBruF,KAArB,EAA4B6C,KAA5B,EAAmCmE,KAAnC,EAA0C;EACtC,MAAMxO,MAAM,GAAGwH,KAAK,CAACxH,MAAN,GAAewO,KAA9B;;EACA,OAAOnE,KAAK,GAAGrK,MAAf,EAAuB;IACnBwH,KAAK,CAAC6C,KAAD,CAAL,GAAe7C,KAAK,CAAC6C,KAAK,GAAGmE,KAAT,CAApB;IACAnE,KAAK;EACR;;EACD,OAAOmE,KAAK,EAAZ,EAAgB;IACZhH,KAAK,CAACoJ,GAAN,GADY,CACC;EAChB;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASklF,WAAT,CAAqBtuF,KAArB,EAA4B6C,KAA5B,EAAmCtO,KAAnC,EAA0C;EACtCic,SAAS,IAAI85D,qBAAqB,CAACznE,KAAD,EAAQ7C,KAAK,CAACxH,MAAd,EAAsB,+BAAtB,CAAlC;EACA,IAAIkxC,GAAG,GAAG1pC,KAAK,CAACxH,MAAhB;;EACA,OAAOkxC,GAAG,GAAG7mC,KAAb,EAAoB;IAChB,MAAM0rF,WAAW,GAAG7kD,GAAG,GAAG,CAA1B;IACA1pC,KAAK,CAAC0pC,GAAD,CAAL,GAAa1pC,KAAK,CAACuuF,WAAD,CAAlB;IACA7kD,GAAG,GAAG6kD,WAAN;EACH;;EACDvuF,KAAK,CAAC6C,KAAD,CAAL,GAAetO,KAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASi6F,YAAT,CAAsBxuF,KAAtB,EAA6B6C,KAA7B,EAAoC4rF,MAApC,EAA4CC,MAA5C,EAAoD;EAChDl+E,SAAS,IAAI85D,qBAAqB,CAACznE,KAAD,EAAQ7C,KAAK,CAACxH,MAAd,EAAsB,+BAAtB,CAAlC;EACA,IAAIkxC,GAAG,GAAG1pC,KAAK,CAACxH,MAAhB;;EACA,IAAIkxC,GAAG,IAAI7mC,KAAX,EAAkB;IACd;IACA7C,KAAK,CAACnH,IAAN,CAAW41F,MAAX,EAAmBC,MAAnB;EACH,CAHD,MAIK,IAAIhlD,GAAG,KAAK,CAAZ,EAAe;IAChB;IACA1pC,KAAK,CAACnH,IAAN,CAAW61F,MAAX,EAAmB1uF,KAAK,CAAC,CAAD,CAAxB;IACAA,KAAK,CAAC,CAAD,CAAL,GAAWyuF,MAAX;EACH,CAJI,MAKA;IACD/kD,GAAG;IACH1pC,KAAK,CAACnH,IAAN,CAAWmH,KAAK,CAAC0pC,GAAG,GAAG,CAAP,CAAhB,EAA2B1pC,KAAK,CAAC0pC,GAAD,CAAhC;;IACA,OAAOA,GAAG,GAAG7mC,KAAb,EAAoB;MAChB,MAAM0rF,WAAW,GAAG7kD,GAAG,GAAG,CAA1B;MACA1pC,KAAK,CAAC0pC,GAAD,CAAL,GAAa1pC,KAAK,CAACuuF,WAAD,CAAlB;MACA7kD,GAAG;IACN;;IACD1pC,KAAK,CAAC6C,KAAD,CAAL,GAAe4rF,MAAf;IACAzuF,KAAK,CAAC6C,KAAK,GAAG,CAAT,CAAL,GAAmB6rF,MAAnB;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,iBAAT,CAA2B3uF,KAA3B,EAAkCzL,KAAlC,EAAyC;EACrC,IAAIsO,KAAK,GAAG+rF,kBAAkB,CAAC5uF,KAAD,EAAQzL,KAAR,CAA9B;;EACA,IAAIsO,KAAK,GAAG,CAAZ,EAAe;IACX;IACAA,KAAK,GAAG,CAACA,KAAT;IACAyrF,WAAW,CAACtuF,KAAD,EAAQ6C,KAAR,EAAetO,KAAf,CAAX;EACH;;EACD,OAAOsO,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgsF,iBAAT,CAA2B7uF,KAA3B,EAAkCzL,KAAlC,EAAyC;EACrC,MAAMsO,KAAK,GAAG+rF,kBAAkB,CAAC5uF,KAAD,EAAQzL,KAAR,CAAhC;;EACA,IAAIsO,KAAK,IAAI,CAAb,EAAgB;IACZwrF,WAAW,CAACruF,KAAD,EAAQ6C,KAAR,EAAe,CAAf,CAAX;EACH;;EACD,OAAOA,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+rF,kBAAT,CAA4B5uF,KAA5B,EAAmCzL,KAAnC,EAA0C;EACtC,OAAOu6F,mBAAmB,CAAC9uF,KAAD,EAAQzL,KAAR,EAAe,CAAf,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw6F,gBAAT,CAA0BC,aAA1B,EAAyCvlF,GAAzC,EAA8ClV,KAA9C,EAAqD;EACjD,IAAIsO,KAAK,GAAGosF,oBAAoB,CAACD,aAAD,EAAgBvlF,GAAhB,CAAhC;;EACA,IAAI5G,KAAK,IAAI,CAAb,EAAgB;IACZ;IACAmsF,aAAa,CAACnsF,KAAK,GAAG,CAAT,CAAb,GAA2BtO,KAA3B;EACH,CAHD,MAIK;IACDsO,KAAK,GAAG,CAACA,KAAT;IACA2rF,YAAY,CAACQ,aAAD,EAAgBnsF,KAAhB,EAAuB4G,GAAvB,EAA4BlV,KAA5B,CAAZ;EACH;;EACD,OAAOsO,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqsF,gBAAT,CAA0BF,aAA1B,EAAyCvlF,GAAzC,EAA8C;EAC1C,MAAM5G,KAAK,GAAGosF,oBAAoB,CAACD,aAAD,EAAgBvlF,GAAhB,CAAlC;;EACA,IAAI5G,KAAK,IAAI,CAAb,EAAgB;IACZ;IACA,OAAOmsF,aAAa,CAACnsF,KAAK,GAAG,CAAT,CAApB;EACH;;EACD,OAAO1N,SAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS85F,oBAAT,CAA8BD,aAA9B,EAA6CvlF,GAA7C,EAAkD;EAC9C,OAAOqlF,mBAAmB,CAACE,aAAD,EAAgBvlF,GAAhB,EAAqB,CAArB,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0lF,mBAAT,CAA6BH,aAA7B,EAA4CvlF,GAA5C,EAAiD;EAC7C,MAAM5G,KAAK,GAAGosF,oBAAoB,CAACD,aAAD,EAAgBvlF,GAAhB,CAAlC;;EACA,IAAI5G,KAAK,IAAI,CAAb,EAAgB;IACZ;IACAwrF,WAAW,CAACW,aAAD,EAAgBnsF,KAAhB,EAAuB,CAAvB,CAAX;EACH;;EACD,OAAOA,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASisF,mBAAT,CAA6B9uF,KAA7B,EAAoCzL,KAApC,EAA2CkE,KAA3C,EAAkD;EAC9C+X,SAAS,IAAIk6D,WAAW,CAACryE,KAAK,CAAC2C,OAAN,CAAcgF,KAAd,CAAD,EAAuB,IAAvB,EAA6B,oBAA7B,CAAxB;EACA,IAAI6tB,KAAK,GAAG,CAAZ;EACA,IAAI6b,GAAG,GAAG1pC,KAAK,CAACxH,MAAN,IAAgBC,KAA1B;;EACA,OAAOixC,GAAG,KAAK7b,KAAf,EAAsB;IAClB,MAAMuhE,MAAM,GAAGvhE,KAAK,IAAK6b,GAAG,GAAG7b,KAAP,IAAiB,CAArB,CAApB,CADkB,CAC2B;;IAC7C,MAAM0rD,OAAO,GAAGv5E,KAAK,CAACovF,MAAM,IAAI32F,KAAX,CAArB;;IACA,IAAIlE,KAAK,KAAKglF,OAAd,EAAuB;MACnB,OAAQ6V,MAAM,IAAI32F,KAAlB;IACH,CAFD,MAGK,IAAI8gF,OAAO,GAAGhlF,KAAd,EAAqB;MACtBm1C,GAAG,GAAG0lD,MAAN;IACH,CAFI,MAGA;MACDvhE,KAAK,GAAGuhE,MAAM,GAAG,CAAjB,CADC,CACmB;IACvB;EACJ;;EACD,OAAO,EAAE1lD,GAAG,IAAIjxC,KAAT,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM42F,iBAAiB,GAAG,sGAA1B;AACA;;AACA,MAAMC,sBAAsB,GAAG,2CAA/B;AACA;AACA;AACA;AACA;;AACA,MAAMC,gCAAgC,GAAG,kEAAzC;AACA;AACA;AACA;AACA;;AACA,MAAMC,yCAAyC,GAAG,qGAAlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,cAAT,CAAwBC,OAAxB,EAAiC;EAC7B,OAAOL,iBAAiB,CAACh2C,IAAlB,CAAuBq2C,OAAvB,KACHF,yCAAyC,CAACn2C,IAA1C,CAA+Cq2C,OAA/C,CADG,IAEFJ,sBAAsB,CAACj2C,IAAvB,CAA4Bq2C,OAA5B,KAAwC,CAACH,gCAAgC,CAACl2C,IAAjC,CAAsCq2C,OAAtC,CAF9C;AAGH;;AACD,MAAMC,sBAAN,CAA6B;EACzBt7F,WAAW,CAACu7F,OAAD,EAAU;IACjB,KAAKC,QAAL,GAAgBD,OAAO,IAAIhiB,OAAO,CAAC,SAAD,CAAlC;EACH;;EACD5e,OAAO,CAAC4P,CAAD,EAAI;IACP,OAAO,CAAC,GAAGxhE,IAAJ,KAAa,IAAIwhE,CAAJ,CAAM,GAAGxhE,IAAT,CAApB;EACH;EACD;;;EACA0yF,uBAAuB,CAACC,UAAD,EAAaC,gBAAb,EAA+B;IAClD,IAAIvyF,MAAJ;;IACA,IAAI,OAAOsyF,UAAP,KAAsB,WAA1B,EAAuC;MACnCtyF,MAAM,GAAG2wF,QAAQ,CAAC4B,gBAAgB,CAACx3F,MAAlB,CAAjB;IACH,CAFD,MAGK;MACDiF,MAAM,GAAG2wF,QAAQ,CAAC2B,UAAU,CAACv3F,MAAZ,CAAjB;IACH;;IACD,KAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,MAAM,CAACjF,MAA3B,EAAmCwF,CAAC,EAApC,EAAwC;MACpC;MACA;MACA;MACA,IAAI,OAAO+xF,UAAP,KAAsB,WAA1B,EAAuC;QACnCtyF,MAAM,CAACO,CAAD,CAAN,GAAY,EAAZ;MACH,CAFD,MAGK,IAAI+xF,UAAU,CAAC/xF,CAAD,CAAV,IAAiB+xF,UAAU,CAAC/xF,CAAD,CAAV,IAAiB3D,MAAtC,EAA8C;QAC/CoD,MAAM,CAACO,CAAD,CAAN,GAAY,CAAC+xF,UAAU,CAAC/xF,CAAD,CAAX,CAAZ;MACH,CAFI,MAGA;QACDP,MAAM,CAACO,CAAD,CAAN,GAAY,EAAZ;MACH;;MACD,IAAIgyF,gBAAgB,IAAIA,gBAAgB,CAAChyF,CAAD,CAAhB,IAAuB,IAA/C,EAAqD;QACjDP,MAAM,CAACO,CAAD,CAAN,GAAYP,MAAM,CAACO,CAAD,CAAN,CAAUK,MAAV,CAAiB2xF,gBAAgB,CAAChyF,CAAD,CAAjC,CAAZ;MACH;IACJ;;IACD,OAAOP,MAAP;EACH;;EACDwyF,cAAc,CAACvkF,IAAD,EAAOwkF,UAAP,EAAmB;IAC7B,MAAMR,OAAO,GAAGhkF,IAAI,CAAC1C,QAAL,EAAhB,CAD6B,CAE7B;IACA;IACA;IACA;IACA;IACA;IACA;;IACA,IAAIymF,cAAc,CAACC,OAAD,CAAlB,EAA6B;MACzB,OAAO,IAAP;IACH,CAX4B,CAY7B;;;IACA,IAAIhkF,IAAI,CAACugF,UAAL,IAAmBvgF,IAAI,CAACugF,UAAL,KAAoBiE,UAAU,CAACjE,UAAtD,EAAkE;MAC9D,OAAOvgF,IAAI,CAACugF,UAAZ;IACH,CAf4B,CAgB7B;;;IACA,MAAMkE,iBAAiB,GAAGzkF,IAAI,CAAC0kF,cAA/B;;IACA,IAAID,iBAAiB,IAAIA,iBAAiB,KAAKD,UAAU,CAACE,cAA1D,EAA0E;MACtE;MACA;MACA,MAAMA,cAAc,GAAG,OAAOD,iBAAP,KAA6B,UAA7B,GAA0CA,iBAAiB,EAA3D,GAAgEA,iBAAvF;MACA,MAAMJ,UAAU,GAAGK,cAAc,CAAC3sF,GAAf,CAAoB4sF,SAAD,IAAeA,SAAS,IAAIA,SAAS,CAAC3kF,IAAzD,CAAnB;MACA,MAAMskF,gBAAgB,GAAGI,cAAc,CAAC3sF,GAAf,CAAoB4sF,SAAD,IAAeA,SAAS,IAAIC,mCAAmC,CAACD,SAAS,CAAC7mD,UAAX,CAAlF,CAAzB;MACA,OAAO,KAAKsmD,uBAAL,CAA6BC,UAA7B,EAAyCC,gBAAzC,CAAP;IACH,CAzB4B,CA0B7B;;;IACA,MAAMA,gBAAgB,GAAGtkF,IAAI,CAACyO,cAAL,CAAoBswE,UAApB,KAAmC/+E,IAAI,CAAC++E,UAAD,CAAhE;;IACA,MAAMsF,UAAU,GAAG,KAAKF,QAAL,IAAiB,KAAKA,QAAL,CAAcU,cAA/B,IACf,KAAKV,QAAL,CAAcU,cAAd,CAA6B,mBAA7B,EAAkD7kF,IAAlD,CADJ;;IAEA,IAAIqkF,UAAU,IAAIC,gBAAlB,EAAoC;MAChC,OAAO,KAAKF,uBAAL,CAA6BC,UAA7B,EAAyCC,gBAAzC,CAAP;IACH,CAhC4B,CAiC7B;IACA;IACA;IACA;;;IACA,OAAO5B,QAAQ,CAAC1iF,IAAI,CAAClT,MAAN,CAAf;EACH;;EACDyzF,UAAU,CAACvgF,IAAD,EAAO;IACb;IACA;IACA,IAAI,CAACgiF,MAAM,CAAChiF,IAAD,CAAX,EAAmB;MACf,OAAO,EAAP;IACH;;IACD,MAAMwkF,UAAU,GAAGM,aAAa,CAAC9kF,IAAD,CAAhC;;IACA,IAAIugF,UAAU,GAAG,KAAKgE,cAAL,CAAoBvkF,IAApB,EAA0BwkF,UAA1B,CAAjB;;IACA,IAAI,CAACjE,UAAD,IAAeiE,UAAU,KAAK71F,MAAlC,EAA0C;MACtC4xF,UAAU,GAAG,KAAKA,UAAL,CAAgBiE,UAAhB,CAAb;IACH;;IACD,OAAOjE,UAAU,IAAI,EAArB;EACH;;EACDwE,eAAe,CAACC,UAAD,EAAaR,UAAb,EAAyB;IACpC;IACA,IAAIQ,UAAU,CAACrF,WAAX,IAA0BqF,UAAU,CAACrF,WAAX,KAA2B6E,UAAU,CAAC7E,WAApE,EAAiF;MAC7E,IAAIA,WAAW,GAAGqF,UAAU,CAACrF,WAA7B;;MACA,IAAI,OAAOA,WAAP,KAAuB,UAAvB,IAAqCA,WAAW,CAACA,WAArD,EAAkE;QAC9DA,WAAW,GAAGA,WAAW,CAACA,WAA1B;MACH;;MACD,OAAOA,WAAP;IACH,CARmC,CASpC;;;IACA,IAAIqF,UAAU,CAAClnD,UAAX,IAAyBknD,UAAU,CAAClnD,UAAX,KAA0B0mD,UAAU,CAAC1mD,UAAlE,EAA8E;MAC1E,OAAO8mD,mCAAmC,CAACI,UAAU,CAAClnD,UAAZ,CAA1C;IACH,CAZmC,CAapC;;;IACA,IAAIknD,UAAU,CAACv2E,cAAX,CAA0BqwE,WAA1B,CAAJ,EAA4C;MACxC,OAAOkG,UAAU,CAAClG,WAAD,CAAjB;IACH;;IACD,OAAO,IAAP;EACH;;EACDa,WAAW,CAACqF,UAAD,EAAa;IACpB,IAAI,CAAChD,MAAM,CAACgD,UAAD,CAAX,EAAyB;MACrB,OAAO,EAAP;IACH;;IACD,MAAMR,UAAU,GAAGM,aAAa,CAACE,UAAD,CAAhC;IACA,MAAMC,cAAc,GAAG,KAAKF,eAAL,CAAqBC,UAArB,EAAiCR,UAAjC,KAAgD,EAAvE;IACA,MAAMU,iBAAiB,GAAGV,UAAU,KAAK71F,MAAf,GAAwB,KAAKgxF,WAAL,CAAiB6E,UAAjB,CAAxB,GAAuD,EAAjF;IACA,OAAOU,iBAAiB,CAACvyF,MAAlB,CAAyBsyF,cAAzB,CAAP;EACH;;EACDE,gBAAgB,CAACH,UAAD,EAAaR,UAAb,EAAyB;IACrC;IACA,IAAIQ,UAAU,CAACI,YAAX,IACAJ,UAAU,CAACI,YAAX,KAA4BZ,UAAU,CAACY,YAD3C,EACyD;MACrD,IAAIA,YAAY,GAAGJ,UAAU,CAACI,YAA9B;;MACA,IAAI,OAAOA,YAAP,KAAwB,UAAxB,IAAsCA,YAAY,CAACA,YAAvD,EAAqE;QACjEA,YAAY,GAAGA,YAAY,CAACA,YAA5B;MACH;;MACD,OAAOA,YAAP;IACH,CAToC,CAUrC;;;IACA,IAAIJ,UAAU,CAACK,cAAX,IACAL,UAAU,CAACK,cAAX,KAA8Bb,UAAU,CAACa,cAD7C,EAC6D;MACzD,MAAMA,cAAc,GAAGL,UAAU,CAACK,cAAlC;MACA,MAAMD,YAAY,GAAG,EAArB;MACAz2F,MAAM,CAACmD,IAAP,CAAYuzF,cAAZ,EAA4Bj6F,OAA5B,CAAoC2a,IAAI,IAAI;QACxCq/E,YAAY,CAACr/E,IAAD,CAAZ,GAAqB6+E,mCAAmC,CAACS,cAAc,CAACt/E,IAAD,CAAf,CAAxD;MACH,CAFD;MAGA,OAAOq/E,YAAP;IACH,CAnBoC,CAoBrC;;;IACA,IAAIJ,UAAU,CAACv2E,cAAX,CAA0BuwE,aAA1B,CAAJ,EAA8C;MAC1C,OAAOgG,UAAU,CAAChG,aAAD,CAAjB;IACH;;IACD,OAAO,IAAP;EACH;;EACDoG,YAAY,CAACJ,UAAD,EAAa;IACrB,IAAI,CAAChD,MAAM,CAACgD,UAAD,CAAX,EAAyB;MACrB,OAAO,EAAP;IACH;;IACD,MAAMR,UAAU,GAAGM,aAAa,CAACE,UAAD,CAAhC;IACA,MAAMI,YAAY,GAAG,EAArB;;IACA,IAAIZ,UAAU,KAAK71F,MAAnB,EAA2B;MACvB,MAAM22F,kBAAkB,GAAG,KAAKF,YAAL,CAAkBZ,UAAlB,CAA3B;MACA71F,MAAM,CAACmD,IAAP,CAAYwzF,kBAAZ,EAAgCl6F,OAAhC,CAAyC40F,QAAD,IAAc;QAClDoF,YAAY,CAACpF,QAAD,CAAZ,GAAyBsF,kBAAkB,CAACtF,QAAD,CAA3C;MACH,CAFD;IAGH;;IACD,MAAMuF,eAAe,GAAG,KAAKJ,gBAAL,CAAsBH,UAAtB,EAAkCR,UAAlC,CAAxB;;IACA,IAAIe,eAAJ,EAAqB;MACjB52F,MAAM,CAACmD,IAAP,CAAYyzF,eAAZ,EAA6Bn6F,OAA7B,CAAsC40F,QAAD,IAAc;QAC/C,MAAMliD,UAAU,GAAG,EAAnB;;QACA,IAAIsnD,YAAY,CAAC32E,cAAb,CAA4BuxE,QAA5B,CAAJ,EAA2C;UACvCliD,UAAU,CAAC3wC,IAAX,CAAgB,GAAGi4F,YAAY,CAACpF,QAAD,CAA/B;QACH;;QACDliD,UAAU,CAAC3wC,IAAX,CAAgB,GAAGo4F,eAAe,CAACvF,QAAD,CAAlC;QACAoF,YAAY,CAACpF,QAAD,CAAZ,GAAyBliD,UAAzB;MACH,CAPD;IAQH;;IACD,OAAOsnD,YAAP;EACH;;EACDG,eAAe,CAACP,UAAD,EAAa;IACxB,IAAI,CAAChD,MAAM,CAACgD,UAAD,CAAX,EAAyB;MACrB,OAAO,EAAP;IACH;;IACD,OAAO,KAAKG,gBAAL,CAAsBH,UAAtB,EAAkCF,aAAa,CAACE,UAAD,CAA/C,KAAgE,EAAvE;EACH;;EACDQ,gBAAgB,CAACxlF,IAAD,EAAOylF,UAAP,EAAmB;IAC/B,OAAOzlF,IAAI,YAAY+hF,IAAhB,IAAwB0D,UAAU,IAAIzlF,IAAI,CAAC9R,SAAlD;EACH;;AA9KwB;;AAgL7B,SAAS02F,mCAAT,CAA6Cc,oBAA7C,EAAmE;EAC/D,IAAI,CAACA,oBAAL,EAA2B;IACvB,OAAO,EAAP;EACH;;EACD,OAAOA,oBAAoB,CAAC3tF,GAArB,CAAyB4tF,mBAAmB,IAAI;IACnD,MAAMC,aAAa,GAAGD,mBAAmB,CAAC3lF,IAA1C;IACA,MAAM8/E,aAAa,GAAG8F,aAAa,CAAC9F,aAApC;IACA,MAAM+F,cAAc,GAAGF,mBAAmB,CAACj0F,IAApB,GAA2Bi0F,mBAAmB,CAACj0F,IAA/C,GAAsD,EAA7E;IACA,OAAO,IAAIouF,aAAJ,CAAkB,GAAG+F,cAArB,CAAP;EACH,CALM,CAAP;AAMH;;AACD,SAASf,aAAT,CAAuB/E,IAAvB,EAA6B;EACzB,MAAM+F,WAAW,GAAG/F,IAAI,CAAC7xF,SAAL,GAAiBS,MAAM,CAACgP,cAAP,CAAsBoiF,IAAI,CAAC7xF,SAA3B,CAAjB,GAAyD,IAA7E;EACA,MAAMs2F,UAAU,GAAGsB,WAAW,GAAGA,WAAW,CAACn9F,WAAf,GAA6B,IAA3D,CAFyB,CAGzB;EACA;;EACA,OAAO67F,UAAU,IAAI71F,MAArB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo3F,mBAAmB,GAAG,EAA5B;AACA,MAAMC,kBAAkB,GAAGD,mBAA3B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAME,iBAAiB,GAAG,gBAA1B;AACA,MAAMC,kBAAkB,GAAG,iBAA3B;AACA,MAAMC,aAAa,GAAG,aAAtB;AACA,MAAMC,QAAQ,GAAG,MAAjB;AACA,MAAMC,WAAW,GAAG,GAApB;AACA,MAAMC,MAAM,GAAG,UAAf;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,gBAAgB,GAAG98F,SAAvB;;AACA,SAAS+8F,kBAAT,CAA4BtvC,QAA5B,EAAsC;EAClC,MAAMuvC,MAAM,GAAGF,gBAAf;EACAA,gBAAgB,GAAGrvC,QAAnB;EACA,OAAOuvC,MAAP;AACH;;AACD,SAASC,kBAAT,CAA4BvtE,KAA5B,EAAmC0kC,KAAK,GAAGmjB,WAAW,CAACe,OAAvD,EAAgE;EAC5D,IAAIwkB,gBAAgB,KAAK98F,SAAzB,EAAoC;IAChC,MAAM,IAAI4zE,YAAJ,CAAiB,CAAC;IAAI;IAAtB,EAAwEv4D,SAAS,IAClF,iLADC,CAAN;EAEH,CAHD,MAIK,IAAIyhF,gBAAgB,KAAK,IAAzB,EAA+B;IAChC,OAAOjlB,kBAAkB,CAACnoD,KAAD,EAAQ1vB,SAAR,EAAmBo0D,KAAnB,CAAzB;EACH,CAFI,MAGA;IACD,OAAO0oC,gBAAgB,CAACt9E,GAAjB,CAAqBkQ,KAArB,EAA4B0kC,KAAK,GAAGmjB,WAAW,CAAC3nC,QAApB,GAA+B,IAA/B,GAAsC5vC,SAAlE,EAA6Eo0D,KAA7E,CAAP;EACH;AACJ;;AACD,SAAS3kB,QAAT,CAAkB/f,KAAlB,EAAyB0kC,KAAK,GAAGmjB,WAAW,CAACe,OAA7C,EAAsD;EAClD,OAAO,CAACb,uBAAuB,MAAMwlB,kBAA9B,EAAkDxpB,iBAAiB,CAAC/jD,KAAD,CAAnE,EAA4E0kC,KAA5E,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8oC,mBAAT,CAA6BxvF,KAA7B,EAAoC;EAChC,MAAM,IAAIkmE,YAAJ,CAAiB;EAAI;EAArB,EAAwEv4D,SAAS,IAClF,wGAAuG3N,KAAM;AACtH;AACA;AACA,2DAA2DA,KAAM,iGAJvD,CAAN;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiiC,MAAT,CAAgBjgB,KAAhB,EAAuB0kC,KAAK,GAAGmjB,WAAW,CAACe,OAA3C,EAAoD;EAChD,IAAI,OAAOlkB,KAAP,KAAiB,QAArB,EAA+B;IAC3B;IACA;IACA;IACAA,KAAK,GAAI;IAAE;IAAF,IAAsC;IAC1CA,KAAK,CAAC9kC,QAAN,IAAkB;IAAE;IADhB,KAEJ8kC,KAAK,CAAC3yC,IAAN,IAAc;IAAE;IAFZ,KAGJ2yC,KAAK,CAACwkB,IAAN,IAAc;IAAE;IAHZ,KAIJxkB,KAAK,CAAC+oC,QAAN,IAAkB;IAAE;IAJhB,CAAT;EAKH;;EACD,OAAO1tD,QAAQ,CAAC/f,KAAD,EAAQ0kC,KAAR,CAAf;AACH;;AACD,SAASgpC,UAAT,CAAoBC,KAApB,EAA2B;EACvB,MAAMp1F,IAAI,GAAG,EAAb;;EACA,KAAK,IAAIY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw0F,KAAK,CAACh6F,MAA1B,EAAkCwF,CAAC,EAAnC,EAAuC;IACnC,MAAMy0F,GAAG,GAAG7pB,iBAAiB,CAAC4pB,KAAK,CAACx0F,CAAD,CAAN,CAA7B;;IACA,IAAI3F,KAAK,CAAC2C,OAAN,CAAcy3F,GAAd,CAAJ,EAAwB;MACpB,IAAIA,GAAG,CAACj6F,MAAJ,KAAe,CAAnB,EAAsB;QAClB,MAAM,IAAIuwE,YAAJ,CAAiB;QAAI;QAArB,EAAkEv4D,SAAS,IAAI,sCAA/E,CAAN;MACH;;MACD,IAAI9E,IAAI,GAAGvW,SAAX;MACA,IAAIo0D,KAAK,GAAGmjB,WAAW,CAACe,OAAxB;;MACA,KAAK,IAAI3vC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG20D,GAAG,CAACj6F,MAAxB,EAAgCslC,CAAC,EAAjC,EAAqC;QACjC,MAAMwuD,IAAI,GAAGmG,GAAG,CAAC30D,CAAD,CAAhB;QACA,MAAM40D,IAAI,GAAGC,aAAa,CAACrG,IAAD,CAA1B;;QACA,IAAI,OAAOoG,IAAP,KAAgB,QAApB,EAA8B;UAC1B;UACA,IAAIA,IAAI,KAAK,CAAC;UAAE;UAAhB,EAA6C;YACzChnF,IAAI,GAAG4gF,IAAI,CAACznE,KAAZ;UACH,CAFD,MAGK;YACD0kC,KAAK,IAAImpC,IAAT;UACH;QACJ,CARD,MASK;UACDhnF,IAAI,GAAG4gF,IAAP;QACH;MACJ;;MACDlvF,IAAI,CAACvE,IAAL,CAAU+rC,QAAQ,CAACl5B,IAAD,EAAO69C,KAAP,CAAlB;IACH,CAvBD,MAwBK;MACDnsD,IAAI,CAACvE,IAAL,CAAU+rC,QAAQ,CAAC6tD,GAAD,CAAlB;IACH;EACJ;;EACD,OAAOr1F,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw1F,gBAAT,CAA0BC,SAA1B,EAAqCH,IAArC,EAA2C;EACvCG,SAAS,CAAClB,iBAAD,CAAT,GAA+Be,IAA/B;EACAG,SAAS,CAACj5F,SAAV,CAAoB+3F,iBAApB,IAAyCe,IAAzC;EACA,OAAOG,SAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASF,aAAT,CAAuB9tE,KAAvB,EAA8B;EAC1B,OAAOA,KAAK,CAAC8sE,iBAAD,CAAZ;AACH;;AACD,SAASmB,kBAAT,CAA4B13F,CAA5B,EAA+BypB,KAA/B,EAAsCkuE,iBAAtC,EAAyD18F,MAAzD,EAAiE;EAC7D,MAAM28F,SAAS,GAAG53F,CAAC,CAACw2F,kBAAD,CAAnB;;EACA,IAAI/sE,KAAK,CAACmtE,MAAD,CAAT,EAAmB;IACfgB,SAAS,CAAC75D,OAAV,CAAkBtU,KAAK,CAACmtE,MAAD,CAAvB;EACH;;EACD52F,CAAC,CAACyN,OAAF,GAAYoqF,WAAW,CAAC,OAAO73F,CAAC,CAACyN,OAAV,EAAmBmqF,SAAnB,EAA8BD,iBAA9B,EAAiD18F,MAAjD,CAAvB;EACA+E,CAAC,CAACy2F,aAAD,CAAD,GAAmBmB,SAAnB;EACA53F,CAAC,CAACw2F,kBAAD,CAAD,GAAwB,IAAxB;EACA,MAAMx2F,CAAN;AACH;;AACD,SAAS63F,WAAT,CAAqBxgD,IAArB,EAA2B5yC,GAA3B,EAAgCkzF,iBAAhC,EAAmD18F,MAAM,GAAG,IAA5D,EAAkE;EAC9Do8C,IAAI,GAAGA,IAAI,IAAIA,IAAI,CAAC/6B,MAAL,CAAY,CAAZ,MAAmB,IAA3B,IAAmC+6B,IAAI,CAAC/6B,MAAL,CAAY,CAAZ,KAAkBq6E,WAArD,GAAmEt/C,IAAI,CAACv0C,KAAL,CAAW,CAAX,CAAnE,GAAmFu0C,IAA1F;EACA,IAAIt4C,OAAO,GAAGkqD,SAAS,CAACxkD,GAAD,CAAvB;;EACA,IAAIxH,KAAK,CAAC2C,OAAN,CAAc6E,GAAd,CAAJ,EAAwB;IACpB1F,OAAO,GAAG0F,GAAG,CAAC4D,GAAJ,CAAQ4gD,SAAR,EAAmBp7C,IAAnB,CAAwB,MAAxB,CAAV;EACH,CAFD,MAGK,IAAI,OAAOpJ,GAAP,KAAe,QAAnB,EAA6B;IAC9B,IAAIsyC,KAAK,GAAG,EAAZ;;IACA,KAAK,IAAI1oC,GAAT,IAAgB5J,GAAhB,EAAqB;MACjB,IAAIA,GAAG,CAACsa,cAAJ,CAAmB1Q,GAAnB,CAAJ,EAA6B;QACzB,IAAIlV,KAAK,GAAGsL,GAAG,CAAC4J,GAAD,CAAf;QACA0oC,KAAK,CAACt5C,IAAN,CAAW4Q,GAAG,GAAG,GAAN,IAAa,OAAOlV,KAAP,KAAiB,QAAjB,GAA4B6vD,IAAI,CAACC,SAAL,CAAe9vD,KAAf,CAA5B,GAAoD8vD,SAAS,CAAC9vD,KAAD,CAA1E,CAAX;MACH;IACJ;;IACD4F,OAAO,GAAI,IAAGg4C,KAAK,CAAClpC,IAAN,CAAW,IAAX,CAAiB,GAA/B;EACH;;EACD,OAAQ,GAAE8pF,iBAAkB,GAAE18F,MAAM,GAAG,MAAMA,MAAN,GAAe,GAAlB,GAAwB,EAAG,IAAG8D,OAAQ,MAAKs4C,IAAI,CAACp6B,OAAL,CAAay5E,QAAb,EAAuB,MAAvB,CAA+B,EAA9G;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMjtD,MAAM,GAAG+tD,gBAAgB,EAC/B;AACA;AACAjH,kBAAkB,CAAC,QAAD,EAAY9mE,KAAD,KAAY;EAAEA;AAAF,CAAZ,CAAX,CAHa,EAGuB,CAAC;AAAE;AAH1B,CAA/B;AAIA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkgB,QAAQ,GACd;AACA;AACA6tD,gBAAgB,CAACjH,kBAAkB,CAAC,UAAD,CAAnB,EAAiC;AAAE;AAAnC,CAHhB;AAIA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMpE,IAAI,GACV;AACA;AACAqL,gBAAgB,CAACjH,kBAAkB,CAAC,MAAD,CAAnB,EAA6B;AAAE;AAA/B,CAHhB;AAIA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM3M,QAAQ,GACd;AACA;AACA4T,gBAAgB,CAACjH,kBAAkB,CAAC,UAAD,CAAnB,EAAiC;AAAE;AAAnC,CAHhB;AAIA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM9lD,IAAI,GACV;AACA;AACA+sD,gBAAgB,CAACjH,kBAAkB,CAAC,MAAD,CAAnB,EAA6B;AAAE;AAA/B,CAHhB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIkE,QAAQ,GAAG,IAAf;;AACA,SAASqD,UAAT,GAAsB;EAClB,OAAQrD,QAAQ,GAAGA,QAAQ,IAAI,IAAIF,sBAAJ,EAA/B;AACH;;AACD,SAASwD,mBAAT,CAA6BznF,IAA7B,EAAmC;EAC/B,OAAO0nF,mBAAmB,CAACF,UAAU,GAAGjH,UAAb,CAAwBvgF,IAAxB,CAAD,CAA1B;AACH;;AACD,SAAS0nF,mBAAT,CAA6Bt0C,IAA7B,EAAmC;EAC/B,OAAOA,IAAI,CAACr7C,GAAL,CAAS4vF,GAAG,IAAIC,iBAAiB,CAACD,GAAD,CAAjC,CAAP;AACH;;AACD,SAASC,iBAAT,CAA2BD,GAA3B,EAAgC;EAC5B,MAAM/G,IAAI,GAAG;IACTznE,KAAK,EAAE,IADE;IAET0uE,SAAS,EAAE,IAFF;IAGT38E,IAAI,EAAE,KAHG;IAIT6N,QAAQ,EAAE,KAJD;IAKTspD,IAAI,EAAE,KALG;IAMTukB,QAAQ,EAAE;EAND,CAAb;;EAQA,IAAIj6F,KAAK,CAAC2C,OAAN,CAAcq4F,GAAd,KAAsBA,GAAG,CAAC76F,MAAJ,GAAa,CAAvC,EAA0C;IACtC,KAAK,IAAIslC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu1D,GAAG,CAAC76F,MAAxB,EAAgCslC,CAAC,EAAjC,EAAqC;MACjC,MAAMygC,KAAK,GAAG80B,GAAG,CAACv1D,CAAD,CAAjB;;MACA,IAAIygC,KAAK,KAAKppE,SAAd,EAAyB;QACrB;QACA;MACH;;MACD,MAAMq+F,KAAK,GAAGn5F,MAAM,CAACgP,cAAP,CAAsBk1D,KAAtB,CAAd;;MACA,IAAIA,KAAK,YAAYx5B,QAAjB,IAA6ByuD,KAAK,CAACjI,cAAN,KAAyB,UAA1D,EAAsE;QAClEe,IAAI,CAAC7nE,QAAL,GAAgB,IAAhB;MACH,CAFD,MAGK,IAAI85C,KAAK,YAAYygB,QAAjB,IAA6BwU,KAAK,CAACjI,cAAN,KAAyB,UAA1D,EAAsE;QACvEe,IAAI,CAACgG,QAAL,GAAgB,IAAhB;MACH,CAFI,MAGA,IAAI/zB,KAAK,YAAYgpB,IAAjB,IAAyBiM,KAAK,CAACjI,cAAN,KAAyB,MAAtD,EAA8D;QAC/De,IAAI,CAACve,IAAL,GAAY,IAAZ;MACH,CAFI,MAGA,IAAIxP,KAAK,YAAY14B,IAAjB,IAAyB2tD,KAAK,CAACjI,cAAN,KAAyB,MAAtD,EAA8D;QAC/De,IAAI,CAAC11E,IAAL,GAAY,IAAZ;MACH,CAFI,MAGA,IAAI2nD,KAAK,YAAY15B,MAArB,EAA6B;QAC9BynD,IAAI,CAACznE,KAAL,GAAa05C,KAAK,CAAC15C,KAAnB;MACH,CAFI,MAGA,IAAI05C,KAAK,YAAYz4B,SAArB,EAAgC;QACjC,IAAIy4B,KAAK,CAACguB,aAAN,KAAwBp3F,SAA5B,EAAuC;UACnC,MAAM,IAAI4zE,YAAJ,CAAiB;UAAI;UAArB,EAAqEv4D,SAAS,IAAK,iCAAnF,CAAN;QACH;;QACD87E,IAAI,CAACiH,SAAL,GAAiBh1B,KAAK,CAACguB,aAAvB;MACH,CALI,MAMA;QACDD,IAAI,CAACznE,KAAL,GAAa05C,KAAb;MACH;IACJ;EACJ,CAjCD,MAkCK,IAAI80B,GAAG,KAAKl+F,SAAR,IAAsBkD,KAAK,CAAC2C,OAAN,CAAcq4F,GAAd,KAAsBA,GAAG,CAAC76F,MAAJ,KAAe,CAA/D,EAAmE;IACpE8zF,IAAI,CAACznE,KAAL,GAAa,IAAb;EACH,CAFI,MAGA;IACDynE,IAAI,CAACznE,KAAL,GAAawuE,GAAb;EACH;;EACD,OAAO/G,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmH,yBAAT,CAAmCC,gBAAnC,EAAqD;EACjD;EACA,MAAMC,iBAAiB,GAAG,EAA1B,CAFiD,CAGjD;;EACA,MAAMC,MAAM,GAAG,IAAIv/E,GAAJ,EAAf;;EACA,SAASw/E,qBAAT,CAA+B7qD,GAA/B,EAAoC;IAChC,IAAI/oC,OAAO,GAAG2zF,MAAM,CAACj/E,GAAP,CAAWq0B,GAAX,CAAd;;IACA,IAAI,CAAC/oC,OAAL,EAAc;MACV,MAAM6zF,IAAI,GAAGJ,gBAAgB,CAAC1qD,GAAD,CAA7B;MACA4qD,MAAM,CAACz+E,GAAP,CAAW6zB,GAAX,EAAgB/oC,OAAO,GAAG6zF,IAAI,CAAC5zF,IAAL,CAAU6zF,cAAV,CAA1B;IACH;;IACD,OAAO9zF,OAAP;EACH;;EACD+zF,gCAAgC,CAACl9F,OAAjC,CAAyC,CAACm9F,SAAD,EAAYvoF,IAAZ,KAAqB;IAC1D,MAAMwoF,QAAQ,GAAG,EAAjB;;IACA,IAAID,SAAS,CAACE,WAAd,EAA2B;MACvBD,QAAQ,CAACr7F,IAAT,CAAcg7F,qBAAqB,CAACI,SAAS,CAACE,WAAX,CAArB,CAA6Cj0F,IAA7C,CAAmD8oD,QAAD,IAAc;QAC1EirC,SAAS,CAACjrC,QAAV,GAAqBA,QAArB;MACH,CAFa,CAAd;IAGH;;IACD,MAAMorC,SAAS,GAAGH,SAAS,CAACG,SAA5B;IACA,MAAMvoF,MAAM,GAAGooF,SAAS,CAACpoF,MAAV,KAAqBooF,SAAS,CAACpoF,MAAV,GAAmB,EAAxC,CAAf;IACA,MAAMwoF,WAAW,GAAGJ,SAAS,CAACpoF,MAAV,CAAiBrT,MAArC;IACA47F,SAAS,IAAIA,SAAS,CAACt9F,OAAV,CAAkB,CAACw9F,QAAD,EAAWzxF,KAAX,KAAqB;MAChDgJ,MAAM,CAAChT,IAAP,CAAY,EAAZ,EADgD,CAC/B;;MACjBq7F,QAAQ,CAACr7F,IAAT,CAAcg7F,qBAAqB,CAACS,QAAD,CAArB,CAAgCp0F,IAAhC,CAAsC+L,KAAD,IAAW;QAC1DJ,MAAM,CAACwoF,WAAW,GAAGxxF,KAAf,CAAN,GAA8BoJ,KAA9B;QACAmoF,SAAS,CAACxqF,MAAV,CAAiBwqF,SAAS,CAACzqF,OAAV,CAAkB2qF,QAAlB,CAAjB,EAA8C,CAA9C;;QACA,IAAIF,SAAS,CAAC57F,MAAV,IAAoB,CAAxB,EAA2B;UACvBy7F,SAAS,CAACG,SAAV,GAAsBj/F,SAAtB;QACH;MACJ,CANa,CAAd;IAOH,CATY,CAAb;IAUA,MAAMo/F,aAAa,GAAG78F,OAAO,CAAC88F,GAAR,CAAYN,QAAZ,EAAsBh0F,IAAtB,CAA2B,MAAMu0F,oBAAoB,CAAC/oF,IAAD,CAArD,CAAtB;IACAioF,iBAAiB,CAAC96F,IAAlB,CAAuB07F,aAAvB;EACH,CAtBD;EAuBAG,wCAAwC;EACxC,OAAOh9F,OAAO,CAAC88F,GAAR,CAAYb,iBAAZ,EAA+BzzF,IAA/B,CAAoC,MAAM/K,SAA1C,CAAP;AACH;;AACD,IAAI6+F,gCAAgC,GAAG,IAAI3/E,GAAJ,EAAvC,EACA;;AACA,MAAMsgF,6BAA6B,GAAG,IAAIjhF,GAAJ,EAAtC;;AACA,SAASkhF,wCAAT,CAAkDlpF,IAAlD,EAAwD8U,QAAxD,EAAkE;EAC9D,IAAIq0E,wBAAwB,CAACr0E,QAAD,CAA5B,EAAwC;IACpCwzE,gCAAgC,CAAC7+E,GAAjC,CAAqCzJ,IAArC,EAA2C8U,QAA3C;IACAm0E,6BAA6B,CAACl+F,GAA9B,CAAkCiV,IAAlC;EACH;AACJ;;AACD,SAASopF,+BAAT,CAAyCppF,IAAzC,EAA+C;EAC3C,OAAOipF,6BAA6B,CAAC98E,GAA9B,CAAkCnM,IAAlC,CAAP;AACH;;AACD,SAASmpF,wBAAT,CAAkCZ,SAAlC,EAA6C;EACzC,OAAO,CAAC,EAAGA,SAAS,CAACE,WAAV,IAAyB,CAACF,SAAS,CAAC95E,cAAV,CAAyB,UAAzB,CAA3B,IACN85E,SAAS,CAACG,SAAV,IAAuBH,SAAS,CAACG,SAAV,CAAoB57F,MADvC,CAAR;AAEH;;AACD,SAASk8F,wCAAT,GAAoD;EAChD,MAAMK,GAAG,GAAGf,gCAAZ;EACAA,gCAAgC,GAAG,IAAI3/E,GAAJ,EAAnC;EACA,OAAO0gF,GAAP;AACH;;AACD,SAASC,+BAAT,CAAyCC,KAAzC,EAAgD;EAC5CN,6BAA6B,CAAC7uE,KAA9B;EACAmvE,KAAK,CAACn+F,OAAN,CAAc,CAACglB,CAAD,EAAIpQ,IAAJ,KAAaipF,6BAA6B,CAACl+F,GAA9B,CAAkCiV,IAAlC,CAA3B;EACAsoF,gCAAgC,GAAGiB,KAAnC;AACH;;AACD,SAASC,uCAAT,GAAmD;EAC/C,OAAOlB,gCAAgC,CAAC/2E,IAAjC,KAA0C,CAAjD;AACH;;AACD,SAAS82E,cAAT,CAAwB7uB,QAAxB,EAAkC;EAC9B,OAAO,OAAOA,QAAP,IAAmB,QAAnB,GAA8BA,QAA9B,GAAyCA,QAAQ,CAACzyB,IAAT,EAAhD;AACH;;AACD,SAASgiD,oBAAT,CAA8B/oF,IAA9B,EAAoC;EAChCipF,6BAA6B,CAACvxE,MAA9B,CAAqC1X,IAArC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMypF,OAAO,GAAG,IAAI9gF,GAAJ,EAAhB;AACA;AACA;AACA;AACA;AACA;;AACA,IAAI+gF,0BAA0B,GAAG,IAAjC;;AACA,SAASC,uBAAT,CAAiCriF,EAAjC,EAAqCtH,IAArC,EAA2C4pF,QAA3C,EAAqD;EACjD,IAAI5pF,IAAI,IAAIA,IAAI,KAAK4pF,QAAjB,IAA6BF,0BAAjC,EAA6D;IACzD,MAAM,IAAI1tF,KAAJ,CAAW,mCAAkCsL,EAAG,MAAKqxC,SAAS,CAAC34C,IAAD,CAAO,OAAM24C,SAAS,CAAC34C,IAAI,CAAC9C,IAAN,CAAY,EAAhG,CAAN;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2sF,oBAAT,CAA8B9rB,YAA9B,EAA4Cz2D,EAA5C,EAAgD;EAC5C,MAAM6qD,QAAQ,GAAGs3B,OAAO,CAACxgF,GAAR,CAAY3B,EAAZ,KAAmB,IAApC;EACAqiF,uBAAuB,CAACriF,EAAD,EAAK6qD,QAAL,EAAe4L,YAAf,CAAvB;EACA0rB,OAAO,CAAChgF,GAAR,CAAYnC,EAAZ,EAAgBy2D,YAAhB;AACH;;AACD,SAAS+rB,mBAAT,GAA+B;EAC3BL,OAAO,CAACrvE,KAAR;AACH;;AACD,SAAS2vE,yBAAT,CAAmCziF,EAAnC,EAAuC;EACnC,OAAOmiF,OAAO,CAACxgF,GAAR,CAAY3B,EAAZ,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0iF,mCAAT,CAA6CC,eAA7C,EAA8D;EAC1DP,0BAA0B,GAAG,CAACO,eAA9B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIzuD,QAAQ,GAAG/xC,SAAf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASygG,WAAT,CAAqB/hF,QAArB,EAA+B;EAC3BqzB,QAAQ,GAAGrzB,QAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgiF,WAAT,GAAuB;EACnB,IAAI3uD,QAAQ,KAAK/xC,SAAjB,EAA4B;IACxB,OAAO+xC,QAAP;EACH,CAFD,MAGK,IAAI,OAAOrzB,QAAP,KAAoB,WAAxB,EAAqC;IACtC,OAAOA,QAAP;EACH,CANkB,CAOnB;EACA;EACA;EACA;EACA;;;EACA,OAAO1e,SAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,IAAI2gG,QAAJ;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT,GAAuB;EACnB,IAAID,QAAQ,KAAK3gG,SAAjB,EAA4B;IACxB2gG,QAAQ,GAAG,IAAX;;IACA,IAAIloB,OAAO,CAACooB,YAAZ,EAA0B;MACtB,IAAI;QACAF,QAAQ,GAAGloB,OAAO,CAACooB,YAAR,CAAqBC,YAArB,CAAkC,SAAlC,EAA6C;UACpDC,UAAU,EAAGh0E,CAAD,IAAOA,CADiC;UAEpDi0E,YAAY,EAAGj0E,CAAD,IAAOA,CAF+B;UAGpDk0E,eAAe,EAAGl0E,CAAD,IAAOA;QAH4B,CAA7C,CAAX;MAKH,CAND,CAOA,OAAO9qB,EAAP,EAAW,CACP;QACA;QACA;QACA;MACH;IACJ;EACJ;;EACD,OAAO0+F,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,qBAAT,CAA+BC,IAA/B,EAAqC;EACjC,IAAIl/F,EAAJ;;EACA,OAAO,CAAC,CAACA,EAAE,GAAG2+F,WAAW,EAAjB,MAAyB,IAAzB,IAAiC3+F,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAC8+F,UAAH,CAAcI,IAAd,CAA3D,KAAmFA,IAA1F;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,uBAAT,CAAiCxyB,MAAjC,EAAyC;EACrC,IAAI3sE,EAAJ;;EACA,OAAO,CAAC,CAACA,EAAE,GAAG2+F,WAAW,EAAjB,MAAyB,IAAzB,IAAiC3+F,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAC++F,YAAH,CAAgBpyB,MAAhB,CAA3D,KAAuFA,MAA9F;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyyB,0BAAT,CAAoCxtD,GAApC,EAAyC;EACrC,IAAI5xC,EAAJ;;EACA,OAAO,CAAC,CAACA,EAAE,GAAG2+F,WAAW,EAAjB,MAAyB,IAAzB,IAAiC3+F,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAACg/F,eAAH,CAAmBptD,GAAnB,CAA3D,KAAuFA,GAA9F;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASytD,wBAAT,CAAkC,GAAGr5F,IAArC,EAA2C;EACvC,IAAI,OAAOoT,SAAP,KAAqB,WAAzB,EAAsC;IAClC,MAAM,IAAI9I,KAAJ,CAAU,+DAAV,CAAN;EACH;;EACD,IAAI,CAACkmE,OAAO,CAACooB,YAAb,EAA2B;IACvB;IACA;IACA,OAAO,IAAIr8F,QAAJ,CAAa,GAAGyD,IAAhB,CAAP;EACH,CARsC,CASvC;EACA;EACA;EACA;;;EACA,MAAMs5F,MAAM,GAAGt5F,IAAI,CAACc,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf,EAAkB+K,IAAlB,CAAuB,GAAvB,CAAf;EACA,MAAM0tF,MAAM,GAAGv5F,IAAI,CAACA,IAAI,CAAC5E,MAAL,GAAc,CAAf,CAAnB;EACA,MAAMsf,IAAI,GAAI,uBAAsB4+E,MAAO;AAC/C,MAAMC,MAAO;AACb,GAFI,CAfuC,CAkBvC;EACA;EACA;;EACA,MAAM78F,EAAE,GAAG8zE,OAAO,CAAC,MAAD,CAAP,CAAgB2oB,uBAAuB,CAACz+E,IAAD,CAAvC,CAAX;;EACA,IAAIhe,EAAE,CAACD,IAAH,KAAY1E,SAAhB,EAA2B;IACvB;IACA;IACA;IACA;IACA,OAAO,IAAIwE,QAAJ,CAAa,GAAGyD,IAAhB,CAAP;EACH,CA5BsC,CA6BvC;EACA;EACA;;;EACAtD,EAAE,CAACkP,QAAH,GAAc,MAAM8O,IAApB,CAhCuC,CAiCvC;;;EACA,OAAOhe,EAAE,CAACD,IAAH,CAAQ+zE,OAAR,CAAP,CAlCuC,CAmCvC;EACA;EACA;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,IAAIgpB,MAAJ;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT,GAAqB;EACjB,IAAID,MAAM,KAAKzhG,SAAf,EAA0B;IACtByhG,MAAM,GAAG,IAAT;;IACA,IAAIhpB,OAAO,CAACooB,YAAZ,EAA0B;MACtB,IAAI;QACAY,MAAM,GAAGhpB,OAAO,CAACooB,YAAR,CACJC,YADI,CACS,uBADT,EACkC;UACvCC,UAAU,EAAGh0E,CAAD,IAAOA,CADoB;UAEvCi0E,YAAY,EAAGj0E,CAAD,IAAOA,CAFkB;UAGvCk0E,eAAe,EAAGl0E,CAAD,IAAOA;QAHe,CADlC,CAAT;MAMH,CAPD,CAQA,OAAO9qB,EAAP,EAAW,CACP;QACA;QACA;QACA;MACH;IACJ;EACJ;;EACD,OAAOw/F,MAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,2BAAT,CAAqCR,IAArC,EAA2C;EACvC,IAAIl/F,EAAJ;;EACA,OAAO,CAAC,CAACA,EAAE,GAAGy/F,SAAS,EAAf,MAAuB,IAAvB,IAA+Bz/F,EAAE,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,EAAE,CAAC8+F,UAAH,CAAcI,IAAd,CAAzD,KAAiFA,IAAxF;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,6BAAT,CAAuChzB,MAAvC,EAA+C;EAC3C,IAAI3sE,EAAJ;;EACA,OAAO,CAAC,CAACA,EAAE,GAAGy/F,SAAS,EAAf,MAAuB,IAAvB,IAA+Bz/F,EAAE,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,EAAE,CAAC++F,YAAH,CAAgBpyB,MAAhB,CAAzD,KAAqFA,MAA5F;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASizB,gCAAT,CAA0ChuD,GAA1C,EAA+C;EAC3C,IAAI5xC,EAAJ;;EACA,OAAO,CAAC,CAACA,EAAE,GAAGy/F,SAAS,EAAf,MAAuB,IAAvB,IAA+Bz/F,EAAE,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,EAAE,CAACg/F,eAAH,CAAmBptD,GAAnB,CAAzD,KAAqFA,GAA5F;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMiuD,aAAN,CAAoB;EAChB5iG,WAAW,CAAC6iG,qCAAD,EAAwC;IAC/C,KAAKA,qCAAL,GAA6CA,qCAA7C;EACH;;EACDluF,QAAQ,GAAG;IACP,OAAQ,0CAAyC,KAAKkuF,qCAAsC,EAArF,GACF,qCADL;EAEH;;AAPe;;AASpB,MAAMC,YAAN,SAA2BF,aAA3B,CAAyC;EACrCxyC,WAAW,GAAG;IACV,OAAO;IAAO;IAAd;EACH;;AAHoC;;AAKzC,MAAM2yC,aAAN,SAA4BH,aAA5B,CAA0C;EACtCxyC,WAAW,GAAG;IACV,OAAO;IAAQ;IAAf;EACH;;AAHqC;;AAK1C,MAAM4yC,cAAN,SAA6BJ,aAA7B,CAA2C;EACvCxyC,WAAW,GAAG;IACV,OAAO;IAAS;IAAhB;EACH;;AAHsC;;AAK3C,MAAM6yC,WAAN,SAA0BL,aAA1B,CAAwC;EACpCxyC,WAAW,GAAG;IACV,OAAO;IAAM;IAAb;EACH;;AAHmC;;AAKxC,MAAM8yC,mBAAN,SAAkCN,aAAlC,CAAgD;EAC5CxyC,WAAW,GAAG;IACV,OAAO;IAAc;IAArB;EACH;;AAH2C;;AAKhD,SAAS+yC,eAAT,CAAyBjjG,KAAzB,EAAgC;EAC5B,OAAOA,KAAK,YAAY0iG,aAAjB,GAAiC1iG,KAAK,CAAC2iG,qCAAvC,GACH3iG,KADJ;AAEH;;AACD,SAASkjG,+BAAT,CAAyCljG,KAAzC,EAAgDmX,IAAhD,EAAsD;EAClD,MAAMgsF,UAAU,GAAGC,yBAAyB,CAACpjG,KAAD,CAA5C;;EACA,IAAImjG,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAKhsF,IAAzC,EAA+C;IAC3C;IACA,IAAIgsF,UAAU,KAAK;IAAc;IAA7B,GAA6DhsF,IAAI,KAAK;IAAM;IAAhF,EACI,OAAO,IAAP;IACJ,MAAM,IAAIhE,KAAJ,CAAW,mBAAkBgE,IAAK,WAAUgsF,UAAW,qCAAvD,CAAN;EACH;;EACD,OAAOA,UAAU,KAAKhsF,IAAtB;AACH;;AACD,SAASisF,yBAAT,CAAmCpjG,KAAnC,EAA0C;EACtC,OAAOA,KAAK,YAAY0iG,aAAjB,IAAkC1iG,KAAK,CAACkwD,WAAN,EAAlC,IAAyD,IAAhE;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmzC,2BAAT,CAAqCC,WAArC,EAAkD;EAC9C,OAAO,IAAIV,YAAJ,CAAiBU,WAAjB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,4BAAT,CAAsCC,YAAtC,EAAoD;EAChD,OAAO,IAAIX,aAAJ,CAAkBW,YAAlB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,6BAAT,CAAuCC,aAAvC,EAAsD;EAClD,OAAO,IAAIZ,cAAJ,CAAmBY,aAAnB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,0BAAT,CAAoCC,UAApC,EAAgD;EAC5C,OAAO,IAAIb,WAAJ,CAAgBa,UAAhB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,kCAAT,CAA4CC,kBAA5C,EAAgE;EAC5D,OAAO,IAAId,mBAAJ,CAAwBc,kBAAxB,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,kBAAT,CAA4BC,UAA5B,EAAwC;EACpC,MAAMC,mBAAmB,GAAG,IAAIC,mBAAJ,CAAwBF,UAAxB,CAA5B;EACA,OAAOG,oBAAoB,KAAK,IAAIC,eAAJ,CAAoBH,mBAApB,CAAL,GAAgDA,mBAA3E;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAMG,eAAN,CAAsB;EAClBtkG,WAAW,CAACmkG,mBAAD,EAAsB;IAC7B,KAAKA,mBAAL,GAA2BA,mBAA3B;EACH;;EACDI,mBAAmB,CAACtC,IAAD,EAAO;IACtB;IACA;IACA;IACA;IACAA,IAAI,GAAG,4BAA4BA,IAAnC;;IACA,IAAI;MACA,MAAMx+E,IAAI,GAAG,IAAIlE,MAAM,CAACilF,SAAX,GACRC,eADQ,CACQzC,qBAAqB,CAACC,IAAD,CAD7B,EACqC,WADrC,EAERx+E,IAFL;;MAGA,IAAIA,IAAI,KAAK,IAAb,EAAmB;QACf;QACA;QACA;QACA,OAAO,KAAK0gF,mBAAL,CAAyBI,mBAAzB,CAA6CtC,IAA7C,CAAP;MACH;;MACDx+E,IAAI,CAAC4rD,WAAL,CAAiB5rD,IAAI,CAAC2nE,UAAtB;MACA,OAAO3nE,IAAP;IACH,CAZD,CAaA,OAAO1gB,EAAP,EAAW;MACP,OAAO,IAAP;IACH;EACJ;;AA1BiB;AA4BtB;AACA;AACA;AACA;AACA;;;AACA,MAAMqhG,mBAAN,CAA0B;EACtBpkG,WAAW,CAACkkG,UAAD,EAAa;IACpB,KAAKA,UAAL,GAAkBA,UAAlB;IACA,KAAKQ,aAAL,GAAqB,KAAKR,UAAL,CAAgBv0B,cAAhB,CAA+BC,kBAA/B,CAAkD,oBAAlD,CAArB;;IACA,IAAI,KAAK80B,aAAL,CAAmBjhF,IAAnB,IAA2B,IAA/B,EAAqC;MACjC;MACA;MACA,MAAMkhF,SAAS,GAAG,KAAKD,aAAL,CAAmBx1B,aAAnB,CAAiC,MAAjC,CAAlB;MACA,KAAKw1B,aAAL,CAAmBn1B,WAAnB,CAA+Bo1B,SAA/B;MACA,MAAMC,gBAAgB,GAAG,KAAKF,aAAL,CAAmBx1B,aAAnB,CAAiC,MAAjC,CAAzB;MACAy1B,SAAS,CAACp1B,WAAV,CAAsBq1B,gBAAtB;IACH;EACJ;;EACDL,mBAAmB,CAACtC,IAAD,EAAO;IACtB;IACA,MAAM4C,UAAU,GAAG,KAAKH,aAAL,CAAmBx1B,aAAnB,CAAiC,UAAjC,CAAnB;;IACA,IAAI,aAAa21B,UAAjB,EAA6B;MACzBA,UAAU,CAACC,SAAX,GAAuB9C,qBAAqB,CAACC,IAAD,CAA5C;MACA,OAAO4C,UAAP;IACH,CANqB,CAOtB;IACA;IACA;IACA;IACA;IACA;IACA;;;IACA,MAAME,SAAS,GAAG,KAAKL,aAAL,CAAmBx1B,aAAnB,CAAiC,MAAjC,CAAlB;IACA61B,SAAS,CAACD,SAAV,GAAsB9C,qBAAqB,CAACC,IAAD,CAA3C,CAfsB,CAgBtB;IACA;;IACA,IAAI,KAAKiC,UAAL,CAAgBc,YAApB,EAAkC;MAC9B,KAAKC,kBAAL,CAAwBF,SAAxB;IACH;;IACD,OAAOA,SAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,kBAAkB,CAACrpC,EAAD,EAAK;IACnB,MAAMspC,OAAO,GAAGtpC,EAAE,CAACupC,UAAnB,CADmB,CAEnB;;IACA,KAAK,IAAIx7F,CAAC,GAAGu7F,OAAO,CAAC/gG,MAAR,GAAiB,CAA9B,EAAiC,IAAIwF,CAArC,EAAwCA,CAAC,EAAzC,EAA6C;MACzC,MAAMy7F,MAAM,GAAGF,OAAO,CAAC7vF,IAAR,CAAa1L,CAAb,CAAf;MACA,MAAMmqD,QAAQ,GAAGsxC,MAAM,CAAC7wF,IAAxB;;MACA,IAAIu/C,QAAQ,KAAK,WAAb,IAA4BA,QAAQ,CAACx+C,OAAT,CAAiB,MAAjB,MAA6B,CAA7D,EAAgE;QAC5DsmD,EAAE,CAACypC,eAAH,CAAmBvxC,QAAnB;MACH;IACJ;;IACD,IAAIwxC,SAAS,GAAG1pC,EAAE,CAACwvB,UAAnB;;IACA,OAAOka,SAAP,EAAkB;MACd,IAAIA,SAAS,CAAC5oF,QAAV,KAAuBs6D,IAAI,CAACuuB,YAAhC,EACI,KAAKN,kBAAL,CAAwBK,SAAxB;MACJA,SAAS,GAAGA,SAAS,CAACE,WAAtB;IACH;EACJ;;AA5DqB;AA8D1B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASnB,oBAAT,GAAgC;EAC5B,IAAI;IACA,OAAO,CAAC,CAAC,IAAI9kF,MAAM,CAACilF,SAAX,GAAuBC,eAAvB,CAAuCzC,qBAAqB,CAAC,EAAD,CAA5D,EAAkE,WAAlE,CAAT;EACH,CAFD,CAGA,OAAOj/F,EAAP,EAAW;IACP,OAAO,KAAP;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0iG,gBAAgB,GAAG,sEAAzB;;AACA,SAASC,YAAT,CAAsB/wD,GAAtB,EAA2B;EACvBA,GAAG,GAAGyL,MAAM,CAACzL,GAAD,CAAZ;EACA,IAAIA,GAAG,CAACnvB,KAAJ,CAAUigF,gBAAV,CAAJ,EACI,OAAO9wD,GAAP;;EACJ,IAAI,OAAOx4B,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/CmO,OAAO,CAACC,IAAR,CAAc,wCAAuCoqB,GAAI,qCAAzD;EACH;;EACD,OAAO,YAAYA,GAAnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgxD,MAAT,CAAgBC,IAAhB,EAAsB;EAClB,MAAMhrD,GAAG,GAAG,EAAZ;;EACA,KAAK,MAAM2vB,CAAX,IAAgBq7B,IAAI,CAAC36E,KAAL,CAAW,GAAX,CAAhB,EACI2vB,GAAG,CAAC2vB,CAAD,CAAH,GAAS,IAAT;;EACJ,OAAO3vB,GAAP;AACH;;AACD,SAASjuC,KAAT,CAAe,GAAGk5F,IAAlB,EAAwB;EACpB,MAAMjrD,GAAG,GAAG,EAAZ;;EACA,KAAK,MAAM/sB,CAAX,IAAgBg4E,IAAhB,EAAsB;IAClB,KAAK,MAAM52F,CAAX,IAAgB4e,CAAhB,EAAmB;MACf,IAAIA,CAAC,CAAC/H,cAAF,CAAiB7W,CAAjB,CAAJ,EACI2rC,GAAG,CAAC3rC,CAAD,CAAH,GAAS,IAAT;IACP;EACJ;;EACD,OAAO2rC,GAAP;AACH,EACD;AACA;AACA;AACA;AACA;;;AACA,MAAMkrD,aAAa,GAAGH,MAAM,CAAC,wBAAD,CAA5B,EACA;AACA;;AACA,MAAMI,+BAA+B,GAAGJ,MAAM,CAAC,gDAAD,CAA9C;AACA,MAAMK,gCAAgC,GAAGL,MAAM,CAAC,OAAD,CAA/C;AACA,MAAMM,yBAAyB,GAAGt5F,KAAK,CAACq5F,gCAAD,EAAmCD,+BAAnC,CAAvC,EACA;;AACA,MAAMG,cAAc,GAAGv5F,KAAK,CAACo5F,+BAAD,EAAkCJ,MAAM,CAAC,qBACjE,wGADiE,GAEjE,2EAFgE,CAAxC,CAA5B,EAGA;;AACA,MAAMQ,eAAe,GAAGx5F,KAAK,CAACq5F,gCAAD,EAAmCL,MAAM,CAAC,4BACnE,+FADmE,GAEnE,wEAFkE,CAAzC,CAA7B;AAGA,MAAMS,cAAc,GAAGz5F,KAAK,CAACm5F,aAAD,EAAgBI,cAAhB,EAAgCC,eAAhC,EAAiDF,yBAAjD,CAA5B,EACA;;AACA,MAAMI,SAAS,GAAGV,MAAM,CAAC,8DAAD,CAAxB;AACA,MAAMW,UAAU,GAAGX,MAAM,CAAC,kHACtB,mGADsB,GAEtB,gIAFsB,GAGtB,iHAHsB,GAItB,2BAJqB,CAAzB,EAKA;;AACA,MAAMY,UAAU,GAAGZ,MAAM,CAAC,4GACtB,sGADsB,GAEtB,kGAFsB,GAGtB,8FAHsB,GAItB,4GAJsB,GAKtB,0GALsB,GAMtB,iFANqB,CAAzB,EAOA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMa,WAAW,GAAG75F,KAAK,CAAC05F,SAAD,EAAYC,UAAZ,EAAwBC,UAAxB,CAAzB,EACA;AACA;AACA;AACA;AACA;;AACA,MAAME,2CAA2C,GAAGd,MAAM,CAAC,uBAAD,CAA1D;AACA;AACA;AACA;AACA;;AACA,MAAMe,wBAAN,CAA+B;EAC3B1mG,WAAW,GAAG;IACV;IACA;IACA,KAAK2mG,kBAAL,GAA0B,KAA1B;IACA,KAAKC,GAAL,GAAW,EAAX;EACH;;EACDC,gBAAgB,CAACjrC,EAAD,EAAK;IACjB;IACA;IACA;IACA,IAAIspB,OAAO,GAAGtpB,EAAE,CAACwvB,UAAjB;IACA,IAAI0b,eAAe,GAAG,IAAtB;;IACA,OAAO5hB,OAAP,EAAgB;MACZ,IAAIA,OAAO,CAACxoE,QAAR,KAAqBs6D,IAAI,CAACuuB,YAA9B,EAA4C;QACxCuB,eAAe,GAAG,KAAKC,YAAL,CAAkB7hB,OAAlB,CAAlB;MACH,CAFD,MAGK,IAAIA,OAAO,CAACxoE,QAAR,KAAqBs6D,IAAI,CAACgwB,SAA9B,EAAyC;QAC1C,KAAKC,KAAL,CAAW/hB,OAAO,CAACgiB,SAAnB;MACH,CAFI,MAGA;QACD;QACA,KAAKP,kBAAL,GAA0B,IAA1B;MACH;;MACD,IAAIG,eAAe,IAAI5hB,OAAO,CAACkG,UAA/B,EAA2C;QACvClG,OAAO,GAAGA,OAAO,CAACkG,UAAlB;QACA;MACH;;MACD,OAAOlG,OAAP,EAAgB;QACZ;QACA,IAAIA,OAAO,CAACxoE,QAAR,KAAqBs6D,IAAI,CAACuuB,YAA9B,EAA4C;UACxC,KAAK4B,UAAL,CAAgBjiB,OAAhB;QACH;;QACD,IAAI1kF,IAAI,GAAG,KAAK4mG,qBAAL,CAA2BliB,OAA3B,EAAoCA,OAAO,CAACsgB,WAA5C,CAAX;;QACA,IAAIhlG,IAAJ,EAAU;UACN0kF,OAAO,GAAG1kF,IAAV;UACA;QACH;;QACD0kF,OAAO,GAAG,KAAKkiB,qBAAL,CAA2BliB,OAA3B,EAAoCA,OAAO,CAAC5iE,UAA5C,CAAV;MACH;IACJ;;IACD,OAAO,KAAKskF,GAAL,CAAShyF,IAAT,CAAc,EAAd,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACImyF,YAAY,CAACjnF,OAAD,EAAU;IAClB,MAAMunF,OAAO,GAAGvnF,OAAO,CAACwnF,QAAR,CAAiB9+E,WAAjB,EAAhB;;IACA,IAAI,CAAC49E,cAAc,CAACtgF,cAAf,CAA8BuhF,OAA9B,CAAL,EAA6C;MACzC,KAAKV,kBAAL,GAA0B,IAA1B;MACA,OAAO,CAACF,2CAA2C,CAAC3gF,cAA5C,CAA2DuhF,OAA3D,CAAR;IACH;;IACD,KAAKT,GAAL,CAASpiG,IAAT,CAAc,GAAd;IACA,KAAKoiG,GAAL,CAASpiG,IAAT,CAAc6iG,OAAd;IACA,MAAMnC,OAAO,GAAGplF,OAAO,CAACqlF,UAAxB;;IACA,KAAK,IAAIx7F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu7F,OAAO,CAAC/gG,MAA5B,EAAoCwF,CAAC,EAArC,EAAyC;MACrC,MAAM49F,MAAM,GAAGrC,OAAO,CAAC7vF,IAAR,CAAa1L,CAAb,CAAf;MACA,MAAMmqD,QAAQ,GAAGyzC,MAAM,CAAChzF,IAAxB;MACA,MAAMwvE,KAAK,GAAGjwB,QAAQ,CAACtrC,WAAT,EAAd;;MACA,IAAI,CAACg+E,WAAW,CAAC1gF,cAAZ,CAA2Bi+D,KAA3B,CAAL,EAAwC;QACpC,KAAK4iB,kBAAL,GAA0B,IAA1B;QACA;MACH;;MACD,IAAIzmG,KAAK,GAAGqnG,MAAM,CAACrnG,KAAnB,CARqC,CASrC;;MACA,IAAImmG,SAAS,CAACtiB,KAAD,CAAb,EACI7jF,KAAK,GAAGwlG,YAAY,CAACxlG,KAAD,CAApB;MACJ,KAAK0mG,GAAL,CAASpiG,IAAT,CAAc,GAAd,EAAmBsvD,QAAnB,EAA6B,IAA7B,EAAmC0zC,cAAc,CAACtnG,KAAD,CAAjD,EAA0D,GAA1D;IACH;;IACD,KAAK0mG,GAAL,CAASpiG,IAAT,CAAc,GAAd;IACA,OAAO,IAAP;EACH;;EACD2iG,UAAU,CAACjiB,OAAD,EAAU;IAChB,MAAMmiB,OAAO,GAAGniB,OAAO,CAACoiB,QAAR,CAAiB9+E,WAAjB,EAAhB;;IACA,IAAI49E,cAAc,CAACtgF,cAAf,CAA8BuhF,OAA9B,KAA0C,CAACvB,aAAa,CAAChgF,cAAd,CAA6BuhF,OAA7B,CAA/C,EAAsF;MAClF,KAAKT,GAAL,CAASpiG,IAAT,CAAc,IAAd;MACA,KAAKoiG,GAAL,CAASpiG,IAAT,CAAc6iG,OAAd;MACA,KAAKT,GAAL,CAASpiG,IAAT,CAAc,GAAd;IACH;EACJ;;EACDyiG,KAAK,CAACA,KAAD,EAAQ;IACT,KAAKL,GAAL,CAASpiG,IAAT,CAAcgjG,cAAc,CAACP,KAAD,CAA5B;EACH;;EACDG,qBAAqB,CAACn+E,IAAD,EAAO+zC,QAAP,EAAiB;IAClC,IAAIA,QAAQ,IACR,CAAC/zC,IAAI,CAACw+E,uBAAL,CAA6BzqC,QAA7B,IACGga,IAAI,CAAC0wB,8BADT,MAC6C1wB,IAAI,CAAC0wB,8BAFtD,EAEsF;MAClF,MAAM,IAAIr0F,KAAJ,CAAW,6DAA4D4V,IAAI,CAAC0+E,SAAU,EAAtF,CAAN;IACH;;IACD,OAAO3qC,QAAP;EACH;;AA/F0B,EAiG/B;;;AACA,MAAM4qC,qBAAqB,GAAG,iCAA9B,EACA;;AACA,MAAMC,uBAAuB,GAAG,eAAhC;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASL,cAAT,CAAwBtnG,KAAxB,EAA+B;EAC3B,OAAOA,KAAK,CAAC8jB,OAAN,CAAc,IAAd,EAAoB,OAApB,EACFA,OADE,CACM4jF,qBADN,EAC6B,UAAUpiF,KAAV,EAAiB;IACjD,MAAMsiF,EAAE,GAAGtiF,KAAK,CAAC4qE,UAAN,CAAiB,CAAjB,CAAX;IACA,MAAM2X,GAAG,GAAGviF,KAAK,CAAC4qE,UAAN,CAAiB,CAAjB,CAAZ;IACA,OAAO,QAAS,CAAC0X,EAAE,GAAG,MAAN,IAAgB,KAAjB,IAA2BC,GAAG,GAAG,MAAjC,IAA2C,OAAnD,IAA8D,GAArE;EACH,CALM,EAMF/jF,OANE,CAMM6jF,uBANN,EAM+B,UAAUriF,KAAV,EAAiB;IACnD,OAAO,OAAOA,KAAK,CAAC4qE,UAAN,CAAiB,CAAjB,CAAP,GAA6B,GAApC;EACH,CARM,EASFpsE,OATE,CASM,IATN,EASY,MATZ,EAUFA,OAVE,CAUM,IAVN,EAUY,MAVZ,CAAP;AAWH;;AACD,IAAIgkF,eAAJ;AACA;AACA;AACA;AACA;;AACA,SAASC,aAAT,CAAuB/D,UAAvB,EAAmCgE,eAAnC,EAAoD;EAChD,IAAItD,gBAAgB,GAAG,IAAvB;;EACA,IAAI;IACAoD,eAAe,GAAGA,eAAe,IAAI/D,kBAAkB,CAACC,UAAD,CAAvD,CADA,CAEA;;IACA,IAAIiE,UAAU,GAAGD,eAAe,GAAG9nD,MAAM,CAAC8nD,eAAD,CAAT,GAA6B,EAA7D;IACAtD,gBAAgB,GAAGoD,eAAe,CAACzD,mBAAhB,CAAoC4D,UAApC,CAAnB,CAJA,CAKA;IACA;;IACA,IAAIC,YAAY,GAAG,CAAnB;IACA,IAAIC,UAAU,GAAGF,UAAjB;;IACA,GAAG;MACC,IAAIC,YAAY,KAAK,CAArB,EAAwB;QACpB,MAAM,IAAI/0F,KAAJ,CAAU,uDAAV,CAAN;MACH;;MACD+0F,YAAY;MACZD,UAAU,GAAGE,UAAb;MACAA,UAAU,GAAGzD,gBAAgB,CAACE,SAA9B;MACAF,gBAAgB,GAAGoD,eAAe,CAACzD,mBAAhB,CAAoC4D,UAApC,CAAnB;IACH,CARD,QAQSA,UAAU,KAAKE,UARxB;;IASA,MAAMC,SAAS,GAAG,IAAI5B,wBAAJ,EAAlB;IACA,MAAM6B,QAAQ,GAAGD,SAAS,CAACzB,gBAAV,CAA2B2B,kBAAkB,CAAC5D,gBAAD,CAAlB,IAAwCA,gBAAnE,CAAjB;;IACA,IAAI,CAAC,OAAOzoF,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDmsF,SAAS,CAAC3B,kBAAjE,EAAqF;MACjFr8E,OAAO,CAACC,IAAR,CAAa,kFAAb;IACH;;IACD,OAAOy3E,qBAAqB,CAACuG,QAAD,CAA5B;EACH,CAxBD,SAyBQ;IACJ;IACA,IAAI3D,gBAAJ,EAAsB;MAClB,MAAMh+F,MAAM,GAAG4hG,kBAAkB,CAAC5D,gBAAD,CAAlB,IAAwCA,gBAAvD;;MACA,OAAOh+F,MAAM,CAACwkF,UAAd,EAA0B;QACtBxkF,MAAM,CAACyoE,WAAP,CAAmBzoE,MAAM,CAACwkF,UAA1B;MACH;IACJ;EACJ;AACJ;;AACD,SAASod,kBAAT,CAA4B5sC,EAA5B,EAAgC;EAC5B,OAAO,aAAaA;EAAG;EAAhB,GAAqD6sC,iBAAiB,CAAC7sC,EAAD,CAAtE,GACHA,EAAE,CAAC8sC,OADA,GAEH,IAFJ;AAGH;;AACD,SAASD,iBAAT,CAA2B7sC,EAA3B,EAA+B;EAC3B,OAAOA,EAAE,CAACl/C,QAAH,KAAgBs6D,IAAI,CAACuuB,YAArB,IAAqC3pC,EAAE,CAAC0rC,QAAH,KAAgB,UAA5D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIqB,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;EACxBA,eAAe,CAACA,eAAe,CAAC,MAAD,CAAf,GAA0B,CAA3B,CAAf,GAA+C,MAA/C;EACAA,eAAe,CAACA,eAAe,CAAC,MAAD,CAAf,GAA0B,CAA3B,CAAf,GAA+C,MAA/C;EACAA,eAAe,CAACA,eAAe,CAAC,OAAD,CAAf,GAA2B,CAA5B,CAAf,GAAgD,OAAhD;EACAA,eAAe,CAACA,eAAe,CAAC,QAAD,CAAf,GAA4B,CAA7B,CAAf,GAAiD,QAAjD;EACAA,eAAe,CAACA,eAAe,CAAC,KAAD,CAAf,GAAyB,CAA1B,CAAf,GAA8C,KAA9C;EACAA,eAAe,CAACA,eAAe,CAAC,cAAD,CAAf,GAAkC,CAAnC,CAAf,GAAuD,cAAvD;AACH,CAPD,EAOGA,eAAe,KAAKA,eAAe,GAAG,EAAvB,CAPlB;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAwBT,UAAxB,EAAoC;EAChC,MAAMG,SAAS,GAAGO,YAAY,EAA9B;;EACA,IAAIP,SAAJ,EAAe;IACX,OAAO7F,2BAA2B,CAAC6F,SAAS,CAACQ,QAAV,CAAmBH,eAAe,CAACI,IAAnC,EAAyCZ,UAAzC,KAAwD,EAAzD,CAAlC;EACH;;EACD,IAAI/E,+BAA+B,CAAC+E,UAAD,EAAa;EAAO;EAApB,CAAnC,EAA+E;IAC3E,OAAO1F,2BAA2B,CAACU,eAAe,CAACgF,UAAD,CAAhB,CAAlC;EACH;;EACD,OAAOF,aAAa,CAACzG,WAAW,EAAZ,EAAgB1sB,eAAe,CAACqzB,UAAD,CAA/B,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASa,eAAT,CAAyBC,WAAzB,EAAsC;EAClC,MAAMX,SAAS,GAAGO,YAAY,EAA9B;;EACA,IAAIP,SAAJ,EAAe;IACX,OAAOA,SAAS,CAACQ,QAAV,CAAmBH,eAAe,CAACO,KAAnC,EAA0CD,WAA1C,KAA0D,EAAjE;EACH;;EACD,IAAI7F,+BAA+B,CAAC6F,WAAD,EAAc;EAAQ;EAAtB,CAAnC,EAAkF;IAC9E,OAAO9F,eAAe,CAAC8F,WAAD,CAAtB;EACH;;EACD,OAAOn0B,eAAe,CAACm0B,WAAD,CAAtB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,aAAT,CAAuBC,SAAvB,EAAkC;EAC9B,MAAMd,SAAS,GAAGO,YAAY,EAA9B;;EACA,IAAIP,SAAJ,EAAe;IACX,OAAOA,SAAS,CAACQ,QAAV,CAAmBH,eAAe,CAAC7qC,GAAnC,EAAwCsrC,SAAxC,KAAsD,EAA7D;EACH;;EACD,IAAIhG,+BAA+B,CAACgG,SAAD,EAAY;EAAM;EAAlB,CAAnC,EAA4E;IACxE,OAAOjG,eAAe,CAACiG,SAAD,CAAtB;EACH;;EACD,OAAO1D,YAAY,CAAC5wB,eAAe,CAACs0B,SAAD,CAAhB,CAAnB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAA+BC,iBAA/B,EAAkD;EAC9C,MAAMhB,SAAS,GAAGO,YAAY,EAA9B;;EACA,IAAIP,SAAJ,EAAe;IACX,OAAO3F,gCAAgC,CAAC2F,SAAS,CAACQ,QAAV,CAAmBH,eAAe,CAACY,YAAnC,EAAiDD,iBAAjD,KAAuE,EAAxE,CAAvC;EACH;;EACD,IAAIlG,+BAA+B,CAACkG,iBAAD,EAAoB;EAAc;EAAlC,CAAnC,EAAoG;IAChG,OAAO3G,gCAAgC,CAACQ,eAAe,CAACmG,iBAAD,CAAhB,CAAvC;EACH;;EACD,MAAM,IAAI50B,YAAJ,CAAiB;EAAI;EAArB,EAA0Ev4D,SAAS,IACrF,gFADE,CAAN;AAEH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqtF,gBAAT,CAA0BC,YAA1B,EAAwC;EACpC,MAAMnB,SAAS,GAAGO,YAAY,EAA9B;;EACA,IAAIP,SAAJ,EAAe;IACX,OAAO5F,6BAA6B,CAAC4F,SAAS,CAACQ,QAAV,CAAmBH,eAAe,CAACe,MAAnC,EAA2CD,YAA3C,KAA4D,EAA7D,CAApC;EACH;;EACD,IAAIrG,+BAA+B,CAACqG,YAAD,EAAe;EAAS;EAAxB,CAAnC,EAAqF;IACjF,OAAO/G,6BAA6B,CAACS,eAAe,CAACsG,YAAD,CAAhB,CAApC;EACH;;EACD,MAAM,IAAI/0B,YAAJ,CAAiB;EAAI;EAArB,EAAoEv4D,SAAS,IAAI,uCAAjF,CAAN;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwtF,mBAAT,CAA6B1H,IAA7B,EAAmC;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI9lF,SAAS,KAAK,CAACnY,KAAK,CAAC2C,OAAN,CAAcs7F,IAAd,CAAD,IAAwB,CAACj+F,KAAK,CAAC2C,OAAN,CAAcs7F,IAAI,CAAC2H,GAAnB,CAAzB,IAAoD3H,IAAI,CAAC99F,MAAL,KAAgB,CAAzE,CAAb,EAA0F;IACtF,MAAM,IAAIkP,KAAJ,CAAW,sDAAqD4uF,IAAI,CAACrtF,IAAL,CAAU,GAAV,CAAe,EAA/E,CAAN;EACH;;EACD,OAAOotF,qBAAqB,CAACC,IAAI,CAAC,CAAD,CAAL,CAA5B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4H,0BAAT,CAAoCl1D,GAApC,EAAyC;EACrC;EACA;EACA;EACA;EACA;EACA;EACA,IAAIx4B,SAAS,KAAK,CAACnY,KAAK,CAAC2C,OAAN,CAAcguC,GAAd,CAAD,IAAuB,CAAC3wC,KAAK,CAAC2C,OAAN,CAAcguC,GAAG,CAACi1D,GAAlB,CAAxB,IAAkDj1D,GAAG,CAACxwC,MAAJ,KAAe,CAAtE,CAAb,EAAuF;IACnF,MAAM,IAAIkP,KAAJ,CAAW,qDAAoDshC,GAAG,CAAC//B,IAAJ,CAAS,GAAT,CAAc,EAA7E,CAAN;EACH;;EACD,OAAOutF,0BAA0B,CAACxtD,GAAG,CAAC,CAAD,CAAJ,CAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm1D,eAAT,CAAyBC,GAAzB,EAA8B3sF,IAA9B,EAAoC;EAChC,IAAKA,IAAI,KAAK,KAAT,KACA2sF,GAAG,KAAK,OAAR,IAAmBA,GAAG,KAAK,OAA3B,IAAsCA,GAAG,KAAK,QAA9C,IAA0DA,GAAG,KAAK,OAAlE,IACGA,GAAG,KAAK,QAFX,CAAD,IAGC3sF,IAAI,KAAK,MAAT,KAAoB2sF,GAAG,KAAK,MAAR,IAAkBA,GAAG,KAAK,MAA9C,CAHL,EAG6D;IACzD,OAAOV,qBAAP;EACH;;EACD,OAAOF,aAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASa,0BAAT,CAAoCZ,SAApC,EAA+CW,GAA/C,EAAoD3sF,IAApD,EAA0D;EACtD,OAAO0sF,eAAe,CAACC,GAAD,EAAM3sF,IAAN,CAAf,CAA2BgsF,SAA3B,CAAP;AACH;;AACD,SAASa,8BAAT,CAAwC11F,IAAxC,EAA8C;EAC1C,IAAIA,IAAI,CAACiU,WAAL,GAAmBvB,UAAnB,CAA8B,IAA9B,CAAJ,EAAyC;IACrC,MAAMkpC,YAAY,GAAI,8BAA6B57C,IAAK,wCAAnC,GAChB,eAAcA,IAAI,CAAC1K,KAAL,CAAW,CAAX,CAAc,OADZ,GAEhB,SAAQ0K,IAAK,oEAFG,GAGhB,kBAHL;IAIA,MAAM,IAAImgE,YAAJ,CAAiB;IAAI;IAArB,EAAmEvkB,YAAnE,CAAN;EACH;AACJ;;AACD,SAAS+5C,8BAAT,CAAwC31F,IAAxC,EAA8C;EAC1C,IAAIA,IAAI,CAACiU,WAAL,GAAmBvB,UAAnB,CAA8B,IAA9B,CAAJ,EAAyC;IACrC,MAAMkpC,YAAY,GAAI,+BAA8B57C,IAAK,wCAApC,GAChB,eAAcA,IAAI,CAAC1K,KAAL,CAAW,CAAX,CAAc,OADjC;IAEA,MAAM,IAAI6qE,YAAJ,CAAiB;IAAI;IAArB,EAAmEvkB,YAAnE,CAAN;EACH;AACJ;;AACD,SAAS04C,YAAT,GAAwB;EACpB,MAAMzmB,KAAK,GAAGgG,QAAQ,EAAtB;EACA,OAAOhG,KAAK,IAAIA,KAAK,CAACrB,SAAD,CAArB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMopB,uBAAuB,GAAG,IAAI75D,cAAJ,CAAmB,yBAAnB,CAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM85D,QAAQ,GAAG,IAAI95D,cAAJ,CAAmB,UAAnB,EACjB;AACA;AACA,CAAC;AAAE;AAHc,CAAjB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+5D,kBAAkB,GAAG,IAAI/5D,cAAJ,CAAmB,oBAAnB,CAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMg6D,YAAN,CAAmB;EACfhqF,GAAG,CAACkQ,KAAD,EAAQooD,aAAa,GAAGykB,kBAAxB,EAA4C;IAC3C,IAAIzkB,aAAa,KAAKykB,kBAAtB,EAA0C;MACtC,MAAMr8F,KAAK,GAAG,IAAIqS,KAAJ,CAAW,sCAAqC28C,SAAS,CAACx/B,KAAD,CAAQ,GAAjE,CAAd;MACAxvB,KAAK,CAACuT,IAAN,GAAa,mBAAb;MACA,MAAMvT,KAAN;IACH;;IACD,OAAO43E,aAAP;EACH;;AARc;AAWnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2xB,mBAAT,CAA6B,GAAGz9F,OAAhC,EAAyC;EACrC,OAAO;IAAEyoE,UAAU,EAAEi1B,2BAA2B,CAAC,IAAD,EAAO19F,OAAP;EAAzC,CAAP;AACH;;AACD,SAAS09F,2BAAT,CAAqCC,qBAArC,EAA4D,GAAG39F,OAA/D,EAAwE;EACpE,MAAM49F,YAAY,GAAG,EAArB;EACA,MAAMC,KAAK,GAAG,IAAItrF,GAAJ,EAAd,CAFoE,CAE3C;;EACzB,IAAIurF,0BAAJ;EACAhsC,WAAW,CAAC9xD,OAAD,EAAU9K,MAAM,IAAI;IAC3B,IAAI,CAAC,OAAOma,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDsuF,qBAAvD,EAA8E;MAC1E,MAAMI,MAAM,GAAGrsB,eAAe,CAACx8E,MAAD,CAA9B;;MACA,IAAI6oG,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACj9C,UAA3D,EAAuE;QACnE,MAAM,IAAI8mB,YAAJ,CAAiB;QAAI;QAArB,EAA+E,gGAA+FK,iBAAiB,CAAC/yE,MAAD,CAAS,GAAxM,CAAN;MACH;IACJ,CAN0B,CAO3B;;;IACA,MAAM8oG,cAAc,GAAG9oG,MAAvB;;IACA,IAAI+oG,gBAAgB,CAACD,cAAD,EAAiBJ,YAAjB,EAA+B,EAA/B,EAAmCC,KAAnC,CAApB,EAA+D;MAC3DC,0BAA0B,KAAKA,0BAA0B,GAAG,EAAlC,CAA1B;MACAA,0BAA0B,CAACpmG,IAA3B,CAAgCsmG,cAAhC;IACH;EACJ,CAbU,CAAX,CAJoE,CAkBpE;;EACA,IAAIF,0BAA0B,KAAK9pG,SAAnC,EAA8C;IAC1CkqG,iCAAiC,CAACJ,0BAAD,EAA6BF,YAA7B,CAAjC;EACH;;EACD,OAAOA,YAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASM,iCAAT,CAA2CC,kBAA3C,EAA+DP,YAA/D,EAA6E;EACzE,KAAK,IAAI/gG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGshG,kBAAkB,CAAC9mG,MAAvC,EAA+CwF,CAAC,EAAhD,EAAoD;IAChD,MAAM;MAAEwkD,QAAF;MAAY6R;IAAZ,IAA0BirC,kBAAkB,CAACthG,CAAD,CAAlD;IACAi1D,WAAW,CAACoB,SAAD,EAAYqV,QAAQ,IAAI;MAC/Bl5D,SAAS,IAAI+uF,gBAAgB,CAAC71B,QAAD,EAAWrV,SAAS,IAAIyb,WAAxB,EAAqCttB,QAArC,CAA7B;MACAu8C,YAAY,CAAClmG,IAAb,CAAkB6wE,QAAlB;IACH,CAHU,CAAX;EAIH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS01B,gBAAT,CAA0BI,SAA1B,EAAqCT,YAArC,EAAmDU,OAAnD,EAA4DT,KAA5D,EAAmE;EAC/DQ,SAAS,GAAG52B,iBAAiB,CAAC42B,SAAD,CAA7B;EACA,IAAI,CAACA,SAAL,EACI,OAAO,KAAP,CAH2D,CAI/D;EACA;;EACA,IAAIE,OAAO,GAAG,IAAd;EACA,IAAIC,MAAM,GAAGtzB,cAAc,CAACmzB,SAAD,CAA3B;EACA,MAAMN,MAAM,GAAG,CAACS,MAAD,IAAW9sB,eAAe,CAAC2sB,SAAD,CAAzC;;EACA,IAAI,CAACG,MAAD,IAAW,CAACT,MAAhB,EAAwB;IACpB;IACA;IACA;IACA;IACA;IACA,MAAM18C,QAAQ,GAAGg9C,SAAS,CAACh9C,QAA3B;IACAm9C,MAAM,GAAGtzB,cAAc,CAAC7pB,QAAD,CAAvB;;IACA,IAAIm9C,MAAJ,EAAY;MACRD,OAAO,GAAGl9C,QAAV;IACH,CAFD,MAGK;MACD;MACA,OAAO,KAAP;IACH;EACJ,CAfD,MAgBK,IAAI08C,MAAM,IAAI,CAACA,MAAM,CAACj9C,UAAtB,EAAkC;IACnC,OAAO,KAAP;EACH,CAFI,MAGA;IACDy9C,OAAO,GAAGF,SAAV;EACH,CA9B8D,CA+B/D;;;EACA,IAAIhvF,SAAS,IAAIivF,OAAO,CAAC91F,OAAR,CAAgB+1F,OAAhB,MAA6B,CAAC,CAA/C,EAAkD;IAC9C,MAAME,OAAO,GAAGv7C,SAAS,CAACq7C,OAAD,CAAzB;IACA,MAAM90D,IAAI,GAAG60D,OAAO,CAACh8F,GAAR,CAAY4gD,SAAZ,CAAb;IACAglB,0BAA0B,CAACu2B,OAAD,EAAUh1D,IAAV,CAA1B;EACH,CApC8D,CAqC/D;;;EACA,MAAMi1D,WAAW,GAAGb,KAAK,CAACnnF,GAAN,CAAU6nF,OAAV,CAApB;;EACA,IAAIR,MAAJ,EAAY;IACR,IAAIW,WAAJ,EAAiB;MACb;MACA,OAAO,KAAP;IACH;;IACDb,KAAK,CAACvoG,GAAN,CAAUipG,OAAV;;IACA,IAAIR,MAAM,CAACttB,YAAX,EAAyB;MACrB,MAAM9yB,IAAI,GAAG,OAAOogD,MAAM,CAACttB,YAAd,KAA+B,UAA/B,GAA4CstB,MAAM,CAACttB,YAAP,EAA5C,GAAoEstB,MAAM,CAACttB,YAAxF;;MACA,KAAK,MAAMyhB,GAAX,IAAkBv0C,IAAlB,EAAwB;QACpBsgD,gBAAgB,CAAC/L,GAAD,EAAM0L,YAAN,EAAoBU,OAApB,EAA6BT,KAA7B,CAAhB;MACH;IACJ;EACJ,CAZD,MAaK,IAAIW,MAAJ,EAAY;IACb;IACA,IAAIA,MAAM,CAACxxC,OAAP,IAAkB,IAAlB,IAA0B,CAAC0xC,WAA/B,EAA4C;MACxC;MACA;MACArvF,SAAS,IAAIivF,OAAO,CAAC5mG,IAAR,CAAa6mG,OAAb,CAAb,CAHwC,CAIxC;;MACAV,KAAK,CAACvoG,GAAN,CAAUipG,OAAV;MACA,IAAII,wBAAJ;;MACA,IAAI;QACA7sC,WAAW,CAAC0sC,MAAM,CAACxxC,OAAR,EAAiB4xC,QAAQ,IAAI;UACpC,IAAIX,gBAAgB,CAACW,QAAD,EAAWhB,YAAX,EAAyBU,OAAzB,EAAkCT,KAAlC,CAApB,EAA8D;YAC1Dc,wBAAwB,KAAKA,wBAAwB,GAAG,EAAhC,CAAxB,CAD0D,CAE1D;YACA;;YACAA,wBAAwB,CAACjnG,IAAzB,CAA8BknG,QAA9B;UACH;QACJ,CAPU,CAAX;MAQH,CATD,SAUQ;QACJ;QACAvvF,SAAS,IAAIivF,OAAO,CAACr2F,GAAR,EAAb;MACH,CApBuC,CAqBxC;MACA;MACA;;;MACA,IAAI02F,wBAAwB,KAAK3qG,SAAjC,EAA4C;QACxCkqG,iCAAiC,CAACS,wBAAD,EAA2Bf,YAA3B,CAAjC;MACH;IACJ;;IACD,IAAI,CAACc,WAAL,EAAkB;MACd;MACA;MACA,MAAM7wC,OAAO,GAAG2pB,aAAa,CAAC+mB,OAAD,CAAb,KAA2B,MAAM,IAAIA,OAAJ,EAAjC,CAAhB,CAHc,CAId;MACA;MACA;;;MACAX,YAAY,CAAClmG,IAAb,EACA;MACA;QAAEy7D,OAAO,EAAEorC,OAAX;QAAoBl4D,UAAU,EAAEwnB,OAAhC;QAAyClQ,IAAI,EAAEgxB;MAA/C,CAFA,EAGA;MACA;QAAExb,OAAO,EAAEoqC,kBAAX;QAA+BnqC,QAAQ,EAAEmrC,OAAzC;QAAkDlpF,KAAK,EAAE;MAAzD,CAJA,EAKA;MACA;QAAE89C,OAAO,EAAEkqC,uBAAX;QAAoCjqC,QAAQ,EAAE,MAAM3vB,QAAQ,CAAC86D,OAAD,CAA5D;QAAuElpF,KAAK,EAAE;MAA9E,CANA,CAMqF;MANrF;IAQH,CA7CY,CA8Cb;;;IACA,MAAMwpF,YAAY,GAAGL,MAAM,CAACtrC,SAA5B;;IACA,IAAI2rC,YAAY,IAAI,IAAhB,IAAwB,CAACH,WAA7B,EAA0C;MACtC,MAAMI,YAAY,GAAGT,SAArB;MACAvsC,WAAW,CAAC+sC,YAAD,EAAet2B,QAAQ,IAAI;QAClCl5D,SAAS,IAAI+uF,gBAAgB,CAAC71B,QAAD,EAAWs2B,YAAX,EAAyBC,YAAzB,CAA7B;QACAlB,YAAY,CAAClmG,IAAb,CAAkB6wE,QAAlB;MACH,CAHU,CAAX;IAIH;EACJ,CAvDI,MAwDA;IACD;IACA,OAAO,KAAP;EACH;;EACD,OAAQg2B,OAAO,KAAKF,SAAZ,IACJA,SAAS,CAACnrC,SAAV,KAAwBl/D,SAD5B;AAEH;;AACD,SAASoqG,gBAAT,CAA0B71B,QAA1B,EAAoCrV,SAApC,EAA+C6rC,aAA/C,EAA8D;EAC1D,IAAIC,cAAc,CAACz2B,QAAD,CAAd,IAA4B02B,eAAe,CAAC12B,QAAD,CAA3C,IAAyD22B,iBAAiB,CAAC32B,QAAD,CAA1E,IACA42B,kBAAkB,CAAC52B,QAAD,CADtB,EACkC;IAC9B;EACH,CAJyD,CAK1D;;;EACA,MAAM62B,QAAQ,GAAG33B,iBAAiB,CAACc,QAAQ,KAAKA,QAAQ,CAAChC,QAAT,IAAqBgC,QAAQ,CAACpV,OAAnC,CAAT,CAAlC;;EACA,IAAI,CAACisC,QAAL,EAAe;IACX/2B,yBAAyB,CAAC02B,aAAD,EAAgB7rC,SAAhB,EAA2BqV,QAA3B,CAAzB;EACH;AACJ;;AACD,MAAM82B,WAAW,GAAGv4B,sBAAsB,CAAC;EAAE3T,OAAO,EAAE7f,MAAX;EAAmB8f,QAAQ,EAAE0T;AAA7B,CAAD,CAA1C;;AACA,SAASm4B,eAAT,CAAyB7rG,KAAzB,EAAgC;EAC5B,OAAOA,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAP,IAAgB,QAAlC,IAA8CisG,WAAW,IAAIjsG,KAApE;AACH;;AACD,SAAS+rG,kBAAT,CAA4B/rG,KAA5B,EAAmC;EAC/B,OAAO,CAAC,EAAEA,KAAK,IAAIA,KAAK,CAACqzE,WAAjB,CAAR;AACH;;AACD,SAASy4B,iBAAT,CAA2B9rG,KAA3B,EAAkC;EAC9B,OAAO,CAAC,EAAEA,KAAK,IAAIA,KAAK,CAACizC,UAAjB,CAAR;AACH;;AACD,SAAS24D,cAAT,CAAwB5rG,KAAxB,EAA+B;EAC3B,OAAO,OAAOA,KAAP,KAAiB,UAAxB;AACH;;AACD,SAASksG,eAAT,CAAyBlsG,KAAzB,EAAgC;EAC5B,OAAO,CAAC,CAACA,KAAK,CAACmzE,QAAf;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg5B,cAAc,GAAG,IAAI/7D,cAAJ,CAAmB,qBAAnB,CAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA,MAAMg8D,OAAO,GAAG,EAAhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,QAAQ,GAAG,EAAjB;AACA;AACA;AACA;;AACA,IAAIC,eAAe,GAAG1rG,SAAtB;;AACA,SAAS2rG,eAAT,GAA2B;EACvB,IAAID,eAAe,KAAK1rG,SAAxB,EAAmC;IAC/B0rG,eAAe,GAAG,IAAIlC,YAAJ,EAAlB;EACH;;EACD,OAAOkC,eAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,mBAAN,CAA0B;;AAE1B,MAAMC,UAAN,SAAyBD,mBAAzB,CAA6C;EACzC1sG,WAAW,CAACggE,SAAD,EAAYp5D,MAAZ,EAAoB5E,MAApB,EAA4B4qG,MAA5B,EAAoC;IAC3C;IACA,KAAKhmG,MAAL,GAAcA,MAAd;IACA,KAAK5E,MAAL,GAAcA,MAAd;IACA,KAAK4qG,MAAL,GAAcA,MAAd;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKC,OAAL,GAAe,IAAI7sF,GAAJ,EAAf;IACA;AACR;AACA;;IACQ,KAAK8sF,iBAAL,GAAyB,IAAIztF,GAAJ,EAAzB;IACA,KAAK0tF,eAAL,GAAuB,EAAvB;IACA,KAAK9zF,UAAL,GAAkB,KAAlB,CAhB2C,CAiB3C;;IACA+zF,qBAAqB,CAAChtC,SAAD,EAAYqV,QAAQ,IAAI,KAAK43B,eAAL,CAAqB53B,QAArB,CAAxB,CAArB,CAlB2C,CAmB3C;;IACA,KAAKw3B,OAAL,CAAa/rF,GAAb,CAAiBspF,QAAjB,EAA2B8C,UAAU,CAACpsG,SAAD,EAAY,IAAZ,CAArC,EApB2C,CAqB3C;;IACA,IAAI8rG,MAAM,CAACppF,GAAP,CAAW,aAAX,CAAJ,EAA+B;MAC3B,KAAKqpF,OAAL,CAAa/rF,GAAb,CAAiB4rF,mBAAjB,EAAsCQ,UAAU,CAACpsG,SAAD,EAAY,IAAZ,CAAhD;IACH,CAxB0C,CAyB3C;IACA;;;IACA,MAAMmsD,MAAM,GAAG,KAAK4/C,OAAL,CAAavsF,GAAb,CAAiB+rF,cAAjB,CAAf;;IACA,IAAIp/C,MAAM,IAAI,IAAV,IAAkB,OAAOA,MAAM,CAAC/sD,KAAd,KAAwB,QAA9C,EAAwD;MACpD,KAAK0sG,MAAL,CAAYxqG,GAAZ,CAAgB6qD,MAAM,CAAC/sD,KAAvB;IACH;;IACD,KAAKitG,gBAAL,GACI,IAAI9tF,GAAJ,CAAQ,KAAKiB,GAAL,CAAS+pF,kBAAkB,CAACloF,KAA5B,EAAmCs5D,WAAnC,EAAgDpD,WAAW,CAAC6a,IAA5D,CAAR,CADJ;EAEH;EACD;AACJ;AACA;;;EACiB,IAAT9vD,SAAS,GAAG;IACZ,OAAO,KAAKnqB,UAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIgB,OAAO,GAAG;IACN,KAAKmzF,kBAAL,GADM,CAEN;;IACA,KAAKn0F,UAAL,GAAkB,IAAlB;;IACA,IAAI;MACA;MACA,KAAK,MAAMo0F,OAAX,IAAsB,KAAKP,iBAA3B,EAA8C;QAC1CO,OAAO,CAACj3D,WAAR;MACH;;MACD,KAAK,MAAMi4C,IAAX,IAAmB,KAAK0e,eAAxB,EAAyC;QACrC1e,IAAI;MACP;IACJ,CARD,SASQ;MACJ;MACA,KAAKwe,OAAL,CAAap7E,KAAb;;MACA,KAAKq7E,iBAAL,CAAuBr7E,KAAvB;;MACA,KAAK07E,gBAAL,CAAsB17E,KAAtB;MACA,KAAKs7E,eAAL,CAAqB5oG,MAArB,GAA8B,CAA9B;IACH;EACJ;;EACDsV,SAAS,CAAC/K,QAAD,EAAW;IAChB,KAAKq+F,eAAL,CAAqBvoG,IAArB,CAA0BkK,QAA1B;EACH;;EACD4+F,YAAY,CAAC7nG,EAAD,EAAK;IACb,KAAK2nG,kBAAL;IACA,MAAMG,gBAAgB,GAAG1P,kBAAkB,CAAC,IAAD,CAA3C;IACA,MAAMzK,4BAA4B,GAAG5a,uBAAuB,CAAC13E,SAAD,CAA5D;;IACA,IAAI;MACA,OAAO2E,EAAE,EAAT;IACH,CAFD,SAGQ;MACJo4F,kBAAkB,CAAC0P,gBAAD,CAAlB;MACA/0B,uBAAuB,CAAC4a,4BAAD,CAAvB;IACH;EACJ;;EACD9yE,GAAG,CAACkQ,KAAD,EAAQooD,aAAa,GAAGykB,kBAAxB,EAA4CnoC,KAAK,GAAGmjB,WAAW,CAACe,OAAhE,EAAyE;IACxE,KAAKg0B,kBAAL,GADwE,CAExE;;IACA,MAAMG,gBAAgB,GAAG1P,kBAAkB,CAAC,IAAD,CAA3C;IACA,MAAMzK,4BAA4B,GAAG5a,uBAAuB,CAAC13E,SAAD,CAA5D;;IACA,IAAI;MACA;MACA,IAAI,EAAEo0D,KAAK,GAAGmjB,WAAW,CAACsS,QAAtB,CAAJ,EAAqC;QACjC;QACA,IAAI19B,MAAM,GAAG,KAAK4/C,OAAL,CAAavsF,GAAb,CAAiBkQ,KAAjB,CAAb;;QACA,IAAIy8B,MAAM,KAAKnsD,SAAf,EAA0B;UACtB;UACA;UACA,MAAMqsB,GAAG,GAAGqgF,qBAAqB,CAACh9E,KAAD,CAArB,IAAgCgnD,gBAAgB,CAAChnD,KAAD,CAA5D;;UACA,IAAIrD,GAAG,IAAI,KAAKsgF,oBAAL,CAA0BtgF,GAA1B,CAAX,EAA2C;YACvC;YACA;YACA8/B,MAAM,GAAGigD,UAAU,CAACQ,iCAAiC,CAACl9E,KAAD,CAAlC,EAA2C87E,OAA3C,CAAnB;UACH,CAJD,MAKK;YACDr/C,MAAM,GAAG,IAAT;UACH;;UACD,KAAK4/C,OAAL,CAAa/rF,GAAb,CAAiB0P,KAAjB,EAAwBy8B,MAAxB;QACH,CAhBgC,CAiBjC;;;QACA,IAAIA,MAAM,IAAI;QAAK;QAAnB,EAAgD;UAC5C,OAAO,KAAK0gD,OAAL,CAAan9E,KAAb,EAAoBy8B,MAApB,CAAP;QACH;MACJ,CAvBD,CAwBA;MACA;;;MACA,MAAM2gD,YAAY,GAAG,EAAE14C,KAAK,GAAGmjB,WAAW,CAAC6a,IAAtB,IAA8B,KAAKtsF,MAAnC,GAA4C6lG,eAAe,EAAhF,CA1BA,CA2BA;MACA;;MACA7zB,aAAa,GAAI1jB,KAAK,GAAGmjB,WAAW,CAAC3nC,QAArB,IAAkCkoC,aAAa,KAAKykB,kBAApD,GACZ,IADY,GAEZzkB,aAFJ;MAGA,OAAOg1B,YAAY,CAACttF,GAAb,CAAiBkQ,KAAjB,EAAwBooD,aAAxB,CAAP;IACH,CAjCD,CAkCA,OAAO7xE,CAAP,EAAU;MACN,IAAIA,CAAC,CAACwN,IAAF,KAAW,mBAAf,EAAoC;QAChC,MAAMgiC,IAAI,GAAGxvC,CAAC,CAACw2F,kBAAD,CAAD,GAAwBx2F,CAAC,CAACw2F,kBAAD,CAAD,IAAyB,EAA9D;QACAhnD,IAAI,CAACzR,OAAL,CAAakrB,SAAS,CAACx/B,KAAD,CAAtB;;QACA,IAAI+8E,gBAAJ,EAAsB;UAClB;UACA,MAAMxmG,CAAN;QACH,CAHD,MAIK;UACD;UACA,OAAO03F,kBAAkB,CAAC13F,CAAD,EAAIypB,KAAJ,EAAW,iBAAX,EAA8B,KAAKxuB,MAAnC,CAAzB;QACH;MACJ,CAXD,MAYK;QACD,MAAM+E,CAAN;MACH;IACJ,CAlDD,SAmDQ;MACJ;MACAyxE,uBAAuB,CAAC4a,4BAAD,CAAvB;MACAyK,kBAAkB,CAAC0P,gBAAD,CAAlB;IACH;EACJ;EACD;;;EACAM,2BAA2B,GAAG;IAC1B,MAAMN,gBAAgB,GAAG1P,kBAAkB,CAAC,IAAD,CAA3C;IACA,MAAMzK,4BAA4B,GAAG5a,uBAAuB,CAAC13E,SAAD,CAA5D;;IACA,IAAI;MACA,MAAMgtG,YAAY,GAAG,KAAKxtF,GAAL,CAAS6pF,uBAAuB,CAAChoF,KAAjC,EAAwCs5D,WAAxC,EAAqDpD,WAAW,CAAC6a,IAAjE,CAArB;;MACA,IAAI/2E,SAAS,IAAI,CAACnY,KAAK,CAAC2C,OAAN,CAAcmnG,YAAd,CAAlB,EAA+C;QAC3C,MAAM,IAAIp5B,YAAJ,CAAiB;QAAI;QAArB,EAAoE,kEACrE,+BAA8B,OAAOo5B,YAAa,KADmB,GAEtE,2EAFsE,GAGtE,yBAHE,CAAN;MAIH;;MACD,KAAK,MAAMC,WAAX,IAA0BD,YAA1B,EAAwC;QACpCC,WAAW;MACd;IACJ,CAXD,SAYQ;MACJlQ,kBAAkB,CAAC0P,gBAAD,CAAlB;MACA/0B,uBAAuB,CAAC4a,4BAAD,CAAvB;IACH;EACJ;;EACDz+E,QAAQ,GAAG;IACP,MAAMkD,MAAM,GAAG,EAAf;IACA,MAAMg1F,OAAO,GAAG,KAAKA,OAArB;;IACA,KAAK,MAAMr8E,KAAX,IAAoBq8E,OAAO,CAAC1jG,IAAR,EAApB,EAAoC;MAChC0O,MAAM,CAACrT,IAAP,CAAYwrD,SAAS,CAACx/B,KAAD,CAArB;IACH;;IACD,OAAQ,cAAa3Y,MAAM,CAACjD,IAAP,CAAY,IAAZ,CAAkB,GAAvC;EACH;;EACDw4F,kBAAkB,GAAG;IACjB,IAAI,KAAKn0F,UAAT,EAAqB;MACjB,MAAM,IAAIy7D,YAAJ,CAAiB;MAAI;MAArB,EAAwEv4D,SAAS,IAAI,sCAArF,CAAN;IACH;EACJ;EACD;AACJ;AACA;;;EACI8wF,eAAe,CAAC53B,QAAD,EAAW;IACtB;IACA;IACAA,QAAQ,GAAGd,iBAAiB,CAACc,QAAD,CAA5B;IACA,IAAI7kD,KAAK,GAAGs7E,cAAc,CAACz2B,QAAD,CAAd,GAA2BA,QAA3B,GAAsCd,iBAAiB,CAACc,QAAQ,IAAIA,QAAQ,CAACpV,OAAtB,CAAnE,CAJsB,CAKtB;;IACA,MAAMhT,MAAM,GAAG+gD,gBAAgB,CAAC34B,QAAD,CAA/B;;IACA,IAAI,CAACy2B,cAAc,CAACz2B,QAAD,CAAf,IAA6BA,QAAQ,CAAClzD,KAAT,KAAmB,IAApD,EAA0D;MACtD;MACA;MACA,IAAI8rF,WAAW,GAAG,KAAKpB,OAAL,CAAavsF,GAAb,CAAiBkQ,KAAjB,CAAlB;;MACA,IAAIy9E,WAAJ,EAAiB;QACb;QACA,IAAI9xF,SAAS,IAAI8xF,WAAW,CAAC9rF,KAAZ,KAAsBrhB,SAAvC,EAAkD;UAC9Co0E,4BAA4B;QAC/B;MACJ,CALD,MAMK;QACD+4B,WAAW,GAAGf,UAAU,CAACpsG,SAAD,EAAYwrG,OAAZ,EAAqB,IAArB,CAAxB;;QACA2B,WAAW,CAACtzC,OAAZ,GAAsB,MAAMujC,UAAU,CAAC+P,WAAW,CAAC9rF,KAAb,CAAtC;;QACA,KAAK0qF,OAAL,CAAa/rF,GAAb,CAAiB0P,KAAjB,EAAwBy9E,WAAxB;MACH;;MACDz9E,KAAK,GAAG6kD,QAAR;MACA44B,WAAW,CAAC9rF,KAAZ,CAAkB3d,IAAlB,CAAuB6wE,QAAvB;IACH,CAjBD,MAkBK;MACD,MAAM7L,QAAQ,GAAG,KAAKqjC,OAAL,CAAavsF,GAAb,CAAiBkQ,KAAjB,CAAjB;;MACA,IAAIrU,SAAS,IAAIqtD,QAAb,IAAyBA,QAAQ,CAACrnD,KAAT,KAAmBrhB,SAAhD,EAA2D;QACvDo0E,4BAA4B;MAC/B;IACJ;;IACD,KAAK23B,OAAL,CAAa/rF,GAAb,CAAiB0P,KAAjB,EAAwBy8B,MAAxB;EACH;;EACD0gD,OAAO,CAACn9E,KAAD,EAAQy8B,MAAR,EAAgB;IACnB,IAAI9wC,SAAS,IAAI8wC,MAAM,CAAC/sD,KAAP,KAAiBqsG,QAAlC,EAA4C;MACxCv3B,0BAA0B,CAAChlB,SAAS,CAACx/B,KAAD,CAAV,CAA1B;IACH,CAFD,MAGK,IAAIy8B,MAAM,CAAC/sD,KAAP,KAAiBosG,OAArB,EAA8B;MAC/Br/C,MAAM,CAAC/sD,KAAP,GAAeqsG,QAAf;MACAt/C,MAAM,CAAC/sD,KAAP,GAAe+sD,MAAM,CAAC0N,OAAP,EAAf;IACH;;IACD,IAAI,OAAO1N,MAAM,CAAC/sD,KAAd,KAAwB,QAAxB,IAAoC+sD,MAAM,CAAC/sD,KAA3C,IAAoDguG,YAAY,CAACjhD,MAAM,CAAC/sD,KAAR,CAApE,EAAoF;MAChF,KAAK4sG,iBAAL,CAAuB1qG,GAAvB,CAA2B6qD,MAAM,CAAC/sD,KAAlC;IACH;;IACD,OAAO+sD,MAAM,CAAC/sD,KAAd;EACH;;EACDutG,oBAAoB,CAACtgF,GAAD,EAAM;IACtB,IAAI,CAACA,GAAG,CAAC+lB,UAAT,EAAqB;MACjB,OAAO,KAAP;IACH;;IACD,MAAMA,UAAU,GAAGqhC,iBAAiB,CAACpnD,GAAG,CAAC+lB,UAAL,CAApC;;IACA,IAAI,OAAOA,UAAP,KAAsB,QAA1B,EAAoC;MAChC,OAAOA,UAAU,KAAK,KAAf,IAAyB,KAAK05D,MAAL,CAAYppF,GAAZ,CAAgB0vB,UAAhB,CAAhC;IACH,CAFD,MAGK;MACD,OAAO,KAAKi6D,gBAAL,CAAsB3pF,GAAtB,CAA0B0vB,UAA1B,CAAP;IACH;EACJ;;AA/OwC;;AAiP7C,SAASw6D,iCAAT,CAA2Cl9E,KAA3C,EAAkD;EAC9C;EACA,MAAMqoD,aAAa,GAAGrB,gBAAgB,CAAChnD,KAAD,CAAtC;EACA,MAAMmqC,OAAO,GAAGke,aAAa,KAAK,IAAlB,GAAyBA,aAAa,CAACle,OAAvC,GAAiD2pB,aAAa,CAAC9zD,KAAD,CAA9E;;EACA,IAAImqC,OAAO,KAAK,IAAhB,EAAsB;IAClB,OAAOA,OAAP;EACH,CAN6C,CAO9C;EACA;;;EACA,IAAInqC,KAAK,YAAY8f,cAArB,EAAqC;IACjC,MAAM,IAAIokC,YAAJ,CAAiB;IAAI;IAArB,EAAqEv4D,SAAS,IAAK,SAAQ6zC,SAAS,CAACx/B,KAAD,CAAQ,iCAA5G,CAAN;EACH,CAX6C,CAY9C;;;EACA,IAAIA,KAAK,YAAYlrB,QAArB,EAA+B;IAC3B,OAAO6oG,+BAA+B,CAAC39E,KAAD,CAAtC;EACH,CAf6C,CAgB9C;;;EACA,MAAM,IAAIkkD,YAAJ,CAAiB;EAAI;EAArB,EAAqEv4D,SAAS,IAAI,aAAlF,CAAN;AACH;;AACD,SAASgyF,+BAAT,CAAyC39E,KAAzC,EAAgD;EAC5C;EACA,MAAM49E,WAAW,GAAG59E,KAAK,CAACrsB,MAA1B;;EACA,IAAIiqG,WAAW,GAAG,CAAlB,EAAqB;IACjB,MAAMrlG,IAAI,GAAGgxF,QAAQ,CAACqU,WAAD,EAAc,GAAd,CAArB;IACA,MAAM,IAAI15B,YAAJ,CAAiB;IAAI;IAArB,EAAqEv4D,SAAS,IAAK,oCAAmC6zC,SAAS,CAACx/B,KAAD,CAAQ,MAAKznB,IAAI,CAAC6L,IAAL,CAAU,IAAV,CAAgB,IAA5J,CAAN;EACH,CAN2C,CAO5C;EACA;EACA;EACA;EACA;;;EACA,MAAMy5F,sBAAsB,GAAGv2B,yBAAyB,CAACtnD,KAAD,CAAxD;;EACA,IAAI69E,sBAAsB,KAAK,IAA/B,EAAqC;IACjC,OAAO,MAAMA,sBAAsB,CAAC1zC,OAAvB,CAA+BnqC,KAA/B,CAAb;EACH,CAFD,MAGK;IACD,OAAO,MAAM,IAAIA,KAAJ,EAAb;EACH;AACJ;;AACD,SAASw9E,gBAAT,CAA0B34B,QAA1B,EAAoC;EAChC,IAAI02B,eAAe,CAAC12B,QAAD,CAAnB,EAA+B;IAC3B,OAAO63B,UAAU,CAACpsG,SAAD,EAAYu0E,QAAQ,CAACnV,QAArB,CAAjB;EACH,CAFD,MAGK;IACD,MAAMvF,OAAO,GAAG2zC,iBAAiB,CAACj5B,QAAD,CAAjC;IACA,OAAO63B,UAAU,CAACvyC,OAAD,EAAU2xC,OAAV,CAAjB;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASgC,iBAAT,CAA2Bj5B,QAA3B,EAAqCD,YAArC,EAAmDpV,SAAnD,EAA8D;EAC1D,IAAIrF,OAAO,GAAG75D,SAAd;;EACA,IAAIqb,SAAS,IAAIoyF,2BAA2B,CAACl5B,QAAD,CAA5C,EAAwD;IACpDF,yBAAyB,CAACr0E,SAAD,EAAYk/D,SAAZ,EAAuBqV,QAAvB,CAAzB;EACH;;EACD,IAAIy2B,cAAc,CAACz2B,QAAD,CAAlB,EAA8B;IAC1B,MAAMm5B,iBAAiB,GAAGj6B,iBAAiB,CAACc,QAAD,CAA3C;IACA,OAAOiP,aAAa,CAACkqB,iBAAD,CAAb,IAAoCd,iCAAiC,CAACc,iBAAD,CAA5E;EACH,CAHD,MAIK;IACD,IAAIzC,eAAe,CAAC12B,QAAD,CAAnB,EAA+B;MAC3B1a,OAAO,GAAG,MAAM4Z,iBAAiB,CAACc,QAAQ,CAACnV,QAAV,CAAjC;IACH,CAFD,MAGK,IAAI8rC,iBAAiB,CAAC32B,QAAD,CAArB,EAAiC;MAClC1a,OAAO,GAAG,MAAM0a,QAAQ,CAACliC,UAAT,CAAoB,GAAG+qD,UAAU,CAAC7oB,QAAQ,CAAC5qB,IAAT,IAAiB,EAAlB,CAAjC,CAAhB;IACH,CAFI,MAGA,IAAIwhD,kBAAkB,CAAC52B,QAAD,CAAtB,EAAkC;MACnC1a,OAAO,GAAG,MAAMpqB,QAAQ,CAACgkC,iBAAiB,CAACc,QAAQ,CAAC9B,WAAV,CAAlB,CAAxB;IACH,CAFI,MAGA;MACD,MAAM24B,QAAQ,GAAG33B,iBAAiB,CAACc,QAAQ,KACtCA,QAAQ,CAAChC,QAAT,IAAqBgC,QAAQ,CAACpV,OADQ,CAAT,CAAlC;;MAEA,IAAI9jD,SAAS,IAAI,CAAC+vF,QAAlB,EAA4B;QACxB/2B,yBAAyB,CAACC,YAAD,EAAepV,SAAf,EAA0BqV,QAA1B,CAAzB;MACH;;MACD,IAAIo5B,OAAO,CAACp5B,QAAD,CAAX,EAAuB;QACnB1a,OAAO,GAAG,MAAM,IAAKuxC,QAAL,CAAe,GAAGhO,UAAU,CAAC7oB,QAAQ,CAAC5qB,IAAV,CAA5B,CAAhB;MACH,CAFD,MAGK;QACD,OAAO65B,aAAa,CAAC4nB,QAAD,CAAb,IAA2BwB,iCAAiC,CAACxB,QAAD,CAAnE;MACH;IACJ;EACJ;;EACD,OAAOvxC,OAAP;AACH;;AACD,SAASuyC,UAAT,CAAoBvyC,OAApB,EAA6Bz6D,KAA7B,EAAoCiiB,KAAK,GAAG,KAA5C,EAAmD;EAC/C,OAAO;IACHw4C,OAAO,EAAEA,OADN;IAEHz6D,KAAK,EAAEA,KAFJ;IAGHiiB,KAAK,EAAEA,KAAK,GAAG,EAAH,GAAQrhB;EAHjB,CAAP;AAKH;;AACD,SAAS2tG,OAAT,CAAiBvuG,KAAjB,EAAwB;EACpB,OAAO,CAAC,CAACA,KAAK,CAACuqD,IAAf;AACH;;AACD,SAASyjD,YAAT,CAAsBhuG,KAAtB,EAA6B;EACzB,OAAOA,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAP,KAAiB,QAAnC,IACH,OAAOA,KAAK,CAACk2C,WAAb,KAA6B,UADjC;AAEH;;AACD,SAASo3D,qBAAT,CAA+BttG,KAA/B,EAAsC;EAClC,OAAQ,OAAOA,KAAP,KAAiB,UAAlB,IACF,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAYowC,cADnD;AAEH;;AACD,SAASi+D,2BAAT,CAAqCl5B,QAArC,EAA+C;EAC3C,OAAO,CAAC,CAACA,QAAQ,CAACE,UAAlB;AACH;;AACD,SAASy3B,qBAAT,CAA+BhtC,SAA/B,EAA0Cv6D,EAA1C,EAA8C;EAC1C,KAAK,MAAM4vE,QAAX,IAAuBrV,SAAvB,EAAkC;IAC9B,IAAIh8D,KAAK,CAAC2C,OAAN,CAAc0uE,QAAd,CAAJ,EAA6B;MACzB23B,qBAAqB,CAAC33B,QAAD,EAAW5vE,EAAX,CAArB;IACH,CAFD,MAGK,IAAI8oG,2BAA2B,CAACl5B,QAAD,CAA/B,EAA2C;MAC5C23B,qBAAqB,CAAC33B,QAAQ,CAACE,UAAV,EAAsB9vE,EAAtB,CAArB;IACH,CAFI,MAGA;MACDA,EAAE,CAAC4vE,QAAD,CAAF;IACH;EACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMq5B,cAAN,CAAqB;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,kBAAN,CAAyB;AAGzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,uBAAT,CAAiChP,SAAjC,EAA4C;EACxC,MAAM5+F,KAAK,GAAGqS,KAAK,CAAE,kCAAiC28C,SAAS,CAAC4vC,SAAD,CAAY,gDAAxD,CAAnB;EACA5+F,KAAK,CAAC6tG,eAAD,CAAL,GAAyBjP,SAAzB;EACA,OAAO5+F,KAAP;AACH;;AACD,MAAM6tG,eAAe,GAAG,aAAxB;;AACA,SAASC,cAAT,CAAwB9tG,KAAxB,EAA+B;EAC3B,OAAOA,KAAK,CAAC6tG,eAAD,CAAZ;AACH;;AACD,MAAME,6BAAN,CAAoC;EAChCC,uBAAuB,CAACpP,SAAD,EAAY;IAC/B,MAAMgP,uBAAuB,CAAChP,SAAD,CAA7B;EACH;;AAH+B;AAKpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqP,0BAAN,CAAiC;;AAEjCA,0BAA0B,CAACC,IAA3B,GAAoC,eAAe,IAAIH,6BAAJ,EAAnD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,SAASI,gBAAT,GAA4B;EACxB,OAAOC,gBAAgB,CAAC1mB,eAAe,EAAhB,EAAoBN,QAAQ,EAA5B,CAAvB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgnB,gBAAT,CAA0Bn1B,KAA1B,EAAiCmI,KAAjC,EAAwC;EACpC,OAAO,IAAIhwC,UAAJ,CAAek0C,gBAAgB,CAACrM,KAAD,EAAQmI,KAAR,CAA/B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMhwC,UAAN,CAAiB;EACbpyC,WAAW,CAACwtD,aAAD,EAAgB;IACvB,KAAKA,aAAL,GAAqBA,aAArB;EACH;;AAHY;AAKjB;AACA;AACA;AACA;;;AACApb,UAAU,CAAC8pC,iBAAX,GAA+BizB,gBAA/B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,gBAAT,CAA0BnvG,KAA1B,EAAiC;EAC7B,OAAOA,KAAK,YAAYkyC,UAAjB,GAA8BlyC,KAAK,CAACstD,aAApC,GAAoDttD,KAA3D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMovG,oBAAoB,GAAG,IAAIh/D,cAAJ,CAAmB,sBAAnB,CAA7B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMi/D,gBAAN,CAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMp9D,SAAN,CAAgB;AAEhB;AACA;AACA;AACA;;;AACAA,SAAS,CAAC+pC,iBAAV,GAA8B,MAAMszB,eAAe,EAAnD;AACA;;;AACA,SAASA,eAAT,GAA2B;EACvB;EACA;EACA,MAAMptB,KAAK,GAAGgG,QAAQ,EAAtB;EACA,MAAMnO,KAAK,GAAGyO,eAAe,EAA7B;EACA,MAAM+mB,WAAW,GAAG/oB,wBAAwB,CAACzM,KAAK,CAACzrE,KAAP,EAAc4zE,KAAd,CAA5C;EACA,OAAO,CAACR,OAAO,CAAC6tB,WAAD,CAAP,GAAuBA,WAAvB,GAAqCrtB,KAAtC,EAA6CtB,QAA7C,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4uB,SAAN,CAAgB;AAEhB;;;AACAA,SAAS,CAAChrF,KAAV,GAAkButB,kBAAkB,CAAC;EACjCzhB,KAAK,EAAEk/E,SAD0B;EAEjCx8D,UAAU,EAAE,MAFqB;EAGjCynB,OAAO,EAAE,MAAM;AAHkB,CAAD,CAApC;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM3oB,OAAN,CAAc;EACVhyC,WAAW,CAAC2vG,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAKC,KAAL,GAAaD,IAAI,CAAC1kF,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAb;IACA,KAAK4kF,KAAL,GAAaF,IAAI,CAAC1kF,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAb;IACA,KAAK+iD,KAAL,GAAa2hC,IAAI,CAAC1kF,KAAL,CAAW,GAAX,EAAgBphB,KAAhB,CAAsB,CAAtB,EAAyB+K,IAAzB,CAA8B,GAA9B,CAAb;EACH;;AANS;AAQd;AACA;AACA;;;AACA,MAAM6lD,OAAO,GAAG,IAAIzoB,OAAJ,CAAY,QAAZ,CAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM89D,qCAAqC,GAAG,EAA9C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,sBAAsB,GAAG;EAC3Bx7F,IAAI,EAAE;AADqB,CAA/B;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMy7F,gBAAgB,GAAG;EACrBz7F,IAAI,EAAE;AADe,CAAzB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAI07F,gCAAgC,GAAG,KAAvC;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,4BAAT,CAAsCC,WAAtC,EAAmD;EAC/CF,gCAAgC,GAAGE,WAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASC,4BAAT,GAAwC;EACpC,OAAOH,gCAAP;AACH;;AACD,IAAII,iCAAiC,GAAG,KAAxC;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,6BAAT,CAAuCH,WAAvC,EAAoD;EAChDE,iCAAiC,GAAGF,WAApC;AACH;AACD;AACA;AACA;;;AACA,SAASI,6BAAT,GAAyC;EACrC,OAAOF,iCAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,sBAAT,CAAgC1wF,OAAhC,EAAyCsiE,KAAzC,EAAgDilB,OAAhD,EAAyDtpB,OAAzD,EAAkE0yB,aAAlE,EAAiF;EAC7E;EACA;EACA;EACA;EACA,IAAI1yB,OAAO,KAAK,IAAhB,EACI,OANyE,CAO7E;;EACA,IAAI,CAAC0yB,aAAD,IAAkBpJ,OAAO,KAAK,IAAlC,EAAwC;IACpC;IACA;IACA;IACA,MAAMqJ,SAAS,GACf;IACA;IACC,OAAOC,kBAAP,KAA8B,WAA9B,IAA6CA,kBAA7C,IACG7wF,OAAO,YAAY6wF,kBADvB,IAEK,OAAOC,cAAP,KAA0B,WAA1B,IAAyCvJ,OAAO,CAAC/xF,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAAjE,IACG,CAACs7F,cAAc,CAACtwF,GAAf,CAAmB+mF,OAAnB,CANT;;IAOA,IAAIqJ,SAAS,IAAI,CAACG,eAAe,CAAC9yB,OAAD,EAAUspB,OAAV,CAAjC,EAAqD;MACjD,MAAMyJ,gBAAgB,GAAGC,yBAAyB,CAAC3uB,KAAD,CAAlD;MACA,MAAM4uB,gBAAgB,GAAGC,0BAA0B,CAAC7uB,KAAD,CAAnD;MACA,MAAMrE,OAAO,GAAI,IAAG+yB,gBAAgB,GAAG,YAAH,GAAkB,WAAY,WAAlE;MACA,IAAIt8F,OAAO,GAAI,IAAG6yF,OAAQ,2BAA0B2J,gBAAiB,KAArE;MACAx8F,OAAO,IAAK,UAAS6yF,OAAQ,qDAAoDyJ,gBAAgB,GAAG,0DAAH,GAC7F,yDAA0D,KAD9D;;MAEA,IAAIzJ,OAAO,IAAIA,OAAO,CAAC/xF,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAAvC,EAA0C;QACtCd,OAAO,IACF,UAAS6yF,OAAQ,iEAAgEtpB,OAAQ,8CAD9F;MAEH,CAHD,MAIK;QACDvpE,OAAO,IACF,yDAAwDupE,OAAQ,qBADrE;MAEH;;MACD,IAAIkyB,gCAAJ,EAAsC;QAClC,MAAM,IAAIv7B,YAAJ,CAAiB;QAAI;QAArB,EAA6DlgE,OAA7D,CAAN;MACH,CAFD,MAGK;QACD8V,OAAO,CAACtpB,KAAR,CAAc2zE,kBAAkB,CAAC;QAAI;QAAL,EAA6CngE,OAA7C,CAAhC;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS08F,eAAT,CAAyBpxF,OAAzB,EAAkCu3E,QAAlC,EAA4CgQ,OAA5C,EAAqDtpB,OAArD,EAA8D;EAC1D;EACA;EACA;EACA;EACA,IAAIA,OAAO,KAAK,IAAhB,EACI,OAAO,IAAP,CANsD,CAO1D;EACA;;EACA,IAAI8yB,eAAe,CAAC9yB,OAAD,EAAUspB,OAAV,CAAf,IAAqChQ,QAAQ,IAAIv3E,OAAjD,IAA4DkwE,eAAe,CAACqH,QAAD,CAA/E,EAA2F;IACvF,OAAO,IAAP;EACH,CAXyD,CAY1D;EACA;;;EACA,OAAO,OAAOrgB,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,KAAK,IAAxC,IAAgD,EAAEl3D,OAAO,YAAYk3D,IAArB,CAAvD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm6B,0BAAT,CAAoC9Z,QAApC,EAA8CgQ,OAA9C,EAAuD3qF,QAAvD,EAAiE0lE,KAAjE,EAAwE;EACpE;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,CAACilB,OAAD,IAAY3qF,QAAQ,KAAK;EAAE;EAA/B,EAA0D;IACtD2qF,OAAO,GAAG,aAAV;EACH;;EACD,MAAMyJ,gBAAgB,GAAGC,yBAAyB,CAAC3uB,KAAD,CAAlD;EACA,MAAM4uB,gBAAgB,GAAGC,0BAA0B,CAAC7uB,KAAD,CAAnD;EACA,IAAI5tE,OAAO,GAAI,kBAAiB6iF,QAAS,yCAAwCgQ,OAAQ,IAAG2J,gBAAiB,GAA7G;EACA,MAAMjzB,OAAO,GAAI,IAAG+yB,gBAAgB,GAAG,YAAH,GAAkB,WAAY,WAAlE;EACA,MAAMM,cAAc,GAAGN,gBAAgB,GACnC,0DADmC,GAEnC,yDAFJ;;EAGA,IAAIO,6BAA6B,CAAC7tF,GAA9B,CAAkC6zE,QAAlC,CAAJ,EAAiD;IAC7C;IACA;IACA,MAAMia,mBAAmB,GAAGD,6BAA6B,CAAC/wF,GAA9B,CAAkC+2E,QAAlC,CAA5B;IACA7iF,OAAO,IAAK,aAAY6iF,QAAS,0CAAtB,GACN,qCAAoCia,mBAAoB,wCAAuCF,cAAe,GADnH;EAEH,CAND,MAOK;IACD;IACA58F,OAAO,IAAK,YAAW6yF,OAAQ,2CAApB,GACN,IAAGhQ,QAAS,mCAAkC+Z,cAAe,GADlE,CAFC,CAID;;IACA,IAAI/J,OAAO,IAAIA,OAAO,CAAC/xF,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAAvC,EAA0C;MACtCd,OAAO,IAAK,YAAW6yF,OAAQ,yDAApB,GACN,UAAStpB,OAAQ,8CADtB;MAEAvpE,OAAO,IAAK,uDAAD,GACN,OAAMupE,OAAQ,qBADnB;IAEH,CALD,MAMK;MACD;MACAvpE,OAAO,IAAK,uDAAD,GACN,OAAMupE,OAAQ,qBADnB;IAEH;EACJ;;EACDwzB,0BAA0B,CAAC/8F,OAAD,CAA1B;AACH;;AACD,SAAS+8F,0BAAT,CAAoC/8F,OAApC,EAA6C;EACzC,IAAI67F,iCAAJ,EAAuC;IACnC,MAAM,IAAI37B,YAAJ,CAAiB;IAAI;IAArB,EAA6DlgE,OAA7D,CAAN;EACH,CAFD,MAGK;IACD8V,OAAO,CAACtpB,KAAR,CAAc2zE,kBAAkB,CAAC;IAAI;IAAL,EAA6CngE,OAA7C,CAAhC;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASg9F,0BAAT,CAAoCpvB,KAApC,EAA2C;EACvC,CAACjmE,SAAD,IAAcnP,UAAU,CAAC,yCAAD,CAAxB;EACA,MAAMykG,gBAAgB,GAAGrvB,KAAK,CAACjB,0BAAD,CAA9B;EACA,MAAMr7E,OAAO,GAAG2rG,gBAAgB,CAAC9wB,OAAD,CAAhC,CAHuC,CAIvC;;EACA,IAAI,CAAC76E,OAAL,EACI,OAAO,IAAP;EACJ,OAAOA,OAAO,CAAC9F,WAAR,GAAsBw+E,eAAe,CAAC14E,OAAO,CAAC9F,WAAT,CAArC,GAA6D,IAApE;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+wG,yBAAT,CAAmC3uB,KAAnC,EAA0C;EACtC,CAACjmE,SAAD,IAAcnP,UAAU,CAAC,yCAAD,CAAxB;EACA,MAAM0kG,YAAY,GAAGF,0BAA0B,CAACpvB,KAAD,CAA/C,CAFsC,CAGtC;;EACA,OAAO,CAAC,EAAEsvB,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAAC9jD,UAA3E,CAAR;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqjD,0BAAT,CAAoC7uB,KAApC,EAA2C;EACvC,IAAIr/E,EAAJ;;EACA,CAACoZ,SAAD,IAAcnP,UAAU,CAAC,yCAAD,CAAxB;EACA,MAAM2kG,gBAAgB,GAAGH,0BAA0B,CAACpvB,KAAD,CAAnD;EACA,MAAMwvB,kBAAkB,GAAG,CAAC7uG,EAAE,GAAG4uG,gBAAgB,KAAK,IAArB,IAA6BA,gBAAgB,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,gBAAgB,CAACt6F,IAA3F,MAAqG,IAArG,IAA6GtU,EAAE,KAAK,KAAK,CAAzH,GAA6H,KAAK,CAAlI,GAAsIA,EAAE,CAACwR,IAApK;EACA,OAAOq9F,kBAAkB,GAAI,kBAAiBA,kBAAmB,uBAAxC,GAAiE,EAA1F;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAMP,6BAA6B,GAAG,IAAIrxF,GAAJ,CAAQ,CAC1C,CAAC,MAAD,EAAS,MAAT,CAD0C,EACxB,CAAC,OAAD,EAAU,OAAV,CADwB,EACJ,CAAC,cAAD,EAAiB,cAAjB,CADI,EAE1C,CAAC,iBAAD,EAAoB,iBAApB,CAF0C,CAAR,CAAtC;AAIA;AACA;AACA;AACA;AACA;;AACA,SAAS6wF,eAAT,CAAyB9yB,OAAzB,EAAkCspB,OAAlC,EAA2C;EACvC,IAAItpB,OAAO,KAAK,IAAhB,EAAsB;IAClB,KAAK,IAAIp0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGo0E,OAAO,CAAC55E,MAA5B,EAAoCwF,CAAC,EAArC,EAAyC;MACrC,MAAMkoG,MAAM,GAAG9zB,OAAO,CAACp0E,CAAD,CAAtB;;MACA,IAAIkoG,MAAM,KAAK7B,gBAAX,IACA6B,MAAM,KAAK9B,sBAAX,IAAqC1I,OAArC,IAAgDA,OAAO,CAAC/xF,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAD5E,EAC+E;QAC3E,OAAO,IAAP;MACH;IACJ;EACJ;;EACD,OAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMw8F,oBAAoB,GAAG,iBAA7B;;AACA,SAASC,YAAT,CAAsBv9F,OAAtB,EAA+Bw9F,aAA/B,EAA8C;EAC1C,MAAMn8B,GAAG,GAAI,GAAErhE,OAAQ,eAAcw9F,aAAa,YAAY3+F,KAAzB,GAAiC2+F,aAAa,CAACx9F,OAA/C,GAAyDw9F,aAAc,EAA5G;EACA,MAAMhxG,KAAK,GAAGqS,KAAK,CAACwiE,GAAD,CAAnB;EACA70E,KAAK,CAAC8wG,oBAAD,CAAL,GAA8BE,aAA9B;EACA,OAAOhxG,KAAP;AACH;;AACD,SAASixG,gBAAT,CAA0BjxG,KAA1B,EAAiC;EAC7B,OAAOA,KAAK,CAAC8wG,oBAAD,CAAZ;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,YAAN,CAAmB;EACflyG,WAAW,GAAG;IACV;AACR;AACA;IACQ,KAAKmyG,QAAL,GAAgB7nF,OAAhB;EACH;;EACD8nF,WAAW,CAACpxG,KAAD,EAAQ;IACf,MAAMgxG,aAAa,GAAG,KAAKK,kBAAL,CAAwBrxG,KAAxB,CAAtB;;IACA,KAAKmxG,QAAL,CAAcnxG,KAAd,CAAoB,OAApB,EAA6BA,KAA7B;;IACA,IAAIgxG,aAAJ,EAAmB;MACf,KAAKG,QAAL,CAAcnxG,KAAd,CAAoB,gBAApB,EAAsCgxG,aAAtC;IACH;EACJ;EACD;;;EACAK,kBAAkB,CAACrxG,KAAD,EAAQ;IACtB,IAAI+F,CAAC,GAAG/F,KAAK,IAAIixG,gBAAgB,CAACjxG,KAAD,CAAjC;;IACA,OAAO+F,CAAC,IAAIkrG,gBAAgB,CAAClrG,CAAD,CAA5B,EAAiC;MAC7BA,CAAC,GAAGkrG,gBAAgB,CAAClrG,CAAD,CAApB;IACH;;IACD,OAAOA,CAAC,IAAI,IAAZ;EACH;;AArBc;AAwBnB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMurG,kBAAkB,GAAG,4BAA3B;AACA;AACA;AACA;;AACA,MAAMC,iBAAiB,GAAG,OAA1B;AACA,MAAMC,yBAAyB,GAAG,gBAAlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,iBAAT,CAA2BvyG,KAA3B,EAAkC;EAC9B,OAAOA,KAAK,CAAC8jB,OAAN,CAAcsuF,kBAAd,EAAmCl0D,IAAD,IAAUA,IAAI,CAACp6B,OAAL,CAAauuF,iBAAb,EAAgCC,yBAAhC,CAA5C,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,yBAAT,CAAmCn+F,IAAnC,EAAyC;EACrC;EACAA,IAAI,GAAG4S,mBAAmB,CAAC5S,IAAI,CAACyP,OAAL,CAAa,OAAb,EAAsB,GAAtB,CAAD,CAA1B;EACA,OAAQ,cAAazP,IAAK,EAA1B;AACH;;AACD,MAAMo+F,iBAAiB,GAAG,UAA1B;;AACA,SAASxrF,mBAAT,CAA6B5c,KAA7B,EAAoC;EAChC,OAAOA,KAAK,CAACyZ,OAAN,CAAc2uF,iBAAd,EAAiC,CAAC,GAAGpqF,CAAJ,KAAU,MAAMA,CAAC,CAAC,CAAD,CAAD,CAAKC,WAAL,EAAjD,CAAP;AACH;;AACD,SAASoqF,0BAAT,CAAoC1yG,KAApC,EAA2C;EACvC,IAAI;IACA;IACA,OAAOA,KAAK,IAAI,IAAT,GAAgBA,KAAK,CAACyU,QAAN,GAAiB9K,KAAjB,CAAuB,CAAvB,EAA0B,EAA1B,CAAhB,GAAgD3J,KAAvD;EACH,CAHD,CAIA,OAAO6G,CAAP,EAAU;IACN,OAAO,uDAAP;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8rG,cAAc,GAAG,IAAI7yF,GAAJ,EAAvB,EACA;;AACA,IAAI8yF,eAAe,GAAG,CAAtB;AACA;;AACA,SAASC,gBAAT,GAA4B;EACxB,OAAOD,eAAe,EAAtB;AACH;AACD;;;AACA,SAASE,aAAT,CAAuB5wB,KAAvB,EAA8B;EAC1BjmE,SAAS,IAAIw5D,YAAY,CAACyM,KAAK,CAACb,EAAD,CAAN,EAAY,iDAAZ,CAAzB;EACAsxB,cAAc,CAAC/xF,GAAf,CAAmBshE,KAAK,CAACb,EAAD,CAAxB,EAA8Ba,KAA9B;AACH;AACD;;;AACA,SAAS6wB,YAAT,CAAsBt0F,EAAtB,EAA0B;EACtBxC,SAAS,IAAIw5D,YAAY,CAACh3D,EAAD,EAAK,2CAAL,CAAzB;EACA,OAAOk0F,cAAc,CAACvyF,GAAf,CAAmB3B,EAAnB,KAA0B,IAAjC;AACH;AACD;;;AACA,SAASu0F,eAAT,CAAyB9wB,KAAzB,EAAgC;EAC5BjmE,SAAS,IAAIw5D,YAAY,CAACyM,KAAK,CAACb,EAAD,CAAN,EAAY,wDAAZ,CAAzB;EACAsxB,cAAc,CAAC9jF,MAAf,CAAsBqzD,KAAK,CAACb,EAAD,CAA3B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4xB,QAAN,CAAe;EACXnzG,WAAW;EACX;AACJ;AACA;EACIozG,OAJW;EAKX;AACJ;AACA;EACIzsB,SARW;EASX;AACJ;AACA;EACIiJ,MAZW,EAYH;IACJ,KAAKwjB,OAAL,GAAeA,OAAf;IACA,KAAKzsB,SAAL,GAAiBA,SAAjB;IACA,KAAKiJ,MAAL,GAAcA,MAAd;EACH;EACD;;;EACS,IAALxN,KAAK,GAAG;IACR,OAAO6wB,YAAY,CAAC,KAAKG,OAAN,CAAnB;EACH;;AArBU;AAwBf;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,WAAT,CAAqBh9E,MAArB,EAA6B;EACzB,IAAIi9E,OAAO,GAAGC,eAAe,CAACl9E,MAAD,CAA7B;;EACA,IAAIi9E,OAAJ,EAAa;IACT;IACA;IACA,IAAI1xB,OAAO,CAAC0xB,OAAD,CAAX,EAAsB;MAClB,MAAMlxB,KAAK,GAAGkxB,OAAd;MACA,IAAI3sB,SAAJ;MACA,IAAIiZ,SAAS,GAAG9+F,SAAhB;MACA,IAAIw9E,UAAU,GAAGx9E,SAAjB;;MACA,IAAI0yG,mBAAmB,CAACn9E,MAAD,CAAvB,EAAiC;QAC7BswD,SAAS,GAAG8sB,gBAAgB,CAACrxB,KAAD,EAAQ/rD,MAAR,CAA5B;;QACA,IAAIswD,SAAS,IAAI,CAAC,CAAlB,EAAqB;UACjB,MAAM,IAAItzE,KAAJ,CAAU,yDAAV,CAAN;QACH;;QACDusF,SAAS,GAAGvpE,MAAZ;MACH,CAND,MAOK,IAAIq9E,mBAAmB,CAACr9E,MAAD,CAAvB,EAAiC;QAClCswD,SAAS,GAAGgtB,gBAAgB,CAACvxB,KAAD,EAAQ/rD,MAAR,CAA5B;;QACA,IAAIswD,SAAS,IAAI,CAAC,CAAlB,EAAqB;UACjB,MAAM,IAAItzE,KAAJ,CAAU,yDAAV,CAAN;QACH;;QACDirE,UAAU,GAAGs1B,wBAAwB,CAACjtB,SAAD,EAAYvE,KAAZ,EAAmB,KAAnB,CAArC;MACH,CANI,MAOA;QACDuE,SAAS,GAAGktB,oBAAoB,CAACzxB,KAAD,EAAQ/rD,MAAR,CAAhC;;QACA,IAAIswD,SAAS,IAAI,CAAC,CAAlB,EAAqB;UACjB,OAAO,IAAP;QACH;MACJ,CAxBiB,CAyBlB;MACA;MACA;MACA;;;MACA,MAAMiJ,MAAM,GAAG1J,WAAW,CAAC9D,KAAK,CAACuE,SAAD,CAAN,CAA1B;MACA,MAAMmtB,WAAW,GAAGP,eAAe,CAAC3jB,MAAD,CAAnC;MACA,MAAM9pF,OAAO,GAAIguG,WAAW,IAAI,CAAC9vG,KAAK,CAAC2C,OAAN,CAAcmtG,WAAd,CAAjB,GACZA,WADY,GAEZC,cAAc,CAAC3xB,KAAD,EAAQuE,SAAR,EAAmBiJ,MAAnB,CAFlB,CA/BkB,CAkClB;;MACA,IAAIgQ,SAAS,IAAI95F,OAAO,CAAC85F,SAAR,KAAsB9+F,SAAvC,EAAkD;QAC9CgF,OAAO,CAAC85F,SAAR,GAAoBA,SAApB;QACAoU,eAAe,CAACluG,OAAO,CAAC85F,SAAT,EAAoB95F,OAApB,CAAf;MACH,CAtCiB,CAuClB;;;MACA,IAAIw4E,UAAU,IAAIx4E,OAAO,CAACw4E,UAAR,KAAuBx9E,SAAzC,EAAoD;QAChDgF,OAAO,CAACw4E,UAAR,GAAqBA,UAArB;;QACA,KAAK,IAAI30E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG20E,UAAU,CAACn6E,MAA/B,EAAuCwF,CAAC,EAAxC,EAA4C;UACxCqqG,eAAe,CAAC11B,UAAU,CAAC30E,CAAD,CAAX,EAAgB7D,OAAhB,CAAf;QACH;MACJ;;MACDkuG,eAAe,CAACluG,OAAO,CAAC8pF,MAAT,EAAiB9pF,OAAjB,CAAf;MACAwtG,OAAO,GAAGxtG,OAAV;IACH;EACJ,CApDD,MAqDK;IACD,MAAMmuG,QAAQ,GAAG59E,MAAjB;IACAla,SAAS,IAAI46D,aAAa,CAACk9B,QAAD,CAA1B,CAFC,CAGD;IACA;;IACA,IAAIrtG,MAAM,GAAGqtG,QAAb;;IACA,OAAOrtG,MAAM,GAAGA,MAAM,CAAC0b,UAAvB,EAAmC;MAC/B,MAAM4S,aAAa,GAAGq+E,eAAe,CAAC3sG,MAAD,CAArC;;MACA,IAAIsuB,aAAJ,EAAmB;QACf,MAAMktD,KAAK,GAAGp+E,KAAK,CAAC2C,OAAN,CAAcuuB,aAAd,IAA+BA,aAA/B,GAA+CA,aAAa,CAACktD,KAA3E,CADe,CAEf;QACA;;QACA,IAAI,CAACA,KAAL,EAAY;UACR,OAAO,IAAP;QACH;;QACD,MAAM5zE,KAAK,GAAGqlG,oBAAoB,CAACzxB,KAAD,EAAQ6xB,QAAR,CAAlC;;QACA,IAAIzlG,KAAK,IAAI,CAAb,EAAgB;UACZ,MAAMohF,MAAM,GAAG1J,WAAW,CAAC9D,KAAK,CAAC5zE,KAAD,CAAN,CAA1B;UACA,MAAM1I,OAAO,GAAGiuG,cAAc,CAAC3xB,KAAD,EAAQ5zE,KAAR,EAAeohF,MAAf,CAA9B;UACAokB,eAAe,CAACpkB,MAAD,EAAS9pF,OAAT,CAAf;UACAwtG,OAAO,GAAGxtG,OAAV;UACA;QACH;MACJ;IACJ;EACJ;;EACD,OAAOwtG,OAAO,IAAI,IAAlB;AACH;AACD;AACA;AACA;;;AACA,SAASS,cAAT,CAAwB3xB,KAAxB,EAA+BuE,SAA/B,EAA0CiJ,MAA1C,EAAkD;EAC9C,OAAO,IAAIujB,QAAJ,CAAa/wB,KAAK,CAACb,EAAD,CAAlB,EAAwBoF,SAAxB,EAAmCiJ,MAAnC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASskB,0BAAT,CAAoCC,iBAApC,EAAuD;EACnD,IAAIC,WAAW,GAAGb,eAAe,CAACY,iBAAD,CAAjC;EACA,IAAI/xB,KAAJ;;EACA,IAAIR,OAAO,CAACwyB,WAAD,CAAX,EAA0B;IACtB,MAAM5rB,YAAY,GAAG4rB,WAArB;IACA,MAAMztB,SAAS,GAAG8sB,gBAAgB,CAACjrB,YAAD,EAAe2rB,iBAAf,CAAlC;IACA/xB,KAAK,GAAGsE,wBAAwB,CAACC,SAAD,EAAY6B,YAAZ,CAAhC;IACA,MAAM1iF,OAAO,GAAGiuG,cAAc,CAACvrB,YAAD,EAAe7B,SAAf,EAA0BvE,KAAK,CAACjC,IAAD,CAA/B,CAA9B;IACAr6E,OAAO,CAAC85F,SAAR,GAAoBuU,iBAApB;IACAH,eAAe,CAACG,iBAAD,EAAoBruG,OAApB,CAAf;IACAkuG,eAAe,CAACluG,OAAO,CAAC8pF,MAAT,EAAiB9pF,OAAjB,CAAf;EACH,CARD,MASK;IACD,MAAMA,OAAO,GAAGsuG,WAAhB;IACA,MAAM5rB,YAAY,GAAG1iF,OAAO,CAACs8E,KAA7B;IACAjmE,SAAS,IAAIgnE,WAAW,CAACqF,YAAD,CAAxB;IACApG,KAAK,GAAGsE,wBAAwB,CAAC5gF,OAAO,CAAC6gF,SAAT,EAAoB6B,YAApB,CAAhC;EACH;;EACD,OAAOpG,KAAP;AACH;AACD;AACA;AACA;;;AACA,MAAMiyB,qBAAqB,GAAG,eAA9B;AACA;AACA;AACA;AACA;;AACA,SAASL,eAAT,CAAyB39E,MAAzB,EAAiC7U,IAAjC,EAAuC;EACnCrF,SAAS,IAAI06D,aAAa,CAACxgD,MAAD,EAAS,iBAAT,CAA1B,CADmC,CAEnC;EACA;EACA;;EACA,IAAIurD,OAAO,CAACpgE,IAAD,CAAX,EAAmB;IACf6U,MAAM,CAACg+E,qBAAD,CAAN,GAAgC7yF,IAAI,CAAC+/D,EAAD,CAApC;IACAyxB,aAAa,CAACxxF,IAAD,CAAb;EACH,CAHD,MAIK;IACD6U,MAAM,CAACg+E,qBAAD,CAAN,GAAgC7yF,IAAhC;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAAS+xF,eAAT,CAAyBl9E,MAAzB,EAAiC;EAC7Bla,SAAS,IAAI06D,aAAa,CAACxgD,MAAD,EAAS,iBAAT,CAA1B;EACA,MAAM7U,IAAI,GAAG6U,MAAM,CAACg+E,qBAAD,CAAnB;EACA,OAAQ,OAAO7yF,IAAP,KAAgB,QAAjB,GAA6ByxF,YAAY,CAACzxF,IAAD,CAAzC,GAAkDA,IAAI,IAAI,IAAjE;AACH;;AACD,SAAS8yF,gBAAT,CAA0Bj+E,MAA1B,EAAkC;EAC9B,MAAMn2B,KAAK,GAAGqzG,eAAe,CAACl9E,MAAD,CAA7B;;EACA,IAAIn2B,KAAJ,EAAW;IACP,OAAQ0hF,OAAO,CAAC1hF,KAAD,CAAP,GAAiBA,KAAjB,GAAyBA,KAAK,CAACkiF,KAAvC;EACH;;EACD,OAAO,IAAP;AACH;;AACD,SAASoxB,mBAAT,CAA6B/9F,QAA7B,EAAuC;EACnC,OAAOA,QAAQ,IAAIA,QAAQ,CAACzV,WAArB,IAAoCyV,QAAQ,CAACzV,WAAT,CAAqB47E,IAAhE;AACH;;AACD,SAAS83B,mBAAT,CAA6Bj+F,QAA7B,EAAuC;EACnC,OAAOA,QAAQ,IAAIA,QAAQ,CAACzV,WAArB,IAAoCyV,QAAQ,CAACzV,WAAT,CAAqB2tD,IAAhE;AACH;AACD;AACA;AACA;;;AACA,SAASkmD,oBAAT,CAA8BzxB,KAA9B,EAAqC/rD,MAArC,EAA6C;EACzC,MAAM6jD,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB;;EACA,KAAK,IAAIz2E,CAAC,GAAG83E,aAAb,EAA4B93E,CAAC,GAAGuwE,KAAK,CAACyJ,iBAAtC,EAAyDh6E,CAAC,EAA1D,EAA8D;IAC1D,IAAIu8E,WAAW,CAAC9D,KAAK,CAACz4E,CAAD,CAAN,CAAX,KAA0B0sB,MAA9B,EAAsC;MAClC,OAAO1sB,CAAP;IACH;EACJ;;EACD,OAAO,CAAC,CAAR;AACH;AACD;AACA;AACA;;;AACA,SAAS4qG,mBAAT,CAA6Bt6B,KAA7B,EAAoC;EAChC,IAAIA,KAAK,CAACsR,KAAV,EAAiB;IACb,OAAOtR,KAAK,CAACsR,KAAb;EACH,CAFD,MAGK,IAAItR,KAAK,CAACz5E,IAAV,EAAgB;IACjB,OAAOy5E,KAAK,CAACz5E,IAAb;EACH,CAFI,MAGA;IACD;IACA;IACA;IACA,OAAOy5E,KAAK,CAACrzE,MAAN,IAAgB,CAACqzE,KAAK,CAACrzE,MAAN,CAAapG,IAArC,EAA2C;MACvCy5E,KAAK,GAAGA,KAAK,CAACrzE,MAAd;IACH;;IACD,OAAOqzE,KAAK,CAACrzE,MAAN,IAAgBqzE,KAAK,CAACrzE,MAAN,CAAapG,IAApC;EACH;AACJ;AACD;AACA;AACA;;;AACA,SAASizG,gBAAT,CAA0BrxB,KAA1B,EAAiC+xB,iBAAjC,EAAoD;EAChD,MAAMK,gBAAgB,GAAGpyB,KAAK,CAAChC,KAAD,CAAL,CAAaq0B,UAAtC;;EACA,IAAID,gBAAJ,EAAsB;IAClB,KAAK,IAAI7qG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6qG,gBAAgB,CAACrwG,MAArC,EAA6CwF,CAAC,EAA9C,EAAkD;MAC9C,MAAM+qG,qBAAqB,GAAGF,gBAAgB,CAAC7qG,CAAD,CAA9C;MACA,MAAMgrG,aAAa,GAAGjuB,wBAAwB,CAACguB,qBAAD,EAAwBtyB,KAAxB,CAA9C;;MACA,IAAIuyB,aAAa,CAACh0B,OAAD,CAAb,KAA2BwzB,iBAA/B,EAAkD;QAC9C,OAAOO,qBAAP;MACH;IACJ;EACJ,CARD,MASK;IACD,MAAME,iBAAiB,GAAGluB,wBAAwB,CAACjF,aAAD,EAAgBW,KAAhB,CAAlD;IACA,MAAMyyB,aAAa,GAAGD,iBAAiB,CAACj0B,OAAD,CAAvC;;IACA,IAAIk0B,aAAa,KAAKV,iBAAtB,EAAyC;MACrC;MACA;MACA,OAAO1yB,aAAP;IACH;EACJ;;EACD,OAAO,CAAC,CAAR;AACH;AACD;AACA;AACA;;;AACA,SAASkyB,gBAAT,CAA0BvxB,KAA1B,EAAiC0yB,iBAAjC,EAAoD;EAChD;EACA;EACA;EACA;EACA;EACA,IAAI76B,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAL,CAAagL,UAAzB;;EACA,OAAOnR,KAAP,EAAc;IACV,MAAM86B,mBAAmB,GAAG96B,KAAK,CAAC+S,cAAlC;IACA,MAAMgoB,iBAAiB,GAAG/6B,KAAK,CAACgT,YAAhC;;IACA,KAAK,IAAItjF,CAAC,GAAGorG,mBAAb,EAAkCprG,CAAC,GAAGqrG,iBAAtC,EAAyDrrG,CAAC,EAA1D,EAA8D;MAC1D,IAAIy4E,KAAK,CAACz4E,CAAD,CAAL,KAAamrG,iBAAjB,EAAoC;QAChC,OAAO76B,KAAK,CAACzrE,KAAb;MACH;IACJ;;IACDyrE,KAAK,GAAGs6B,mBAAmB,CAACt6B,KAAD,CAA3B;EACH;;EACD,OAAO,CAAC,CAAR;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS25B,wBAAT,CAAkCjtB,SAAlC,EAA6CvE,KAA7C,EAAoD6yB,iBAApD,EAAuE;EACnE,MAAMh7B,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAL,CAAa5+D,IAAb,CAAkBmlE,SAAlB,CAAd;EACA,IAAIuuB,mBAAmB,GAAGj7B,KAAK,CAAC+S,cAAhC;EACA,IAAIkoB,mBAAmB,IAAI,CAA3B,EACI,OAAOz5B,WAAP;EACJ,MAAM05B,iBAAiB,GAAGl7B,KAAK,CAACgT,YAAhC;EACA,IAAI,CAACgoB,iBAAD,IAAsBh7B,KAAK,CAAC/kB,KAAN,GAAc;EAAE;EAA1C,EACIggD,mBAAmB;EACvB,OAAO9yB,KAAK,CAACv4E,KAAN,CAAYqrG,mBAAZ,EAAiCC,iBAAjC,CAAP;AACH;;AACD,SAASC,uBAAT,CAAiCzuB,SAAjC,EAA4CvE,KAA5C,EAAmD;EAC/C,MAAMnI,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAL,CAAa5+D,IAAb,CAAkBmlE,SAAlB,CAAd;EACA,IAAIuuB,mBAAmB,GAAGj7B,KAAK,CAAC+S,cAAhC;EACA,OAAO/S,KAAK,CAAC/kB,KAAN,GAAc;EAAE;EAAhB,EAAmDktB,KAAK,CAAC8yB,mBAAD,CAAxD,GAAgF,IAAvF;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASG,iBAAT,CAA2BjzB,KAA3B,EAAkCuE,SAAlC,EAA6C;EACzC,MAAM1M,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAL,CAAa5+D,IAAb,CAAkBmlE,SAAlB,CAAd;;EACA,IAAI1M,KAAK,IAAIA,KAAK,CAACq7B,UAAnB,EAA+B;IAC3B,MAAMlsG,MAAM,GAAG,EAAf;IACA,IAAImsG,UAAU,GAAGt7B,KAAK,CAACzrE,KAAN,GAAc,CAA/B;;IACA,KAAK,IAAI7E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGswE,KAAK,CAACq7B,UAAN,CAAiBnxG,MAArC,EAA6CwF,CAAC,IAAI,CAAlD,EAAqD;MACjDP,MAAM,CAAC6wE,KAAK,CAACq7B,UAAN,CAAiB3rG,CAAjB,CAAD,CAAN,GAA8By4E,KAAK,CAACmzB,UAAD,CAAnC;MACAA,UAAU;IACb;;IACD,OAAOnsG,MAAP;EACH;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,SAASosG,eAAT,CAAyB11F,OAAzB,EAAkC;EAC9B,OAAOA,OAAO,CAAC21F,aAAR,CAAsBjiD,WAA7B;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASkiD,iBAAT,CAA2B51F,OAA3B,EAAoC;EAChC,OAAOA,OAAO,CAAC21F,aAAf;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASE,aAAT,CAAuB71F,OAAvB,EAAgC;EAC5B,OAAOA,OAAO,CAAC21F,aAAR,CAAsBhyF,IAA7B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmyF,uBAAuB,GAAI,GAAjC;AACA;AACA;AACA;;AACA,SAASC,aAAT,CAAuB31G,KAAvB,EAA8B;EAC1B,IAAIA,KAAK,YAAYoF,QAArB,EAA+B;IAC3B,OAAOpF,KAAK,EAAZ;EACH,CAFD,MAGK;IACD,OAAOA,KAAP;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,SAAS41G,6BAAT,CAAuCz+F,IAAvC,EAA6C;EACzC0+F,kBAAkB,CAAC1+F,IAAD,CAAlB;EACA,MAAMq6F,YAAY,GAAGlzB,eAAe,CAACnnE,IAAD,CAApC;;EACA,IAAI,CAACq6F,YAAY,CAAC9jD,UAAlB,EAA8B;IAC1B,MAAM,IAAI8mB,YAAJ,CAAiB;IAAI;IAArB,EAAqE,OAAMK,iBAAiB,CAAC19D,IAAD,CAAO,0CAA/B,GACrE,2DADqE,GAErE,wBAAuB09D,iBAAiB,CAAC19D,IAAD,CAAO,iBAFsB,GAGrE,iDAHC,CAAN;EAIH;AACJ;AACD;;;AACA,SAAS0+F,kBAAT,CAA4B1+F,IAA5B,EAAkC;EAC9B,IAAI,CAACmnE,eAAe,CAACnnE,IAAD,CAApB,EAA4B;IACxB,MAAM,IAAIq9D,YAAJ,CAAiB;IAAI;IAArB,EAAoE,OAAMK,iBAAiB,CAAC19D,IAAD,CAAO,gCAA/B,GACpE,gDADC,CAAN;EAEH;AACJ;AACD;;;AACA,SAAS2+F,2BAAT,CAAqC/7B,KAArC,EAA4CnrE,KAA5C,EAAmDmnG,MAAnD,EAA2D;EACvD,MAAM,IAAIvhC,YAAJ,CAAiB,CAAC;EAAI;EAAtB,EAAyE,+CAA8CuF,KAAK,CAAC/5E,KAAM,IAA3D,GACzE,GAAE60E,iBAAiB,CAACjmE,KAAD,CAAQ,OAD8C,GAEzE,GAAEimE,iBAAiB,CAACkhC,MAAD,CAAS,EAF3B,CAAN;AAGH;AACD;;;AACA,SAASC,yBAAT,CAAmCC,YAAnC,EAAiD9qE,QAAjD,EAA2D+qE,SAA3D,EAAsE/e,QAAtE,EAAgF;EAC5E,MAAMxf,KAAK,GAAGwf,QAAQ,GAAI,SAAQA,QAAS,GAArB,GAA0B,EAAhD;EACA,IAAIxhB,GAAG,GAAI,2GAA0GgC,KAAM,MAAKxsC,QAAS,sBAAqB+qE,SAAU,IAAxK;;EACA,IAAID,YAAJ,EAAkB;IACdtgC,GAAG,IACE,qGAAD,GACK,kDAFT;EAGH;;EACD,MAAM,IAAInB,YAAJ,CAAiB,CAAC;EAAI;EAAtB,EAA+EmB,GAA/E,CAAN;AACH;;AACD,SAASwgC,gCAAT,CAA0Cj0B,KAA1C,EAAiDk0B,SAAjD,EAA4DC,eAA5D,EAA6Ete,IAA7E,EAAmFue,YAAnF,EAAiG;EAC7F,MAAM,CAACnf,QAAD,EAAWof,MAAX,EAAmB,GAAGC,MAAtB,IAAgCze,IAAI,CAAChtE,KAAL,CAAW2qF,uBAAX,CAAtC;EACA,IAAIvqE,QAAQ,GAAGorE,MAAf;EAAA,IAAuB1jD,QAAQ,GAAG0jD,MAAlC;;EACA,KAAK,IAAI9sG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+sG,MAAM,CAACvyG,MAA3B,EAAmCwF,CAAC,EAApC,EAAwC;IACpC,MAAMgtG,OAAO,GAAGL,SAAS,GAAG3sG,CAA5B;IACA0hC,QAAQ,IAAK,GAAE+2C,KAAK,CAACu0B,OAAD,CAAU,GAAED,MAAM,CAAC/sG,CAAD,CAAI,EAA1C;IACAopD,QAAQ,IAAK,GAAE4jD,OAAO,KAAKJ,eAAZ,GAA8BC,YAA9B,GAA6Cp0B,KAAK,CAACu0B,OAAD,CAAU,GAAED,MAAM,CAAC/sG,CAAD,CAAI,EAAvF;EACH;;EACD,OAAO;IAAE0tF,QAAF;IAAYhsD,QAAZ;IAAsB0nB;EAAtB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6jD,gCAAT,CAA0Cx0B,KAA1C,EAAiDqH,YAAjD,EAA+Dp+C,QAA/D,EAAyE0nB,QAAzE,EAAmF;EAC/E,MAAMs3B,KAAK,GAAGjI,KAAK,CAAChC,KAAD,CAAL,CAAa5+D,IAA3B;EACA,MAAM2K,QAAQ,GAAGk+D,KAAK,CAACZ,YAAD,CAAtB;;EACA,IAAI,OAAOt9D,QAAP,KAAoB,QAAxB,EAAkC;IAC9B;IACA,IAAIA,QAAQ,CAAC7W,OAAT,CAAiBsgG,uBAAjB,IAA4C,CAAC,CAAjD,EAAoD;MAChD,OAAOS,gCAAgC,CAACj0B,KAAD,EAAQqH,YAAR,EAAsBA,YAAtB,EAAoCt9D,QAApC,EAA8C4mC,QAA9C,CAAvC;IACH,CAJ6B,CAK9B;;;IACA,OAAO;MAAEskC,QAAQ,EAAElrE,QAAZ;MAAsBkf,QAAtB;MAAgC0nB;IAAhC,CAAP;EACH,CAV8E,CAW/E;EACA;EACA;EACA;;;EACA,IAAI5mC,QAAQ,KAAK,IAAjB,EAAuB;IACnB,IAAI8+C,GAAG,GAAGwe,YAAY,GAAG,CAAzB;;IACA,OAAO,OAAOY,KAAK,CAACpf,GAAD,CAAZ,KAAsB,QAAtB,IAAkCof,KAAK,CAACpf,GAAG,GAAG,CAAP,CAAL,KAAmB,IAA5D,EAAkE;MAC9DA,GAAG;IACN;;IACD,MAAMgtB,IAAI,GAAG5N,KAAK,CAACpf,GAAD,CAAlB;;IACA,IAAI,OAAOgtB,IAAP,KAAgB,QAApB,EAA8B;MAC1B,MAAM1yE,OAAO,GAAG0yE,IAAI,CAACzyE,KAAL,CAAW,IAAIuC,MAAJ,CAAW6tF,uBAAX,EAAoC,GAApC,CAAX,CAAhB,CAD0B,CAE1B;MACA;;MACA,IAAIrwF,OAAO,IAAKA,OAAO,CAACphB,MAAR,GAAiB,CAAlB,GAAuBslF,YAAY,GAAGxe,GAArD,EAA0D;QACtD,OAAOorC,gCAAgC,CAACj0B,KAAD,EAAQnX,GAAR,EAAawe,YAAb,EAA2BwO,IAA3B,EAAiCllC,QAAjC,CAAvC;MACH;IACJ;EACJ;;EACD,OAAO;IAAEskC,QAAQ,EAAEv2F,SAAZ;IAAuBuqC,QAAvB;IAAiC0nB;EAAjC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,IAAIrhB,mBAAJ;;AACA,CAAC,UAAUA,mBAAV,EAA+B;EAC5B;EACA;EACA;;EACA;AACJ;AACA;EACIA,mBAAmB,CAACA,mBAAmB,CAAC,WAAD,CAAnB,GAAmC,CAApC,CAAnB,GAA4D,WAA5D;EACA;AACJ;AACA;;EACIA,mBAAmB,CAACA,mBAAmB,CAAC,UAAD,CAAnB,GAAkC,CAAnC,CAAnB,GAA2D,UAA3D;AACH,CAZD,EAYGA,mBAAmB,KAAKA,mBAAmB,GAAG,EAA3B,CAZtB;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAImlE,oBAAJ;AACA;AACA;AACA;;;AACA,SAASC,mBAAT,CAA6BC,iBAA7B,EAAgD30B,KAAhD,EAAuD;EACnD,OAAOy0B,oBAAoB,CAACE,iBAAD,EAAoB30B,KAApB,CAA3B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS40B,+BAAT,CAAyCC,MAAzC,EAAiD;EAC7C,IAAIJ,oBAAoB,KAAK/1G,SAA7B,EAAwC;IACpC;IACA;IACA+1G,oBAAoB,GAAGI,MAAM,EAA7B;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,cAAT,CAAwBh1B,KAAxB,EAA+B;EAC3BjmE,SAAS,IAAIgnE,WAAW,CAACf,KAAD,CAAxB;EACA,MAAMx7E,MAAM,GAAGw7E,KAAK,CAAC9B,MAAD,CAApB;EACA,OAAOuB,YAAY,CAACj7E,MAAD,CAAZ,GAAuBA,MAAM,CAAC05E,MAAD,CAA7B,GAAwC15E,MAA/C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASywG,WAAT,CAAqBC,gBAArB,EAAuC;EACnCn7F,SAAS,IAAI06D,aAAa,CAACygC,gBAAD,EAAmB,WAAnB,CAA1B;EACA,IAAIl1B,KAAK,GAAGR,OAAO,CAAC01B,gBAAD,CAAP,GAA4BA,gBAA5B,GAA+ChD,gBAAgB,CAACgD,gBAAD,CAA3E;;EACA,OAAOl1B,KAAK,IAAI,EAAEA,KAAK,CAAC/B,KAAD,CAAL,GAAe;EAAI;EAArB,CAAhB,EAA+D;IAC3D+B,KAAK,GAAGg1B,cAAc,CAACh1B,KAAD,CAAtB;EACH;;EACDjmE,SAAS,IAAIgnE,WAAW,CAACf,KAAD,CAAxB;EACA,OAAOA,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm1B,cAAT,CAAwBC,eAAxB,EAAyC;EACrC,MAAMC,QAAQ,GAAGJ,WAAW,CAACG,eAAD,CAA5B;EACAr7F,SAAS,IACL06D,aAAa,CAAC4gC,QAAQ,CAAC92B,OAAD,CAAT,EAAoB,uDAApB,CADjB;EAEA,OAAO82B,QAAQ,CAAC92B,OAAD,CAAf;AACH;AACD;AACA;AACA;;;AACA,SAAS+2B,kBAAT,CAA4Bt1B,KAA5B,EAAmC;EAC/B,OAAOu1B,oBAAoB,CAACv1B,KAAK,CAACpB,UAAD,CAAN,CAA3B;AACH;AACD;AACA;AACA;;;AACA,SAAS42B,iBAAT,CAA2BzM,SAA3B,EAAsC;EAClC,OAAOwM,oBAAoB,CAACxM,SAAS,CAAC5qB,IAAD,CAAV,CAA3B;AACH;;AACD,SAASo3B,oBAAT,CAA8BrwB,eAA9B,EAA+C;EAC3C,OAAOA,eAAe,KAAK,IAApB,IAA4B,CAACzF,YAAY,CAACyF,eAAD,CAAhD,EAAmE;IAC/DA,eAAe,GAAGA,eAAe,CAAC/G,IAAD,CAAjC;EACH;;EACD,OAAO+G,eAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMuwB,yBAAyB,GAAG33B,+BAA+B,GAAGmP,+BAAlC,GAAoE6nB,+BAApE,GAAsGC,+BAAtG,GAAwIx1B,+BAA1K;AACA;AACA;AACA;AACA;;AACA,SAASm2B,yBAAT,CAAmCh2F,MAAnC,EAA2CwgD,QAA3C,EAAqD17D,MAArD,EAA6DmxG,aAA7D,EAA4EC,UAA5E,EAAwF;EACpF;EACA;EACA;EACA;EACA,IAAID,aAAa,IAAI,IAArB,EAA2B;IACvB,IAAI3wB,UAAJ;IACA,IAAI6wB,WAAW,GAAG,KAAlB,CAFuB,CAGvB;IACA;IACA;;IACA,IAAIp2B,YAAY,CAACk2B,aAAD,CAAhB,EAAiC;MAC7B3wB,UAAU,GAAG2wB,aAAb;IACH,CAFD,MAGK,IAAIn2B,OAAO,CAACm2B,aAAD,CAAX,EAA4B;MAC7BE,WAAW,GAAG,IAAd;MACA97F,SAAS,IAAI06D,aAAa,CAACkhC,aAAa,CAAC53B,IAAD,CAAd,EAAsB,4CAAtB,CAA1B;MACA43B,aAAa,GAAGA,aAAa,CAAC53B,IAAD,CAA7B;IACH;;IACD,MAAM+3B,KAAK,GAAGhyB,WAAW,CAAC6xB,aAAD,CAAzB;;IACA,IAAIj2F,MAAM,KAAK;IAAE;IAAb,GAAiDlb,MAAM,KAAK,IAAhE,EAAsE;MAClE,IAAIoxG,UAAU,IAAI,IAAlB,EAAwB;QACpBG,iBAAiB,CAAC71C,QAAD,EAAW17D,MAAX,EAAmBsxG,KAAnB,CAAjB;MACH,CAFD,MAGK;QACDE,kBAAkB,CAAC91C,QAAD,EAAW17D,MAAX,EAAmBsxG,KAAnB,EAA0BF,UAAU,IAAI,IAAxC,EAA8C,IAA9C,CAAlB;MACH;IACJ,CAPD,MAQK,IAAIl2F,MAAM,KAAK;IAAE;IAAb,GAAiDlb,MAAM,KAAK,IAAhE,EAAsE;MACvEwxG,kBAAkB,CAAC91C,QAAD,EAAW17D,MAAX,EAAmBsxG,KAAnB,EAA0BF,UAAU,IAAI,IAAxC,EAA8C,IAA9C,CAAlB;IACH,CAFI,MAGA,IAAIl2F,MAAM,KAAK;IAAE;IAAjB,EAAmD;MACpDu2F,gBAAgB,CAAC/1C,QAAD,EAAW41C,KAAX,EAAkBD,WAAlB,CAAhB;IACH,CAFI,MAGA,IAAIn2F,MAAM,KAAK;IAAE;IAAjB,EAAoD;MACrD3F,SAAS,IAAIA,SAAS,CAAC6+D,mBAAV,EAAb;MACA1Y,QAAQ,CAACg2C,WAAT,CAAqBJ,KAArB;IACH;;IACD,IAAI9wB,UAAU,IAAI,IAAlB,EAAwB;MACpBmxB,cAAc,CAACj2C,QAAD,EAAWxgD,MAAX,EAAmBslE,UAAnB,EAA+BxgF,MAA/B,EAAuCoxG,UAAvC,CAAd;IACH;EACJ;AACJ;;AACD,SAASQ,cAAT,CAAwBl2C,QAAxB,EAAkCpiE,KAAlC,EAAyC;EACrCic,SAAS,IAAIA,SAAS,CAACg+D,sBAAV,EAAb;EACAh+D,SAAS,IAAIA,SAAS,CAACi+D,eAAV,EAAb;EACA,OAAO9X,QAAQ,CAACm2C,UAAT,CAAoBv4G,KAApB,CAAP;AACH;;AACD,SAASw4G,cAAT,CAAwBp2C,QAAxB,EAAkC41C,KAAlC,EAAyCh4G,KAAzC,EAAgD;EAC5Cic,SAAS,IAAIA,SAAS,CAACi+D,eAAV,EAAb;EACA9X,QAAQ,CAACq2C,QAAT,CAAkBT,KAAlB,EAAyBh4G,KAAzB;AACH;;AACD,SAAS04G,iBAAT,CAA2Bt2C,QAA3B,EAAqCpiE,KAArC,EAA4C;EACxCic,SAAS,IAAIA,SAAS,CAACk/D,qBAAV,EAAb;EACA,OAAO/Y,QAAQ,CAACu2C,aAAT,CAAuBpG,iBAAiB,CAACvyG,KAAD,CAAxC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS44G,iBAAT,CAA2Bx2C,QAA3B,EAAqC/tD,IAArC,EAA2C0xE,SAA3C,EAAsD;EAClD9pE,SAAS,IAAIA,SAAS,CAACk+D,qBAAV,EAAb;EACA,OAAO/X,QAAQ,CAAC4M,aAAT,CAAuB36D,IAAvB,EAA6B0xE,SAA7B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8yB,uBAAT,CAAiC7+B,KAAjC,EAAwCkI,KAAxC,EAA+C;EAC3C,MAAM9f,QAAQ,GAAG8f,KAAK,CAACtB,QAAD,CAAtB;EACAk4B,SAAS,CAAC9+B,KAAD,EAAQkI,KAAR,EAAe9f,QAAf,EAAyB;EAAE;EAA3B,EAA6D,IAA7D,EAAmE,IAAnE,CAAT;EACA8f,KAAK,CAACjC,IAAD,CAAL,GAAc,IAAd;EACAiC,KAAK,CAAC3B,MAAD,CAAL,GAAgB,IAAhB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw4B,kBAAT,CAA4B/+B,KAA5B,EAAmC0Q,WAAnC,EAAgDtoB,QAAhD,EAA0D8f,KAA1D,EAAiE82B,gBAAjE,EAAmFlB,UAAnF,EAA+F;EAC3F51B,KAAK,CAACjC,IAAD,CAAL,GAAc+4B,gBAAd;EACA92B,KAAK,CAAC3B,MAAD,CAAL,GAAgBmK,WAAhB;EACAouB,SAAS,CAAC9+B,KAAD,EAAQkI,KAAR,EAAe9f,QAAf,EAAyB;EAAE;EAA3B,EAA6D42C,gBAA7D,EAA+ElB,UAA/E,CAAT;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmB,gBAAT,CAA0Bj/B,KAA1B,EAAiCkI,KAAjC,EAAwC;EACpC42B,SAAS,CAAC9+B,KAAD,EAAQkI,KAAR,EAAeA,KAAK,CAACtB,QAAD,CAApB,EAAgC;EAAE;EAAlC,EAAoE,IAApE,EAA0E,IAA1E,CAAT;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASs4B,eAAT,CAAyB3B,QAAzB,EAAmC;EAC/B;EACA,IAAI4B,iBAAiB,GAAG5B,QAAQ,CAACz2B,UAAD,CAAhC;;EACA,IAAI,CAACq4B,iBAAL,EAAwB;IACpB,OAAOC,WAAW,CAAC7B,QAAQ,CAACr3B,KAAD,CAAT,EAAkBq3B,QAAlB,CAAlB;EACH;;EACD,OAAO4B,iBAAP,EAA0B;IACtB,IAAI74G,IAAI,GAAG,IAAX;;IACA,IAAIohF,OAAO,CAACy3B,iBAAD,CAAX,EAAgC;MAC5B;MACA74G,IAAI,GAAG64G,iBAAiB,CAACr4B,UAAD,CAAxB;IACH,CAHD,MAIK;MACD7kE,SAAS,IAAI8mE,gBAAgB,CAACo2B,iBAAD,CAA7B,CADC,CAED;;MACA,MAAME,SAAS,GAAGF,iBAAiB,CAACp5B,uBAAD,CAAnC;MACA,IAAIs5B,SAAJ,EACI/4G,IAAI,GAAG+4G,SAAP;IACP;;IACD,IAAI,CAAC/4G,IAAL,EAAW;MACP;MACA;MACA,OAAO64G,iBAAiB,IAAI,CAACA,iBAAiB,CAAC94B,IAAD,CAAvC,IAAiD84B,iBAAiB,KAAK5B,QAA9E,EAAwF;QACpF,IAAI71B,OAAO,CAACy3B,iBAAD,CAAX,EAAgC;UAC5BC,WAAW,CAACD,iBAAiB,CAACj5B,KAAD,CAAlB,EAA2Bi5B,iBAA3B,CAAX;QACH;;QACDA,iBAAiB,GAAGA,iBAAiB,CAAC/4B,MAAD,CAArC;MACH;;MACD,IAAI+4B,iBAAiB,KAAK,IAA1B,EACIA,iBAAiB,GAAG5B,QAApB;;MACJ,IAAI71B,OAAO,CAACy3B,iBAAD,CAAX,EAAgC;QAC5BC,WAAW,CAACD,iBAAiB,CAACj5B,KAAD,CAAlB,EAA2Bi5B,iBAA3B,CAAX;MACH;;MACD74G,IAAI,GAAG64G,iBAAiB,IAAIA,iBAAiB,CAAC94B,IAAD,CAA7C;IACH;;IACD84B,iBAAiB,GAAG74G,IAApB;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASg5G,UAAT,CAAoBt/B,KAApB,EAA2BkI,KAA3B,EAAkCgF,UAAlC,EAA8C54E,KAA9C,EAAqD;EACjD2N,SAAS,IAAIgnE,WAAW,CAACf,KAAD,CAAxB;EACAjmE,SAAS,IAAI8mE,gBAAgB,CAACmE,UAAD,CAA7B;EACA,MAAMqyB,gBAAgB,GAAGx5B,uBAAuB,GAAGzxE,KAAnD;EACA,MAAMkrG,eAAe,GAAGtyB,UAAU,CAACjjF,MAAnC;;EACA,IAAIqK,KAAK,GAAG,CAAZ,EAAe;IACX;IACA44E,UAAU,CAACqyB,gBAAgB,GAAG,CAApB,CAAV,CAAiCl5B,IAAjC,IAAyC6B,KAAzC;EACH;;EACD,IAAI5zE,KAAK,GAAGkrG,eAAe,GAAGz5B,uBAA9B,EAAuD;IACnDmC,KAAK,CAAC7B,IAAD,CAAL,GAAc6G,UAAU,CAACqyB,gBAAD,CAAxB;IACA5f,UAAU,CAACzS,UAAD,EAAanH,uBAAuB,GAAGzxE,KAAvC,EAA8C4zE,KAA9C,CAAV;EACH,CAHD,MAIK;IACDgF,UAAU,CAAC5iF,IAAX,CAAgB49E,KAAhB;IACAA,KAAK,CAAC7B,IAAD,CAAL,GAAc,IAAd;EACH;;EACD6B,KAAK,CAAC9B,MAAD,CAAL,GAAgB8G,UAAhB,CAjBiD,CAkBjD;;EACA,MAAMuyB,qBAAqB,GAAGv3B,KAAK,CAAChB,sBAAD,CAAnC;;EACA,IAAIu4B,qBAAqB,KAAK,IAA1B,IAAkCvyB,UAAU,KAAKuyB,qBAArD,EAA4E;IACxEC,cAAc,CAACD,qBAAD,EAAwBv3B,KAAxB,CAAd;EACH,CAtBgD,CAuBjD;;;EACA,MAAMy3B,QAAQ,GAAGz3B,KAAK,CAACd,OAAD,CAAtB;;EACA,IAAIu4B,QAAQ,KAAK,IAAjB,EAAuB;IACnBA,QAAQ,CAACL,UAAT,CAAoBt/B,KAApB;EACH,CA3BgD,CA4BjD;;;EACAkI,KAAK,CAAC/B,KAAD,CAAL,IAAgB;EAAG;EAAnB;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASu5B,cAAT,CAAwBE,oBAAxB,EAA8C13B,KAA9C,EAAqD;EACjDjmE,SAAS,IAAI06D,aAAa,CAACuL,KAAD,EAAQ,gBAAR,CAA1B;EACAjmE,SAAS,IAAI8mE,gBAAgB,CAAC62B,oBAAD,CAA7B;EACA,MAAMC,UAAU,GAAGD,oBAAoB,CAAC95B,WAAD,CAAvC;EACA,MAAMg6B,kBAAkB,GAAG53B,KAAK,CAAC9B,MAAD,CAAhC;EACAnkE,SAAS,IAAI8mE,gBAAgB,CAAC+2B,kBAAD,CAA7B;EACA,MAAMC,sBAAsB,GAAGD,kBAAkB,CAAC15B,MAAD,CAAlB,CAA2Ba,0BAA3B,CAA/B;EACAhlE,SAAS,IAAI06D,aAAa,CAACojC,sBAAD,EAAyB,gCAAzB,CAA1B;EACA,MAAMC,sBAAsB,GAAG93B,KAAK,CAACjB,0BAAD,CAApC;EACAhlE,SAAS,IAAI06D,aAAa,CAACqjC,sBAAD,EAAyB,gCAAzB,CAA1B;;EACA,IAAIA,sBAAsB,KAAKD,sBAA/B,EAAuD;IACnD;IACA;IACA;IACAH,oBAAoB,CAACj6B,sBAAD,CAApB,GAA+C,IAA/C;EACH;;EACD,IAAIk6B,UAAU,KAAK,IAAnB,EAAyB;IACrBD,oBAAoB,CAAC95B,WAAD,CAApB,GAAoC,CAACoC,KAAD,CAApC;EACH,CAFD,MAGK;IACD23B,UAAU,CAACv1G,IAAX,CAAgB49E,KAAhB;EACH;AACJ;;AACD,SAAS+3B,eAAT,CAAyBL,oBAAzB,EAA+C13B,KAA/C,EAAsD;EAClDjmE,SAAS,IAAI8mE,gBAAgB,CAAC62B,oBAAD,CAA7B;EACA39F,SAAS,IACL06D,aAAa,CAACijC,oBAAoB,CAAC95B,WAAD,CAArB,EAAoC,0EAApC,CADjB;EAEA,MAAM+5B,UAAU,GAAGD,oBAAoB,CAAC95B,WAAD,CAAvC;EACA,MAAMo6B,oBAAoB,GAAGL,UAAU,CAACzkG,OAAX,CAAmB8sE,KAAnB,CAA7B;EACA,MAAMi4B,mBAAmB,GAAGj4B,KAAK,CAAC9B,MAAD,CAAjC;EACAnkE,SAAS,IAAI8mE,gBAAgB,CAACo3B,mBAAD,CAA7B,CAPkD,CAQlD;EACA;EACA;;EACA,IAAIj4B,KAAK,CAAC/B,KAAD,CAAL,GAAe;EAAI;EAAvB,EAAiE;IAC7D+B,KAAK,CAAC/B,KAAD,CAAL,IAAgB,CAAC;IAAI;IAArB;IACA8G,2BAA2B,CAACkzB,mBAAD,EAAsB,CAAC,CAAvB,CAA3B;EACH;;EACDN,UAAU,CAACxkG,MAAX,CAAkB6kG,oBAAlB,EAAwC,CAAxC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,UAAT,CAAoBlzB,UAApB,EAAgCmzB,WAAhC,EAA6C;EACzC,IAAInzB,UAAU,CAACjjF,MAAX,IAAqB87E,uBAAzB,EACI;EACJ,MAAMw5B,gBAAgB,GAAGx5B,uBAAuB,GAAGs6B,WAAnD;EACA,MAAMC,YAAY,GAAGpzB,UAAU,CAACqyB,gBAAD,CAA/B;;EACA,IAAIe,YAAJ,EAAkB;IACd,MAAMb,qBAAqB,GAAGa,YAAY,CAACp5B,sBAAD,CAA1C;;IACA,IAAIu4B,qBAAqB,KAAK,IAA1B,IAAkCA,qBAAqB,KAAKvyB,UAAhE,EAA4E;MACxE+yB,eAAe,CAACR,qBAAD,EAAwBa,YAAxB,CAAf;IACH;;IACD,IAAID,WAAW,GAAG,CAAlB,EAAqB;MACjBnzB,UAAU,CAACqyB,gBAAgB,GAAG,CAApB,CAAV,CAAiCl5B,IAAjC,IAAyCi6B,YAAY,CAACj6B,IAAD,CAArD;IACH;;IACD,MAAMk6B,YAAY,GAAG3gB,eAAe,CAAC1S,UAAD,EAAanH,uBAAuB,GAAGs6B,WAAvC,CAApC;IACAxB,uBAAuB,CAACyB,YAAY,CAACp6B,KAAD,CAAb,EAAsBo6B,YAAtB,CAAvB,CATc,CAUd;;IACA,MAAMX,QAAQ,GAAGY,YAAY,CAACn5B,OAAD,CAA7B;;IACA,IAAIu4B,QAAQ,KAAK,IAAjB,EAAuB;MACnBA,QAAQ,CAACS,UAAT,CAAoBG,YAAY,CAACr6B,KAAD,CAAhC;IACH;;IACDo6B,YAAY,CAACl6B,MAAD,CAAZ,GAAuB,IAAvB;IACAk6B,YAAY,CAACj6B,IAAD,CAAZ,GAAqB,IAArB,CAhBc,CAiBd;;IACAi6B,YAAY,CAACn6B,KAAD,CAAZ,IAAuB,CAAC;IAAG;IAA3B;EACH;;EACD,OAAOm6B,YAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,YAAT,CAAsBxgC,KAAtB,EAA6BkI,KAA7B,EAAoC;EAChC,IAAI,EAAEA,KAAK,CAAC/B,KAAD,CAAL,GAAe;EAAI;EAArB,CAAJ,EAAsD;IAClD,MAAM/d,QAAQ,GAAG8f,KAAK,CAACtB,QAAD,CAAtB;;IACA,IAAIxe,QAAQ,CAACg2C,WAAb,EAA0B;MACtBU,SAAS,CAAC9+B,KAAD,EAAQkI,KAAR,EAAe9f,QAAf,EAAyB;MAAE;MAA3B,EAA8D,IAA9D,EAAoE,IAApE,CAAT;IACH;;IACD82C,eAAe,CAACh3B,KAAD,CAAf;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk3B,WAAT,CAAqBp/B,KAArB,EAA4BkI,KAA5B,EAAmC;EAC/B,IAAI,EAAEA,KAAK,CAAC/B,KAAD,CAAL,GAAe;EAAI;EAArB,CAAJ,EAAsD;IAClD;IACA;IACA+B,KAAK,CAAC/B,KAAD,CAAL,IAAgB,CAAC;IAAG;IAApB,CAHkD,CAIlD;IACA;IACA;IACA;IACA;;IACA+B,KAAK,CAAC/B,KAAD,CAAL,IAAgB;IAAI;IAApB;IACAs6B,iBAAiB,CAACzgC,KAAD,EAAQkI,KAAR,CAAjB;IACAw4B,eAAe,CAAC1gC,KAAD,EAAQkI,KAAR,CAAf,CAXkD,CAYlD;;IACA,IAAIA,KAAK,CAAChC,KAAD,CAAL,CAAa/oE,IAAb,KAAsB;IAAE;IAA5B,EAAuD;MACnD8E,SAAS,IAAIA,SAAS,CAAC4+D,eAAV,EAAb;MACAqH,KAAK,CAACtB,QAAD,CAAL,CAAgB7mE,OAAhB;IACH;;IACD,MAAM6/F,oBAAoB,GAAG13B,KAAK,CAAChB,sBAAD,CAAlC,CAjBkD,CAkBlD;;IACA,IAAI04B,oBAAoB,KAAK,IAAzB,IAAiCj4B,YAAY,CAACO,KAAK,CAAC9B,MAAD,CAAN,CAAjD,EAAkE;MAC9D;MACA,IAAIw5B,oBAAoB,KAAK13B,KAAK,CAAC9B,MAAD,CAAlC,EAA4C;QACxC65B,eAAe,CAACL,oBAAD,EAAuB13B,KAAvB,CAAf;MACH,CAJ6D,CAK9D;;;MACA,MAAMy3B,QAAQ,GAAGz3B,KAAK,CAACd,OAAD,CAAtB;;MACA,IAAIu4B,QAAQ,KAAK,IAAjB,EAAuB;QACnBA,QAAQ,CAACS,UAAT,CAAoBpgC,KAApB;MACH;IACJ,CA7BiD,CA8BlD;;;IACAg5B,eAAe,CAAC9wB,KAAD,CAAf;EACH;AACJ;AACD;;;AACA,SAASw4B,eAAT,CAAyB1gC,KAAzB,EAAgCkI,KAAhC,EAAuC;EACnC,MAAMy4B,QAAQ,GAAG3gC,KAAK,CAAC9K,OAAvB;EACA,MAAM0rC,QAAQ,GAAG14B,KAAK,CAAC1B,OAAD,CAAtB,CAFmC,CAGnC;EACA;EACA;;EACA,IAAIq6B,iBAAiB,GAAG,CAAC,CAAzB;;EACA,IAAIF,QAAQ,KAAK,IAAjB,EAAuB;IACnB,KAAK,IAAIlxG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkxG,QAAQ,CAAC12G,MAAT,GAAkB,CAAtC,EAAyCwF,CAAC,IAAI,CAA9C,EAAiD;MAC7C,IAAI,OAAOkxG,QAAQ,CAAClxG,CAAD,CAAf,KAAuB,QAA3B,EAAqC;QACjC;QACA,MAAMqxG,iBAAiB,GAAGH,QAAQ,CAAClxG,CAAC,GAAG,CAAL,CAAlC;QACA,MAAM0sB,MAAM,GAAG,OAAO2kF,iBAAP,KAA6B,UAA7B,GACXA,iBAAiB,CAAC54B,KAAD,CADN,GAEX8D,WAAW,CAAC9D,KAAK,CAAC44B,iBAAD,CAAN,CAFf;QAGA,MAAM34E,QAAQ,GAAGy4E,QAAQ,CAACC,iBAAiB,GAAGF,QAAQ,CAAClxG,CAAC,GAAG,CAAL,CAA7B,CAAzB;QACA,MAAMsxG,kBAAkB,GAAGJ,QAAQ,CAAClxG,CAAC,GAAG,CAAL,CAAnC;;QACA,IAAI,OAAOsxG,kBAAP,KAA8B,SAAlC,EAA6C;UACzC;UACA5kF,MAAM,CAAC0d,mBAAP,CAA2B8mE,QAAQ,CAAClxG,CAAD,CAAnC,EAAwC04B,QAAxC,EAAkD44E,kBAAlD;QACH,CAHD,MAIK;UACD,IAAIA,kBAAkB,IAAI,CAA1B,EAA6B;YACzB;YACAH,QAAQ,CAACC,iBAAiB,GAAGE,kBAArB,CAAR;UACH,CAHD,MAIK;YACD;YACAH,QAAQ,CAACC,iBAAiB,GAAG,CAACE,kBAAtB,CAAR,CAAkDn4G,WAAlD;UACH;QACJ;;QACD6G,CAAC,IAAI,CAAL;MACH,CAvBD,MAwBK;QACD;QACA,MAAM7D,OAAO,GAAGg1G,QAAQ,CAACC,iBAAiB,GAAGF,QAAQ,CAAClxG,CAAC,GAAG,CAAL,CAA7B,CAAxB;QACAkxG,QAAQ,CAAClxG,CAAD,CAAR,CAAYtH,IAAZ,CAAiByD,OAAjB;MACH;IACJ;EACJ;;EACD,IAAIg1G,QAAQ,KAAK,IAAjB,EAAuB;IACnB,KAAK,IAAInxG,CAAC,GAAGoxG,iBAAiB,GAAG,CAAjC,EAAoCpxG,CAAC,GAAGmxG,QAAQ,CAAC32G,MAAjD,EAAyDwF,CAAC,EAA1D,EAA8D;MAC1D,MAAMuxG,iBAAiB,GAAGJ,QAAQ,CAACnxG,CAAD,CAAlC;MACAwS,SAAS,IAAIi6D,cAAc,CAAC8kC,iBAAD,EAAoB,sCAApB,CAA3B;MACAA,iBAAiB;IACpB;;IACD94B,KAAK,CAAC1B,OAAD,CAAL,GAAiB,IAAjB;EACH;AACJ;AACD;;;AACA,SAASi6B,iBAAT,CAA2BzgC,KAA3B,EAAkCkI,KAAlC,EAAyC;EACrC,IAAIuL,YAAJ;;EACA,IAAIzT,KAAK,IAAI,IAAT,IAAiB,CAACyT,YAAY,GAAGzT,KAAK,CAACyT,YAAtB,KAAuC,IAA5D,EAAkE;IAC9D,KAAK,IAAIhkF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgkF,YAAY,CAACxpF,MAAjC,EAAyCwF,CAAC,IAAI,CAA9C,EAAiD;MAC7C,MAAM7D,OAAO,GAAGs8E,KAAK,CAACuL,YAAY,CAAChkF,CAAD,CAAb,CAArB,CAD6C,CAE7C;;MACA,IAAI,EAAE7D,OAAO,YAAY6oF,mBAArB,CAAJ,EAA+C;QAC3C,MAAMwsB,MAAM,GAAGxtB,YAAY,CAAChkF,CAAC,GAAG,CAAL,CAA3B;;QACA,IAAI3F,KAAK,CAAC2C,OAAN,CAAcw0G,MAAd,CAAJ,EAA2B;UACvB,KAAK,IAAI1xE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0xE,MAAM,CAACh3G,MAA3B,EAAmCslC,CAAC,IAAI,CAAxC,EAA2C;YACvC,MAAM2xE,WAAW,GAAGt1G,OAAO,CAACq1G,MAAM,CAAC1xE,CAAD,CAAP,CAA3B;YACA,MAAM4kD,IAAI,GAAG8sB,MAAM,CAAC1xE,CAAC,GAAG,CAAL,CAAnB;YACAi8C,QAAQ,CAAC;YAAE;YAAH,EAA2C01B,WAA3C,EAAwD/sB,IAAxD,CAAR;;YACA,IAAI;cACAA,IAAI,CAAChsF,IAAL,CAAU+4G,WAAV;YACH,CAFD,SAGQ;cACJ11B,QAAQ,CAAC;cAAE;cAAH,EAAyC01B,WAAzC,EAAsD/sB,IAAtD,CAAR;YACH;UACJ;QACJ,CAZD,MAaK;UACD3I,QAAQ,CAAC;UAAE;UAAH,EAA2C5/E,OAA3C,EAAoDq1G,MAApD,CAAR;;UACA,IAAI;YACAA,MAAM,CAAC94G,IAAP,CAAYyD,OAAZ;UACH,CAFD,SAGQ;YACJ4/E,QAAQ,CAAC;YAAE;YAAH,EAAyC5/E,OAAzC,EAAkDq1G,MAAlD,CAAR;UACH;QACJ;MACJ;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,iBAAT,CAA2BnhC,KAA3B,EAAkCD,KAAlC,EAAyCmI,KAAzC,EAAgD;EAC5C,OAAOk5B,kBAAkB,CAACphC,KAAD,EAAQD,KAAK,CAACrzE,MAAd,EAAsBw7E,KAAtB,CAAzB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk5B,kBAAT,CAA4BphC,KAA5B,EAAmCD,KAAnC,EAA0CmI,KAA1C,EAAiD;EAC7C,IAAIwI,WAAW,GAAG3Q,KAAlB,CAD6C,CAE7C;EACA;;EACA,OAAO2Q,WAAW,KAAK,IAAhB,IACFA,WAAW,CAACvzE,IAAZ,IAAoB;EAAE;EAAF,EAAqC;EAAG;EAA5D,CADL,EACwF;IACpF4iE,KAAK,GAAG2Q,WAAR;IACAA,WAAW,GAAG3Q,KAAK,CAACrzE,MAApB;EACH,CAR4C,CAS7C;EACA;;;EACA,IAAIgkF,WAAW,KAAK,IAApB,EAA0B;IACtB;IACA;IACA,OAAOxI,KAAK,CAACjC,IAAD,CAAZ;EACH,CAJD,MAKK;IACDhkE,SAAS,IAAIqzE,eAAe,CAAC5E,WAAD,EAAc;IAAE;IAAF,EAA6B;IAAE;IAA7C,CAA5B;;IACA,IAAIA,WAAW,CAAC11B,KAAZ,GAAoB;IAAE;IAA1B,EAA4D;MACxD/4C,SAAS,IAAIgmE,mBAAmB,CAACyI,WAAD,EAAcxI,KAAd,CAAhC;MACA,MAAMxE,aAAa,GAAG1D,KAAK,CAAC14D,IAAN,CAAWopE,WAAW,CAACoC,cAAvB,EAAuCpP,aAA7D,CAFwD,CAGxD;MACA;MACA;MACA;MACA;MACA;;MACA,IAAIA,aAAa,KAAKvE,mBAAmB,CAACkiC,IAAtC,IACA39B,aAAa,KAAKvE,mBAAmB,CAACwE,QAD1C,EACoD;QAChD,OAAO,IAAP;MACH;IACJ;;IACD,OAAOyI,gBAAgB,CAACsE,WAAD,EAAcxI,KAAd,CAAvB;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASg2B,kBAAT,CAA4B91C,QAA5B,EAAsC17D,MAAtC,EAA8C2kF,KAA9C,EAAqDysB,UAArD,EAAiEwD,MAAjE,EAAyE;EACrEr/F,SAAS,IAAIA,SAAS,CAACi/D,oBAAV,EAAb;EACA9Y,QAAQ,CAACn9B,YAAT,CAAsBv+B,MAAtB,EAA8B2kF,KAA9B,EAAqCysB,UAArC,EAAiDwD,MAAjD;AACH;;AACD,SAASrD,iBAAT,CAA2B71C,QAA3B,EAAqC17D,MAArC,EAA6C2kF,KAA7C,EAAoD;EAChDpvE,SAAS,IAAIA,SAAS,CAACg/D,mBAAV,EAAb;EACAh/D,SAAS,IAAI06D,aAAa,CAACjwE,MAAD,EAAS,6BAAT,CAA1B;EACA07D,QAAQ,CAACiN,WAAT,CAAqB3oE,MAArB,EAA6B2kF,KAA7B;AACH;;AACD,SAASkwB,0BAAT,CAAoCn5C,QAApC,EAA8C17D,MAA9C,EAAsD2kF,KAAtD,EAA6DysB,UAA7D,EAAyEwD,MAAzE,EAAiF;EAC7E,IAAIxD,UAAU,KAAK,IAAnB,EAAyB;IACrBI,kBAAkB,CAAC91C,QAAD,EAAW17D,MAAX,EAAmB2kF,KAAnB,EAA0BysB,UAA1B,EAAsCwD,MAAtC,CAAlB;EACH,CAFD,MAGK;IACDrD,iBAAiB,CAAC71C,QAAD,EAAW17D,MAAX,EAAmB2kF,KAAnB,CAAjB;EACH;AACJ;AACD;;;AACA,SAASmwB,iBAAT,CAA2Bp5C,QAA3B,EAAqC17D,MAArC,EAA6C2kF,KAA7C,EAAoDjmD,aAApD,EAAmE;EAC/Dg9B,QAAQ,CAAC+M,WAAT,CAAqBzoE,MAArB,EAA6B2kF,KAA7B,EAAoCjmD,aAApC;AACH;AACD;;;AACA,SAASq2E,cAAT,CAAwB1yF,IAAxB,EAA8B;EAC1B,OAAOA,IAAI,CAACo+E,OAAL,KAAiB,UAAjB,IAA+Bp+E,IAAI,CAACy/E,OAAL,KAAiB5nG,SAAvD;AACH;AACD;AACA;AACA;;;AACA,SAAS86G,gBAAT,CAA0Bt5C,QAA1B,EAAoCr5C,IAApC,EAA0C;EACtC,OAAOq5C,QAAQ,CAAChgD,UAAT,CAAoB2G,IAApB,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAAS4yF,iBAAT,CAA2Bv5C,QAA3B,EAAqCr5C,IAArC,EAA2C;EACvC,OAAOq5C,QAAQ,CAACkjC,WAAT,CAAqBv8E,IAArB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6yF,uBAAT,CAAiClxB,WAAjC,EAA8CjC,YAA9C,EAA4DvG,KAA5D,EAAmE;EAC/D,OAAO25B,gCAAgC,CAACnxB,WAAD,EAAcjC,YAAd,EAA4BvG,KAA5B,CAAvC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS45B,iCAAT,CAA2CpxB,WAA3C,EAAwDjC,YAAxD,EAAsEvG,KAAtE,EAA6E;EACzE,IAAIwI,WAAW,CAACvzE,IAAZ,IAAoB;EAAE;EAAF,EAAqC;EAAG;EAA5D,CAAJ,EAAsF;IAClF,OAAOivE,gBAAgB,CAACsE,WAAD,EAAcxI,KAAd,CAAvB;EACH;;EACD,OAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,IAAI25B,gCAAgC,GAAGC,iCAAvC;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,wBAAJ;;AACA,SAASC,eAAT,CAAyBC,+BAAzB,EAA0DC,uBAA1D,EAAmF;EAC/EL,gCAAgC,GAAGI,+BAAnC;EACAF,wBAAwB,GAAGG,uBAA3B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS7sC,WAAT,CAAqB2K,KAArB,EAA4BkI,KAA5B,EAAmCi6B,UAAnC,EAA+CC,UAA/C,EAA2D;EACvD,MAAMC,WAAW,GAAGlB,iBAAiB,CAACnhC,KAAD,EAAQoiC,UAAR,EAAoBl6B,KAApB,CAArC;EACA,MAAM9f,QAAQ,GAAG8f,KAAK,CAACtB,QAAD,CAAtB;EACA,MAAM8J,WAAW,GAAG0xB,UAAU,CAAC11G,MAAX,IAAqBw7E,KAAK,CAAC3B,MAAD,CAA9C;EACA,MAAM+7B,UAAU,GAAGV,uBAAuB,CAAClxB,WAAD,EAAc0xB,UAAd,EAA0Bl6B,KAA1B,CAA1C;;EACA,IAAIm6B,WAAW,IAAI,IAAnB,EAAyB;IACrB,IAAIv4G,KAAK,CAAC2C,OAAN,CAAc01G,UAAd,CAAJ,EAA+B;MAC3B,KAAK,IAAI1yG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0yG,UAAU,CAACl4G,MAA/B,EAAuCwF,CAAC,EAAxC,EAA4C;QACxC8xG,0BAA0B,CAACn5C,QAAD,EAAWi6C,WAAX,EAAwBF,UAAU,CAAC1yG,CAAD,CAAlC,EAAuC6yG,UAAvC,EAAmD,KAAnD,CAA1B;MACH;IACJ,CAJD,MAKK;MACDf,0BAA0B,CAACn5C,QAAD,EAAWi6C,WAAX,EAAwBF,UAAxB,EAAoCG,UAApC,EAAgD,KAAhD,CAA1B;IACH;EACJ;;EACDP,wBAAwB,KAAKn7G,SAA7B,IACIm7G,wBAAwB,CAAC35C,QAAD,EAAWg6C,UAAX,EAAuBl6B,KAAvB,EAA8Bi6B,UAA9B,EAA0CE,WAA1C,CAD5B;AAEH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASE,kBAAT,CAA4Br6B,KAA5B,EAAmCnI,KAAnC,EAA0C;EACtC,IAAIA,KAAK,KAAK,IAAd,EAAoB;IAChB99D,SAAS,IACLqzE,eAAe,CAACvV,KAAD,EAAQ;IAAE;IAAF,EAA6B;IAAG;IAAhC,EAA+D;IAAG;IAAlE,EAAwF;IAAG;IAAnG,CADnB;IAEA,MAAMmV,SAAS,GAAGnV,KAAK,CAAC5iE,IAAxB;;IACA,IAAI+3E,SAAS,GAAG;IAAE;IAAlB,EAA4C;MACxC,OAAO9I,gBAAgB,CAACrM,KAAD,EAAQmI,KAAR,CAAvB;IACH,CAFD,MAGK,IAAIgN,SAAS,GAAG;IAAE;IAAlB,EAA6C;MAC9C,OAAOstB,oBAAoB,CAAC,CAAC,CAAF,EAAKt6B,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAAV,CAA3B;IACH,CAFI,MAGA,IAAI4gF,SAAS,GAAG;IAAE;IAAlB,EAAoD;MACrD,MAAMutB,mBAAmB,GAAG1iC,KAAK,CAACsR,KAAlC;;MACA,IAAIoxB,mBAAmB,KAAK,IAA5B,EAAkC;QAC9B,OAAOF,kBAAkB,CAACr6B,KAAD,EAAQu6B,mBAAR,CAAzB;MACH,CAFD,MAGK;QACD,MAAMC,iBAAiB,GAAGx6B,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAA/B;;QACA,IAAIqzE,YAAY,CAAC+6B,iBAAD,CAAhB,EAAqC;UACjC,OAAOF,oBAAoB,CAAC,CAAC,CAAF,EAAKE,iBAAL,CAA3B;QACH,CAFD,MAGK;UACD,OAAO12B,WAAW,CAAC02B,iBAAD,CAAlB;QACH;MACJ;IACJ,CAdI,MAeA,IAAIxtB,SAAS,GAAG;IAAG;IAAnB,EAAwC;MACzC,IAAIytB,SAAS,GAAG/F,mBAAmB,CAAC78B,KAAD,EAAQmI,KAAR,CAAnC;MACA,IAAI81B,KAAK,GAAG2E,SAAS,EAArB,CAFyC,CAGzC;;MACA,OAAO3E,KAAK,IAAIhyB,WAAW,CAAC9D,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAAN,CAA3B;IACH,CALI,MAMA;MACD,MAAMsuG,eAAe,GAAGC,kBAAkB,CAAC36B,KAAD,EAAQnI,KAAR,CAA1C;;MACA,IAAI6iC,eAAe,KAAK,IAAxB,EAA8B;QAC1B,IAAI94G,KAAK,CAAC2C,OAAN,CAAcm2G,eAAd,CAAJ,EAAoC;UAChC,OAAOA,eAAe,CAAC,CAAD,CAAtB;QACH;;QACD,MAAM3rB,UAAU,GAAGimB,cAAc,CAACh1B,KAAK,CAACjB,0BAAD,CAAN,CAAjC;QACAhlE,SAAS,IAAIgoE,gBAAgB,CAACgN,UAAD,CAA7B;QACA,OAAOsrB,kBAAkB,CAACtrB,UAAD,EAAa2rB,eAAb,CAAzB;MACH,CAPD,MAQK;QACD,OAAOL,kBAAkB,CAACr6B,KAAD,EAAQnI,KAAK,CAACz5E,IAAd,CAAzB;MACH;IACJ;EACJ;;EACD,OAAO,IAAP;AACH;;AACD,SAASu8G,kBAAT,CAA4B36B,KAA5B,EAAmCnI,KAAnC,EAA0C;EACtC,IAAIA,KAAK,KAAK,IAAd,EAAoB;IAChB,MAAM06B,aAAa,GAAGvyB,KAAK,CAACjB,0BAAD,CAA3B;IACA,MAAM67B,aAAa,GAAGrI,aAAa,CAACl0B,MAAD,CAAnC;IACA,MAAMk2B,OAAO,GAAG18B,KAAK,CAACiK,UAAtB;IACA/nE,SAAS,IAAI8nE,qBAAqB,CAAC7B,KAAD,CAAlC;IACA,OAAO46B,aAAa,CAAC94B,UAAd,CAAyByyB,OAAzB,CAAP;EACH;;EACD,OAAO,IAAP;AACH;;AACD,SAAS+F,oBAAT,CAA8BO,oBAA9B,EAAoD71B,UAApD,EAAgE;EAC5D,MAAM81B,aAAa,GAAGj9B,uBAAuB,GAAGg9B,oBAA1B,GAAiD,CAAvE;;EACA,IAAIC,aAAa,GAAG91B,UAAU,CAACjjF,MAA/B,EAAuC;IACnC,MAAMi+E,KAAK,GAAGgF,UAAU,CAAC81B,aAAD,CAAxB;IACA,MAAMC,gBAAgB,GAAG/6B,KAAK,CAAChC,KAAD,CAAL,CAAagL,UAAtC;;IACA,IAAI+xB,gBAAgB,KAAK,IAAzB,EAA+B;MAC3B,OAAOV,kBAAkB,CAACr6B,KAAD,EAAQ+6B,gBAAR,CAAzB;IACH;EACJ;;EACD,OAAO/1B,UAAU,CAACtH,MAAD,CAAjB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu4B,gBAAT,CAA0B/1C,QAA1B,EAAoC41C,KAApC,EAA2C5yE,aAA3C,EAA0D;EACtDnpB,SAAS,IAAIA,SAAS,CAAC++D,kBAAV,EAAb;EACA,MAAMkiC,YAAY,GAAGxB,gBAAgB,CAACt5C,QAAD,EAAW41C,KAAX,CAArC;;EACA,IAAIkF,YAAJ,EAAkB;IACd1B,iBAAiB,CAACp5C,QAAD,EAAW86C,YAAX,EAAyBlF,KAAzB,EAAgC5yE,aAAhC,CAAjB;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAAS+3E,UAAT,CAAoB/6C,QAApB,EAA8BxgD,MAA9B,EAAsCm4D,KAAtC,EAA6CmI,KAA7C,EAAoDk7B,cAApD,EAAoEtF,UAApE,EAAgFuF,YAAhF,EAA8F;EAC1F,OAAOtjC,KAAK,IAAI,IAAhB,EAAsB;IAClB99D,SAAS,IAAIgmE,mBAAmB,CAAClI,KAAD,EAAQmI,KAAR,CAAhC;IACAjmE,SAAS,IACLqzE,eAAe,CAACvV,KAAD,EAAQ;IAAE;IAAF,EAA6B;IAAG;IAAhC,EAA+D;IAAG;IAAlE,EAA+F;IAAG;IAA1G,CADnB;IAEA,MAAMujC,YAAY,GAAGp7B,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAA1B;IACA,MAAM4gF,SAAS,GAAGnV,KAAK,CAAC5iE,IAAxB;;IACA,IAAIkmG,YAAJ,EAAkB;MACd,IAAIz7F,MAAM,KAAK;MAAE;MAAjB,EAAmD;QAC/C07F,YAAY,IAAIxJ,eAAe,CAAC9tB,WAAW,CAACs3B,YAAD,CAAZ,EAA4Bp7B,KAA5B,CAA/B;QACAnI,KAAK,CAAC/kB,KAAN,IAAe;QAAE;QAAjB;MACH;IACJ;;IACD,IAAI,CAAC+kB,KAAK,CAAC/kB,KAAN,GAAc;IAAG;IAAlB,MAAmD;IAAG;IAA1D,EAAuF;MACnF,IAAIk6B,SAAS,GAAG;MAAE;MAAlB,EAAoD;QAChDiuB,UAAU,CAAC/6C,QAAD,EAAWxgD,MAAX,EAAmBm4D,KAAK,CAACsR,KAAzB,EAAgCnJ,KAAhC,EAAuCk7B,cAAvC,EAAuDtF,UAAvD,EAAmE,KAAnE,CAAV;QACAF,yBAAyB,CAACh2F,MAAD,EAASwgD,QAAT,EAAmBg7C,cAAnB,EAAmCE,YAAnC,EAAiDxF,UAAjD,CAAzB;MACH,CAHD,MAIK,IAAI5oB,SAAS,GAAG;MAAG;MAAnB,EAAwC;QACzC,MAAMytB,SAAS,GAAG/F,mBAAmB,CAAC78B,KAAD,EAAQmI,KAAR,CAArC;QACA,IAAI81B,KAAJ;;QACA,OAAOA,KAAK,GAAG2E,SAAS,EAAxB,EAA4B;UACxB/E,yBAAyB,CAACh2F,MAAD,EAASwgD,QAAT,EAAmBg7C,cAAnB,EAAmCpF,KAAnC,EAA0CF,UAA1C,CAAzB;QACH;;QACDF,yBAAyB,CAACh2F,MAAD,EAASwgD,QAAT,EAAmBg7C,cAAnB,EAAmCE,YAAnC,EAAiDxF,UAAjD,CAAzB;MACH,CAPI,MAQA,IAAI5oB,SAAS,GAAG;MAAG;MAAnB,EAA+C;QAChDquB,wBAAwB,CAACn7C,QAAD,EAAWxgD,MAAX,EAAmBsgE,KAAnB,EAA0BnI,KAA1B,EAAiCqjC,cAAjC,EAAiDtF,UAAjD,CAAxB;MACH,CAFI,MAGA;QACD77F,SAAS,IAAIqzE,eAAe,CAACvV,KAAD,EAAQ;QAAE;QAAF,EAA6B;QAAE;QAAvC,CAA5B;QACA69B,yBAAyB,CAACh2F,MAAD,EAASwgD,QAAT,EAAmBg7C,cAAnB,EAAmCE,YAAnC,EAAiDxF,UAAjD,CAAzB;MACH;IACJ;;IACD/9B,KAAK,GAAGsjC,YAAY,GAAGtjC,KAAK,CAACyjC,cAAT,GAA0BzjC,KAAK,CAACz5E,IAApD;EACH;AACJ;;AACD,SAASw4G,SAAT,CAAmB9+B,KAAnB,EAA0BkI,KAA1B,EAAiC9f,QAAjC,EAA2CxgD,MAA3C,EAAmDw7F,cAAnD,EAAmEtF,UAAnE,EAA+E;EAC3EqF,UAAU,CAAC/6C,QAAD,EAAWxgD,MAAX,EAAmBo4D,KAAK,CAACkR,UAAzB,EAAqChJ,KAArC,EAA4Ck7B,cAA5C,EAA4DtF,UAA5D,EAAwE,KAAxE,CAAV;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2F,eAAT,CAAyBzjC,KAAzB,EAAgCkI,KAAhC,EAAuCw7B,eAAvC,EAAwD;EACpD,MAAMt7C,QAAQ,GAAG8f,KAAK,CAACtB,QAAD,CAAtB;EACA,MAAMy7B,WAAW,GAAGlB,iBAAiB,CAACnhC,KAAD,EAAQ0jC,eAAR,EAAyBx7B,KAAzB,CAArC;EACA,MAAMwI,WAAW,GAAGgzB,eAAe,CAACh3G,MAAhB,IAA0Bw7E,KAAK,CAAC3B,MAAD,CAAnD;EACA,IAAIu3B,UAAU,GAAG8D,uBAAuB,CAAClxB,WAAD,EAAcgzB,eAAd,EAA+Bx7B,KAA/B,CAAxC;EACAq7B,wBAAwB,CAACn7C,QAAD,EAAW;EAAE;EAAb,EAA+C8f,KAA/C,EAAsDw7B,eAAtD,EAAuErB,WAAvE,EAAoFvE,UAApF,CAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyF,wBAAT,CAAkCn7C,QAAlC,EAA4CxgD,MAA5C,EAAoDsgE,KAApD,EAA2Dw7B,eAA3D,EAA4EN,cAA5E,EAA4FtF,UAA5F,EAAwG;EACpG,MAAM6F,cAAc,GAAGz7B,KAAK,CAACjB,0BAAD,CAA5B;EACA,MAAM28B,aAAa,GAAGD,cAAc,CAACp9B,MAAD,CAApC;EACAtkE,SAAS,IACLk6D,WAAW,CAAC,OAAOunC,eAAe,CAAC15B,UAAxB,EAAoC,QAApC,EAA8C,4BAA9C,CADf;EAEA,MAAM65B,qBAAqB,GAAGD,aAAa,CAAC55B,UAAd,CAAyB05B,eAAe,CAAC15B,UAAzC,CAA9B;;EACA,IAAIlgF,KAAK,CAAC2C,OAAN,CAAco3G,qBAAd,CAAJ,EAA0C;IACtC;IACA;IACA;IACA;IACA;IACA,KAAK,IAAIp0G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGo0G,qBAAqB,CAAC55G,MAA1C,EAAkDwF,CAAC,EAAnD,EAAuD;MACnD,MAAMuuG,KAAK,GAAG6F,qBAAqB,CAACp0G,CAAD,CAAnC;MACAmuG,yBAAyB,CAACh2F,MAAD,EAASwgD,QAAT,EAAmBg7C,cAAnB,EAAmCpF,KAAnC,EAA0CF,UAA1C,CAAzB;IACH;EACJ,CAVD,MAWK;IACD,IAAIgG,aAAa,GAAGD,qBAApB;IACA,MAAME,uBAAuB,GAAGJ,cAAc,CAACv9B,MAAD,CAA9C;IACA+8B,UAAU,CAAC/6C,QAAD,EAAWxgD,MAAX,EAAmBk8F,aAAnB,EAAkCC,uBAAlC,EAA2DX,cAA3D,EAA2EtF,UAA3E,EAAuF,IAAvF,CAAV;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,cAAT,CAAwBj2C,QAAxB,EAAkCxgD,MAAlC,EAA0CslE,UAA1C,EAAsDk2B,cAAtD,EAAsEtF,UAAtE,EAAkF;EAC9E77F,SAAS,IAAI8mE,gBAAgB,CAACmE,UAAD,CAA7B;EACA,MAAMlqB,MAAM,GAAGkqB,UAAU,CAACtH,MAAD,CAAzB,CAF8E,CAE3C;;EACnC,MAAM8P,MAAM,GAAG1J,WAAW,CAACkB,UAAD,CAA1B,CAH8E,CAI9E;EACA;EACA;EACA;EACA;EACA;;EACA,IAAIlqB,MAAM,KAAK0yB,MAAf,EAAuB;IACnB;IACA;IACA;IACA;IACAkoB,yBAAyB,CAACh2F,MAAD,EAASwgD,QAAT,EAAmBg7C,cAAnB,EAAmCpgD,MAAnC,EAA2C86C,UAA3C,CAAzB;EACH;;EACD,KAAK,IAAIruG,CAAC,GAAGs2E,uBAAb,EAAsCt2E,CAAC,GAAGy9E,UAAU,CAACjjF,MAArD,EAA6DwF,CAAC,EAA9D,EAAkE;IAC9D,MAAMy4E,KAAK,GAAGgF,UAAU,CAACz9E,CAAD,CAAxB;IACAqvG,SAAS,CAAC52B,KAAK,CAAChC,KAAD,CAAN,EAAegC,KAAf,EAAsB9f,QAAtB,EAAgCxgD,MAAhC,EAAwCw7F,cAAxC,EAAwDpgD,MAAxD,CAAT;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASghD,YAAT,CAAsB57C,QAAtB,EAAgC67C,YAAhC,EAA8CjG,KAA9C,EAAqD96F,IAArD,EAA2Dld,KAA3D,EAAkE;EAC9D,IAAIi+G,YAAJ,EAAkB;IACd;IACA,IAAI,CAACj+G,KAAL,EAAY;MACRic,SAAS,IAAIA,SAAS,CAACy+D,mBAAV,EAAb;MACAtY,QAAQ,CAACnhC,WAAT,CAAqB+2E,KAArB,EAA4B96F,IAA5B;IACH,CAHD,MAIK;MACDjB,SAAS,IAAIA,SAAS,CAACw+D,gBAAV,EAAb;MACArY,QAAQ,CAACniC,QAAT,CAAkB+3E,KAAlB,EAAyB96F,IAAzB;IACH;EACJ,CAVD,MAWK;IACD,IAAI83C,KAAK,GAAG93C,IAAI,CAAC9H,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAvB,GAA2BxU,SAA3B,GAAuC4wC,mBAAmB,CAACyjB,QAAvE;;IACA,IAAIj1D,KAAK,IAAI;IAAK;IAAlB,EAAiD;MAC7Cic,SAAS,IAAIA,SAAS,CAAC2+D,mBAAV,EAAb;MACAxY,QAAQ,CAACjN,WAAT,CAAqB6iD,KAArB,EAA4B96F,IAA5B,EAAkC83C,KAAlC;IACH,CAHD,MAIK;MACD;MACA;MACA,MAAMkpD,WAAW,GAAG,OAAOl+G,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACq1C,QAAN,CAAe,YAAf,CAA5B,GAA2D,KAA/E;;MACA,IAAI6oE,WAAJ,EAAiB;QACb;QACAl+G,KAAK,GAAGA,KAAK,CAAC2J,KAAN,CAAY,CAAZ,EAAe,CAAC,EAAhB,CAAR;QACAqrD,KAAK,IAAIxjB,mBAAmB,CAAC2sE,SAA7B;MACH;;MACDliG,SAAS,IAAIA,SAAS,CAAC0+D,gBAAV,EAAb;MACAvY,QAAQ,CAAClN,QAAT,CAAkB8iD,KAAlB,EAAyB96F,IAAzB,EAA+Bld,KAA/B,EAAsCg1D,KAAtC;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASopD,gBAAT,CAA0Bh8C,QAA1B,EAAoCxiD,OAApC,EAA6CizC,QAA7C,EAAuD;EACnD52C,SAAS,IAAIg6D,YAAY,CAACpjB,QAAD,EAAW,iCAAX,CAAzB;EACAuP,QAAQ,CAACl7C,YAAT,CAAsBtH,OAAtB,EAA+B,OAA/B,EAAwCizC,QAAxC;EACA52C,SAAS,IAAIA,SAAS,CAAC0+D,gBAAV,EAAb;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0jC,gBAAT,CAA0Bj8C,QAA1B,EAAoCxiD,OAApC,EAA6CizC,QAA7C,EAAuD;EACnD52C,SAAS,IAAIg6D,YAAY,CAACpjB,QAAD,EAAW,iCAAX,CAAzB;;EACA,IAAIA,QAAQ,KAAK,EAAjB,EAAqB;IACjB;IACAuP,QAAQ,CAAC+iC,eAAT,CAAyBvlF,OAAzB,EAAkC,OAAlC;EACH,CAHD,MAIK;IACDwiD,QAAQ,CAACl7C,YAAT,CAAsBtH,OAAtB,EAA+B,OAA/B,EAAwCizC,QAAxC;EACH;;EACD52C,SAAS,IAAIA,SAAS,CAACu+D,oBAAV,EAAb;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8jC,YAAT,CAAsBv3E,SAAtB,EAAiCw3E,aAAjC,EAAgD9pB,aAAhD,EAA+D;EAC3Dx4E,SAAS,IAAIo6D,cAAc,CAACkoC,aAAD,EAAgB,EAAhB,EAAoB,6BAApB,CAA3B;EACA,IAAIppE,GAAG,GAAGpO,SAAS,CAAC9iC,MAApB;;EACA,OAAO,IAAP,EAAa;IACT,MAAMu6G,UAAU,GAAGz3E,SAAS,CAAC3xB,OAAV,CAAkBmpG,aAAlB,EAAiC9pB,aAAjC,CAAnB;IACA,IAAI+pB,UAAU,KAAK,CAAC,CAApB,EACI,OAAOA,UAAP;;IACJ,IAAIA,UAAU,KAAK,CAAf,IAAoBz3E,SAAS,CAACmpD,UAAV,CAAqBsuB,UAAU,GAAG,CAAlC,KAAwC;IAAG;IAAnE,EAAyF;MACrF;MACA,MAAMv6G,MAAM,GAAGs6G,aAAa,CAACt6G,MAA7B;;MACA,IAAIu6G,UAAU,GAAGv6G,MAAb,KAAwBkxC,GAAxB,IACApO,SAAS,CAACmpD,UAAV,CAAqBsuB,UAAU,GAAGv6G,MAAlC,KAA6C;MAAG;MADpD,EAC0E;QACtE;QACA,OAAOu6G,UAAP;MACH;IACJ,CAZQ,CAaT;;;IACA/pB,aAAa,GAAG+pB,UAAU,GAAG,CAA7B;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,yBAAyB,GAAGtvB,+BAA+B,GAAG6nB,+BAApE;AACA,MAAM0H,oBAAoB,GAAG,aAA7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,kBAAT,CAA4BhvB,KAA5B,EAAmCivB,eAAnC,EAAoDC,gBAApD,EAAsE;EAClE;EACA;EACA;EACA;EACA5iG,SAAS,IACLk6D,WAAW,CAACyoC,eAAD,EAAkBA,eAAe,CAACt2F,WAAhB,EAAlB,EAAiD,sCAAjD,CADf;EAEA,IAAI7e,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGkmF,KAAK,CAAC1rF,MAAjB,EAAyB;IACrB,IAAIkR,IAAI,GAAGw6E,KAAK,CAAClmF,CAAC,EAAF,CAAhB;;IACA,IAAIo1G,gBAAgB,IAAI1pG,IAAI,KAAK,OAAjC,EAA0C;MACtCA,IAAI,GAAGw6E,KAAK,CAAClmF,CAAD,CAAZ;;MACA,IAAI60G,YAAY,CAACnpG,IAAI,CAACmT,WAAL,EAAD,EAAqBs2F,eAArB,EAAsC,CAAtC,CAAZ,KAAyD,CAAC,CAA9D,EAAiE;QAC7D,OAAO,IAAP;MACH;IACJ,CALD,MAMK,IAAIzpG,IAAI,KAAK;IAAE;IAAf,EAA8C;MAC/C;MACA,OAAO1L,CAAC,GAAGkmF,KAAK,CAAC1rF,MAAV,IAAoB,QAAQkR,IAAI,GAAGw6E,KAAK,CAAClmF,CAAC,EAAF,CAApB,KAA8B,QAAzD,EAAmE;QAC/D;QACA,IAAI0L,IAAI,CAACmT,WAAL,OAAuBs2F,eAA3B,EACI,OAAO,IAAP;MACP;;MACD,OAAO,KAAP;IACH;EACJ;;EACD,OAAO,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASE,gBAAT,CAA0B/kC,KAA1B,EAAiC;EAC7B,OAAOA,KAAK,CAAC5iE,IAAN,KAAe;EAAE;EAAjB,GAA8C4iE,KAAK,CAAC/5E,KAAN,KAAgB0+G,oBAArE;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASK,kBAAT,CAA4BhlC,KAA5B,EAAmCilC,eAAnC,EAAoDH,gBAApD,EAAsE;EAClE,MAAMI,gBAAgB,GAAGllC,KAAK,CAAC5iE,IAAN,KAAe;EAAE;EAAjB,GAA8C,CAAC0nG,gBAA/C,GAAkEH,oBAAlE,GAAyF3kC,KAAK,CAAC/5E,KAAxH;EACA,OAAOg/G,eAAe,KAAKC,gBAA3B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,sBAAT,CAAgCnlC,KAAhC,EAAuCrsE,QAAvC,EAAiDmxG,gBAAjD,EAAmE;EAC/D5iG,SAAS,IAAI06D,aAAa,CAACjpE,QAAQ,CAAC,CAAD,CAAT,EAAc,iCAAd,CAA1B;EACA,IAAIy7E,IAAI,GAAG;EAAE;EAAb;EACA,MAAMg2B,SAAS,GAAGplC,KAAK,CAAC4V,KAAN,IAAe,EAAjC,CAH+D,CAI/D;;EACA,MAAMyvB,iBAAiB,GAAGC,sBAAsB,CAACF,SAAD,CAAhD,CAL+D,CAM/D;EACA;;EACA,IAAIG,kBAAkB,GAAG,KAAzB;;EACA,KAAK,IAAI71G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiE,QAAQ,CAACzJ,MAA7B,EAAqCwF,CAAC,EAAtC,EAA0C;IACtC,MAAMu7E,OAAO,GAAGt3E,QAAQ,CAACjE,CAAD,CAAxB;;IACA,IAAI,OAAOu7E,OAAP,KAAmB,QAAvB,EAAiC;MAC7B;MACA,IAAI,CAACs6B,kBAAD,IAAuB,CAACC,UAAU,CAACp2B,IAAD,CAAlC,IAA4C,CAACo2B,UAAU,CAACv6B,OAAD,CAA3D,EAAsE;QAClE,OAAO,KAAP;MACH,CAJ4B,CAK7B;MACA;;;MACA,IAAIs6B,kBAAkB,IAAIC,UAAU,CAACv6B,OAAD,CAApC,EACI;MACJs6B,kBAAkB,GAAG,KAArB;MACAn2B,IAAI,GAAGnE,OAAO,GAAImE,IAAI,GAAG;MAAE;MAA3B;MACA;IACH;;IACD,IAAIm2B,kBAAJ,EACI;;IACJ,IAAIn2B,IAAI,GAAG;IAAE;IAAb,EAA0C;MACtCA,IAAI,GAAG;MAAE;MAAF,EAAkCA,IAAI,GAAG;MAAE;MAAlD;;MACA,IAAInE,OAAO,KAAK,EAAZ,IAAkB,CAAC+5B,kBAAkB,CAAChlC,KAAD,EAAQiL,OAAR,EAAiB65B,gBAAjB,CAArC,IACA75B,OAAO,KAAK,EAAZ,IAAkBt3E,QAAQ,CAACzJ,MAAT,KAAoB,CAD1C,EAC6C;QACzC,IAAIs7G,UAAU,CAACp2B,IAAD,CAAd,EACI,OAAO,KAAP;QACJm2B,kBAAkB,GAAG,IAArB;MACH;IACJ,CARD,MASK;MACD,MAAME,iBAAiB,GAAGr2B,IAAI,GAAG;MAAE;MAAT,EAAqCnE,OAArC,GAA+Ct3E,QAAQ,CAAC,EAAEjE,CAAH,CAAjF,CADC,CAED;MACA;;MACA,IAAK0/E,IAAI,GAAG;MAAE;MAAV,GAAwCpP,KAAK,CAAC4V,KAAN,KAAgB,IAA5D,EAAkE;QAC9D,IAAI,CAACgvB,kBAAkB,CAAC5kC,KAAK,CAAC4V,KAAP,EAAc6vB,iBAAd,EAAiCX,gBAAjC,CAAvB,EAA2E;UACvE,IAAIU,UAAU,CAACp2B,IAAD,CAAd,EACI,OAAO,KAAP;UACJm2B,kBAAkB,GAAG,IAArB;QACH;;QACD;MACH;;MACD,MAAM1rD,QAAQ,GAAIu1B,IAAI,GAAG;MAAE;MAAV,EAAuC,OAAvC,GAAiDnE,OAAlE;MACA,MAAMy6B,eAAe,GAAGC,mBAAmB,CAAC9rD,QAAD,EAAWurD,SAAX,EAAsBL,gBAAgB,CAAC/kC,KAAD,CAAtC,EAA+C8kC,gBAA/C,CAA3C;;MACA,IAAIY,eAAe,KAAK,CAAC,CAAzB,EAA4B;QACxB,IAAIF,UAAU,CAACp2B,IAAD,CAAd,EACI,OAAO,KAAP;QACJm2B,kBAAkB,GAAG,IAArB;QACA;MACH;;MACD,IAAIE,iBAAiB,KAAK,EAA1B,EAA8B;QAC1B,IAAIG,aAAJ;;QACA,IAAIF,eAAe,GAAGL,iBAAtB,EAAyC;UACrCO,aAAa,GAAG,EAAhB;QACH,CAFD,MAGK;UACD1jG,SAAS,IACLo6D,cAAc,CAAC8oC,SAAS,CAACM,eAAD,CAAV,EAA6B;UAAE;UAA/B,EAAmE,qDAAnE,CADlB,CADC,CAGD;UACA;UACA;;UACAE,aAAa,GAAGR,SAAS,CAACM,eAAe,GAAG,CAAnB,CAAT,CAA+Bn3F,WAA/B,EAAhB;QACH;;QACD,MAAMs3F,uBAAuB,GAAGz2B,IAAI,GAAG;QAAE;QAAT,EAAqCw2B,aAArC,GAAqD,IAArF;;QACA,IAAIC,uBAAuB,IACvBtB,YAAY,CAACsB,uBAAD,EAA0BJ,iBAA1B,EAA6C,CAA7C,CAAZ,KAAgE,CAAC,CADjE,IAEAr2B,IAAI,GAAG;QAAE;QAAT,GAA0Cq2B,iBAAiB,KAAKG,aAFpE,EAEmF;UAC/E,IAAIJ,UAAU,CAACp2B,IAAD,CAAd,EACI,OAAO,KAAP;UACJm2B,kBAAkB,GAAG,IAArB;QACH;MACJ;IACJ;EACJ;;EACD,OAAOC,UAAU,CAACp2B,IAAD,CAAV,IAAoBm2B,kBAA3B;AACH;;AACD,SAASC,UAAT,CAAoBp2B,IAApB,EAA0B;EACtB,OAAO,CAACA,IAAI,GAAG;EAAE;EAAV,MAAuC,CAA9C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu2B,mBAAT,CAA6BrrG,IAA7B,EAAmCs7E,KAAnC,EAA0CmvB,gBAA1C,EAA4DD,gBAA5D,EAA8E;EAC1E,IAAIlvB,KAAK,KAAK,IAAd,EACI,OAAO,CAAC,CAAR;EACJ,IAAIlmF,CAAC,GAAG,CAAR;;EACA,IAAIo1G,gBAAgB,IAAI,CAACC,gBAAzB,EAA2C;IACvC,IAAIe,YAAY,GAAG,KAAnB;;IACA,OAAOp2G,CAAC,GAAGkmF,KAAK,CAAC1rF,MAAjB,EAAyB;MACrB,MAAM67G,aAAa,GAAGnwB,KAAK,CAAClmF,CAAD,CAA3B;;MACA,IAAIq2G,aAAa,KAAKzrG,IAAtB,EAA4B;QACxB,OAAO5K,CAAP;MACH,CAFD,MAGK,IAAIq2G,aAAa,KAAK;MAAE;MAApB,GAAsDA,aAAa,KAAK;MAAE;MAA9E,EAA0G;QAC3GD,YAAY,GAAG,IAAf;MACH,CAFI,MAGA,IAAIC,aAAa,KAAK;MAAE;MAApB,GAAqDA,aAAa,KAAK;MAAE;MAA7E,EAA2G;QAC5G,IAAI9/G,KAAK,GAAG2vF,KAAK,CAAC,EAAElmF,CAAH,CAAjB,CAD4G,CAE5G;QACA;;QACA,OAAO,OAAOzJ,KAAP,KAAiB,QAAxB,EAAkC;UAC9BA,KAAK,GAAG2vF,KAAK,CAAC,EAAElmF,CAAH,CAAb;QACH;;QACD;MACH,CARI,MASA,IAAIq2G,aAAa,KAAK;MAAE;MAAxB,EAAwD;QACzD;QACA;MACH,CAHI,MAIA,IAAIA,aAAa,KAAK;MAAE;MAAxB,EAA4D;QAC7D;QACAr2G,CAAC,IAAI,CAAL;QACA;MACH,CAzBoB,CA0BrB;;;MACAA,CAAC,IAAIo2G,YAAY,GAAG,CAAH,GAAO,CAAxB;IACH,CA9BsC,CA+BvC;;;IACA,OAAO,CAAC,CAAR;EACH,CAjCD,MAkCK;IACD,OAAOE,sBAAsB,CAACpwB,KAAD,EAAQt7E,IAAR,CAA7B;EACH;AACJ;;AACD,SAAS2rG,0BAAT,CAAoCjmC,KAApC,EAA2CrsE,QAA3C,EAAqDmxG,gBAAgB,GAAG,KAAxE,EAA+E;EAC3E,KAAK,IAAIp1G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiE,QAAQ,CAACzJ,MAA7B,EAAqCwF,CAAC,EAAtC,EAA0C;IACtC,IAAIy1G,sBAAsB,CAACnlC,KAAD,EAAQrsE,QAAQ,CAACjE,CAAD,CAAhB,EAAqBo1G,gBAArB,CAA1B,EAAkE;MAC9D,OAAO,IAAP;IACH;EACJ;;EACD,OAAO,KAAP;AACH;;AACD,SAASoB,qBAAT,CAA+BlmC,KAA/B,EAAsC;EAClC,MAAMolC,SAAS,GAAGplC,KAAK,CAAC4V,KAAxB;;EACA,IAAIwvB,SAAS,IAAI,IAAjB,EAAuB;IACnB,MAAMe,kBAAkB,GAAGf,SAAS,CAAC/pG,OAAV,CAAkB;IAAE;IAApB,CAA3B,CADmB,CAEnB;IACA;;IACA,IAAI,CAAC8qG,kBAAkB,GAAG,CAAtB,MAA6B,CAAjC,EAAoC;MAChC,OAAOf,SAAS,CAACe,kBAAkB,GAAG,CAAtB,CAAhB;IACH;EACJ;;EACD,OAAO,IAAP;AACH;;AACD,SAASb,sBAAT,CAAgCF,SAAhC,EAA2C;EACvC,KAAK,IAAI11G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG01G,SAAS,CAACl7G,MAA9B,EAAsCwF,CAAC,EAAvC,EAA2C;IACvC,MAAM02G,QAAQ,GAAGhB,SAAS,CAAC11G,CAAD,CAA1B;;IACA,IAAIumF,yBAAyB,CAACmwB,QAAD,CAA7B,EAAyC;MACrC,OAAO12G,CAAP;IACH;EACJ;;EACD,OAAO01G,SAAS,CAACl7G,MAAjB;AACH;;AACD,SAAS87G,sBAAT,CAAgCpwB,KAAhC,EAAuCt7E,IAAvC,EAA6C;EACzC,IAAI5K,CAAC,GAAGkmF,KAAK,CAACv6E,OAAN,CAAc;EAAE;EAAhB,CAAR;;EACA,IAAI3L,CAAC,GAAG,CAAC,CAAT,EAAY;IACRA,CAAC;;IACD,OAAOA,CAAC,GAAGkmF,KAAK,CAAC1rF,MAAjB,EAAyB;MACrB,MAAMijE,IAAI,GAAGyoB,KAAK,CAAClmF,CAAD,CAAlB,CADqB,CAErB;MACA;;MACA,IAAI,OAAOy9D,IAAP,KAAgB,QAApB,EACI,OAAO,CAAC,CAAR;MACJ,IAAIA,IAAI,KAAK7yD,IAAb,EACI,OAAO5K,CAAP;MACJA,CAAC;IACJ;EACJ;;EACD,OAAO,CAAC,CAAR;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS22G,wBAAT,CAAkC1yG,QAAlC,EAA4Cw8D,IAA5C,EAAkD;EAC9Cm2C,gBAAgB,EAAE,KAAK,IAAI52G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGygE,IAAI,CAACjmE,MAAzB,EAAiCwF,CAAC,EAAlC,EAAsC;IACpD,MAAM62G,qBAAqB,GAAGp2C,IAAI,CAACzgE,CAAD,CAAlC;;IACA,IAAIiE,QAAQ,CAACzJ,MAAT,KAAoBq8G,qBAAqB,CAACr8G,MAA9C,EAAsD;MAClD;IACH;;IACD,KAAK,IAAIslC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG77B,QAAQ,CAACzJ,MAA7B,EAAqCslC,CAAC,EAAtC,EAA0C;MACtC,IAAI77B,QAAQ,CAAC67B,CAAD,CAAR,KAAgB+2E,qBAAqB,CAAC/2E,CAAD,CAAzC,EAA8C;QAC1C,SAAS82E,gBAAT;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EACD,OAAO,KAAP;AACH;;AACD,SAASE,sBAAT,CAAgCC,cAAhC,EAAgDC,KAAhD,EAAuD;EACnD,OAAOD,cAAc,GAAG,UAAUC,KAAK,CAAC3mF,IAAN,EAAV,GAAyB,GAA5B,GAAkC2mF,KAAvD;AACH;;AACD,SAASC,oBAAT,CAA8BhzG,QAA9B,EAAwC;EACpC,IAAIxE,MAAM,GAAGwE,QAAQ,CAAC,CAAD,CAArB;EACA,IAAIjE,CAAC,GAAG,CAAR;EACA,IAAI0/E,IAAI,GAAG;EAAE;EAAb;EACA,IAAIw3B,YAAY,GAAG,EAAnB;EACA,IAAIH,cAAc,GAAG,KAArB;;EACA,OAAO/2G,CAAC,GAAGiE,QAAQ,CAACzJ,MAApB,EAA4B;IACxB,IAAI28G,aAAa,GAAGlzG,QAAQ,CAACjE,CAAD,CAA5B;;IACA,IAAI,OAAOm3G,aAAP,KAAyB,QAA7B,EAAuC;MACnC,IAAIz3B,IAAI,GAAG;MAAE;MAAb,EAA4C;QACxC,MAAM03B,SAAS,GAAGnzG,QAAQ,CAAC,EAAEjE,CAAH,CAA1B;QACAk3G,YAAY,IACR,MAAMC,aAAN,IAAuBC,SAAS,CAAC58G,MAAV,GAAmB,CAAnB,GAAuB,OAAO48G,SAAP,GAAmB,GAA1C,GAAgD,EAAvE,IAA6E,GADjF;MAEH,CAJD,MAKK,IAAI13B,IAAI,GAAG;MAAE;MAAb,EAAwC;QACzCw3B,YAAY,IAAI,MAAMC,aAAtB;MACH,CAFI,MAGA,IAAIz3B,IAAI,GAAG;MAAE;MAAb,EAA0C;QAC3Cw3B,YAAY,IAAI,MAAMC,aAAtB;MACH;IACJ,CAZD,MAaK;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAID,YAAY,KAAK,EAAjB,IAAuB,CAACpB,UAAU,CAACqB,aAAD,CAAtC,EAAuD;QACnD13G,MAAM,IAAIq3G,sBAAsB,CAACC,cAAD,EAAiBG,YAAjB,CAAhC;QACAA,YAAY,GAAG,EAAf;MACH;;MACDx3B,IAAI,GAAGy3B,aAAP,CAtBC,CAuBD;MACA;;MACAJ,cAAc,GAAGA,cAAc,IAAI,CAACjB,UAAU,CAACp2B,IAAD,CAA9C;IACH;;IACD1/E,CAAC;EACJ;;EACD,IAAIk3G,YAAY,KAAK,EAArB,EAAyB;IACrBz3G,MAAM,IAAIq3G,sBAAsB,CAACC,cAAD,EAAiBG,YAAjB,CAAhC;EACH;;EACD,OAAOz3G,MAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS43G,wBAAT,CAAkCC,YAAlC,EAAgD;EAC5C,OAAOA,YAAY,CAAC7xG,GAAb,CAAiBwxG,oBAAjB,EAAuChsG,IAAvC,CAA4C,GAA5C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASssG,kCAAT,CAA4CtzG,QAA5C,EAAsD;EAClD,MAAMiiF,KAAK,GAAG,EAAd;EACA,MAAMiD,OAAO,GAAG,EAAhB;EACA,IAAInpF,CAAC,GAAG,CAAR;EACA,IAAI0/E,IAAI,GAAG;EAAE;EAAb;;EACA,OAAO1/E,CAAC,GAAGiE,QAAQ,CAACzJ,MAApB,EAA4B;IACxB,IAAI28G,aAAa,GAAGlzG,QAAQ,CAACjE,CAAD,CAA5B;;IACA,IAAI,OAAOm3G,aAAP,KAAyB,QAA7B,EAAuC;MACnC,IAAIz3B,IAAI,KAAK;MAAE;MAAf,EAA8C;QAC1C,IAAIy3B,aAAa,KAAK,EAAtB,EAA0B;UACtBjxB,KAAK,CAACrrF,IAAN,CAAWs8G,aAAX,EAA0BlzG,QAAQ,CAAC,EAAEjE,CAAH,CAAlC;QACH;MACJ,CAJD,MAKK,IAAI0/E,IAAI,KAAK;MAAE;MAAf,EAA0C;QAC3CyJ,OAAO,CAACtuF,IAAR,CAAas8G,aAAb;MACH;IACJ,CATD,MAUK;MACD;MACA;MACA;MACA,IAAI,CAACrB,UAAU,CAACp2B,IAAD,CAAf,EACI;MACJA,IAAI,GAAGy3B,aAAP;IACH;;IACDn3G,CAAC;EACJ;;EACD,OAAO;IAAEkmF,KAAF;IAASiD;EAAT,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMquB,SAAS,GAAI,OAAOhlG,SAAP,KAAqB,WAArB,IAAoCA,SAArC,GAAkD;EAAEilG,SAAS,EAAE;AAAb,CAAlD,GAA+E,EAAjG;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT,CAAmBC,KAAnB,EAA0B;EACtBnlG,SAAS,IAAIw6D,iBAAiB,CAAC2qC,KAAD,EAAQ,CAAR,EAAW,0BAAX,CAA9B;EACAC,mBAAmB,CAACl5B,QAAQ,EAAT,EAAaD,QAAQ,EAArB,EAAyB6D,gBAAgB,KAAKq1B,KAA9C,EAAqD,CAAC,CAACnlG,SAAF,IAAegtE,sBAAsB,EAA1F,CAAnB;AACH;;AACD,SAASo4B,mBAAT,CAA6BrnC,KAA7B,EAAoCkI,KAApC,EAA2C5zE,KAA3C,EAAkDgzG,kBAAlD,EAAsE;EAClErlG,SAAS,IAAIsnE,sBAAsB,CAACrB,KAAD,EAAQ5zE,KAAR,CAAnC,CADkE,CAElE;EACA;;EACA,IAAI,CAACgzG,kBAAL,EAAyB;IACrB,MAAMC,uBAAuB,GAAG,CAACr/B,KAAK,CAAC/B,KAAD,CAAL,GAAe;IAAE;IAAlB,MAA2D;IAAE;IAA7F;;IACA,IAAIohC,uBAAJ,EAA6B;MACzB,MAAM30B,kBAAkB,GAAG5S,KAAK,CAAC4S,kBAAjC;;MACA,IAAIA,kBAAkB,KAAK,IAA3B,EAAiC;QAC7Bc,iBAAiB,CAACxL,KAAD,EAAQ0K,kBAAR,EAA4Bt+E,KAA5B,CAAjB;MACH;IACJ,CALD,MAMK;MACD,MAAMq+E,aAAa,GAAG3S,KAAK,CAAC2S,aAA5B;;MACA,IAAIA,aAAa,KAAK,IAAtB,EAA4B;QACxBkB,wBAAwB,CAAC3L,KAAD,EAAQyK,aAAR,EAAuB;QAAE;QAAzB,EAAkEr+E,KAAlE,CAAxB;MACH;IACJ;EACJ,CAlBiE,CAmBlE;EACA;EACA;EACA;;;EACA09E,gBAAgB,CAAC19E,KAAD,CAAhB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkzG,gBAAgB,GAAG;EACrB,sBAAsBzvE,kBADD;EAErB,oBAAoBslC,gBAFC;EAGrB,YAAYhnC,QAHS;EAIrB,uBAAuBytD,mBAJF;EAKrB,qBAAqBzpB;AALA,CAAzB;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,SAASotC,iBAAT,CAA2BtqG,IAA3B,EAAiC4gF,IAAjC,EAAuC;EACnC,IAAI9f,eAAe,GAAG,IAAtB;EACA,IAAIypC,YAAY,GAAG,IAAnB,CAFmC,CAGnC;;EACA,IAAI,CAACvqG,IAAI,CAACyO,cAAL,CAAoB4xD,WAApB,CAAL,EAAuC;IACnC1xE,MAAM,CAACixF,cAAP,CAAsB5/E,IAAtB,EAA4BqgE,WAA5B,EAAyC;MACrCp3D,GAAG,EAAE,MAAM;QACP,IAAI63D,eAAe,KAAK,IAAxB,EAA8B;UAC1B,MAAM0pC,QAAQ,GAAG7oB,iBAAiB,CAAC;YAAEG,KAAK,EAAE;YAAE;YAAX;YAA6Cj4F,IAAI,EAAE,YAAnD;YAAiEmW;UAAjE,CAAD,CAAlC;UACA8gE,eAAe,GAAG0pC,QAAQ,CAACF,iBAAT,CAA2BD,gBAA3B,EAA8C,SAAQrqG,IAAI,CAAC9C,IAAK,WAAhE,EAA4EutG,qBAAqB,CAACzqG,IAAD,EAAO4gF,IAAP,CAAjG,CAAlB;QACH;;QACD,OAAO9f,eAAP;MACH;IAPoC,CAAzC;EASH,CAdkC,CAenC;;;EACA,IAAI,CAAC9gE,IAAI,CAACyO,cAAL,CAAoBk2D,cAApB,CAAL,EAA0C;IACtCh2E,MAAM,CAACixF,cAAP,CAAsB5/E,IAAtB,EAA4B2kE,cAA5B,EAA4C;MACxC17D,GAAG,EAAE,MAAM;QACP,IAAIshG,YAAY,KAAK,IAArB,EAA2B;UACvB,MAAMC,QAAQ,GAAG7oB,iBAAiB,CAAC;YAAEG,KAAK,EAAE;YAAE;YAAX;YAA6Cj4F,IAAI,EAAE,YAAnD;YAAiEmW;UAAjE,CAAD,CAAlC;UACAuqG,YAAY,GAAGC,QAAQ,CAACE,cAAT,CAAwBL,gBAAxB,EAA2C,SAAQrqG,IAAI,CAAC9C,IAAK,UAA7D,EAAwE;YACnFA,IAAI,EAAE8C,IAAI,CAAC9C,IADwE;YAEnF8C,IAFmF;YAGnF2qG,iBAAiB,EAAE,CAHgE;YAInFv3D,IAAI,EAAEq0C,mBAAmB,CAACznF,IAAD,CAJ0D;YAKnFgf,MAAM,EAAEwrF,QAAQ,CAAC/oB,aAAT,CAAuB/8E;UALoD,CAAxE,CAAf;QAOH;;QACD,OAAO6lG,YAAP;MACH,CAbuC;MAcxC;MACAK,YAAY,EAAE;IAf0B,CAA5C;EAiBH;AACJ;;AACD,MAAMC,SAAS,GAAGtuC,sBAAsB,CAAC;EAAE3T,OAAO,EAAE7f,MAAX;EAAmB8f,QAAQ,EAAE0T;AAA7B,CAAD,CAAxC;;AACA,SAASuuC,kBAAT,CAA4BlqB,IAA5B,EAAkC;EAC9B,OAAOA,IAAI,CAAC5kB,QAAL,KAAkBvyE,SAAzB;AACH;;AACD,SAASshH,kBAAT,CAA4BnqB,IAA5B,EAAkC;EAC9B,OAAOiqB,SAAS,IAAIjqB,IAApB;AACH;;AACD,SAASoqB,oBAAT,CAA8BpqB,IAA9B,EAAoC;EAChC,OAAOA,IAAI,CAAC9kD,UAAL,KAAoBryC,SAA3B;AACH;;AACD,SAASwhH,qBAAT,CAA+BrqB,IAA/B,EAAqC;EACjC,OAAOA,IAAI,CAAC1kB,WAAL,KAAqBzyE,SAA5B;AACH;;AACD,SAASghH,qBAAT,CAA+BzqG,IAA/B,EAAqCkrG,OAArC,EAA8C;EAC1C;EACA,MAAMtqB,IAAI,GAAGsqB,OAAO,IAAI;IAAErvE,UAAU,EAAE;EAAd,CAAxB;EACA,MAAMsvE,YAAY,GAAG;IACjBjuG,IAAI,EAAE8C,IAAI,CAAC9C,IADM;IAEjB8C,IAAI,EAAEA,IAFW;IAGjB2qG,iBAAiB,EAAE,CAHF;IAIjB9uE,UAAU,EAAE+kD,IAAI,CAAC/kD;EAJA,CAArB;;EAMA,IAAI,CAACivE,kBAAkB,CAAClqB,IAAD,CAAlB,IAA4BoqB,oBAAoB,CAACpqB,IAAD,CAAjD,KAA4DA,IAAI,CAACxtC,IAAL,KAAc3pD,SAA9E,EAAyF;IACrF0hH,YAAY,CAAC/3D,IAAb,GAAoBs0C,mBAAmB,CAAC9G,IAAI,CAACxtC,IAAN,CAAvC;EACH,CAXyC,CAY1C;;;EACA,IAAI03D,kBAAkB,CAAClqB,IAAD,CAAtB,EAA8B;IAC1BuqB,YAAY,CAACnvC,QAAb,GAAwB4kB,IAAI,CAAC5kB,QAA7B;EACH,CAFD,MAGK,IAAI+uC,kBAAkB,CAACnqB,IAAD,CAAtB,EAA8B;IAC/BuqB,YAAY,CAACtiD,QAAb,GAAwB+3B,IAAI,CAAC/3B,QAA7B;EACH,CAFI,MAGA,IAAImiD,oBAAoB,CAACpqB,IAAD,CAAxB,EAAgC;IACjCuqB,YAAY,CAACrvE,UAAb,GAA0B8kD,IAAI,CAAC9kD,UAA/B;EACH,CAFI,MAGA,IAAImvE,qBAAqB,CAACrqB,IAAD,CAAzB,EAAiC;IAClCuqB,YAAY,CAACjvC,WAAb,GAA2B0kB,IAAI,CAAC1kB,WAAhC;EACH;;EACD,OAAOivC,YAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMzmG,UAAU,GAAGu6E,aAAa,CAAC,YAAD,EAAex1F,SAAf,EAA0BA,SAA1B,EAAqCA,SAArC,EAAgD,CAACuW,IAAD,EAAO4gF,IAAP,KAAgB0pB,iBAAiB,CAACtqG,IAAD,EAAO4gF,IAAP,CAAjF,CAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,SAASwqB,cAAT,CAAwBpX,OAAxB,EAAiCzkG,MAAM,GAAG,IAA1C,EAAgD87G,mBAAmB,GAAG,IAAtE,EAA4EnuG,IAA5E,EAAkF;EAC9E,MAAMg6C,QAAQ,GAAGo0D,sCAAsC,CAACtX,OAAD,EAAUzkG,MAAV,EAAkB87G,mBAAlB,EAAuCnuG,IAAvC,CAAvD;EACAg6C,QAAQ,CAACs/C,2BAAT;EACA,OAAOt/C,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASo0D,sCAAT,CAAgDtX,OAAhD,EAAyDzkG,MAAM,GAAG,IAAlE,EAAwE87G,mBAAmB,GAAG,IAA9F,EAAoGnuG,IAApG,EAA0Gq4F,MAAM,GAAG,IAAIvtF,GAAJ,EAAnH,EAA8H;EAC1H,MAAM2gD,SAAS,GAAG,CACd0iD,mBAAmB,IAAIjnC,WADT,EAEd8uB,mBAAmB,CAACc,OAAD,CAFL,CAAlB;EAIA92F,IAAI,GAAGA,IAAI,KAAK,OAAO82F,OAAP,KAAmB,QAAnB,GAA8BvqG,SAA9B,GAA0CkvD,SAAS,CAACq7C,OAAD,CAAxD,CAAX;EACA,OAAO,IAAIsB,UAAJ,CAAe3sC,SAAf,EAA0Bp5D,MAAM,IAAI6lG,eAAe,EAAnD,EAAuDl4F,IAAI,IAAI,IAA/D,EAAqEq4F,MAArE,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMv6D,QAAN,CAAe;EACE,OAANjvC,MAAM,CAACiO,OAAD,EAAUzK,MAAV,EAAkB;IAC3B,IAAI7D,EAAJ;;IACA,IAAIiB,KAAK,CAAC2C,OAAN,CAAc0K,OAAd,CAAJ,EAA4B;MACxB,OAAOoxG,cAAc,CAAC;QAAEluG,IAAI,EAAE;MAAR,CAAD,EAAe3N,MAAf,EAAuByK,OAAvB,EAAgC,EAAhC,CAArB;IACH,CAFD,MAGK;MACD,MAAMkD,IAAI,GAAG,CAACxR,EAAE,GAAGsO,OAAO,CAACkD,IAAd,MAAwB,IAAxB,IAAgCxR,EAAE,KAAK,KAAK,CAA5C,GAAgDA,EAAhD,GAAqD,EAAlE;MACA,OAAO0/G,cAAc,CAAC;QAAEluG;MAAF,CAAD,EAAWlD,OAAO,CAACzK,MAAnB,EAA2ByK,OAAO,CAAC2uD,SAAnC,EAA8CzrD,IAA9C,CAArB;IACH;EACJ;;AAVU;;AAYf89B,QAAQ,CAACgrD,kBAAT,GAA8BA,kBAA9B;AACAhrD,QAAQ,CAAC68D,IAAT,GAAkB,eAAe,IAAI5E,YAAJ,EAAjC;AACA;;AACAj4D,QAAQ,CAAC3tB,KAAT,GAAiButB,kBAAkB,CAAC;EAChCzhB,KAAK,EAAE6hB,QADyB;EAEhCa,UAAU,EAAE,KAFoB;EAGhCynB,OAAO,EAAE,MAAMpqB,QAAQ,CAAC65D,QAAD;AAHS,CAAD,CAAnC;AAKA;AACA;AACA;AACA;;AACA/3D,QAAQ,CAAC6pC,iBAAT,GAA6B,CAAC;AAAE;AAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS0mC,oBAAT,CAA8Bz5G,IAA9B,EAAoC;EAChC,MAAMyxC,GAAG,GAAG,EAAZ;;EACA,KAAK,IAAIjxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,IAAI,CAAChF,MAAzB,EAAiC,EAAEwF,CAAnC,EAAsC;IAClC,IAAIixC,GAAG,CAACtlC,OAAJ,CAAYnM,IAAI,CAACQ,CAAD,CAAhB,IAAuB,CAAC,CAA5B,EAA+B;MAC3BixC,GAAG,CAACp2C,IAAJ,CAAS2E,IAAI,CAACQ,CAAD,CAAb;MACA,OAAOixC,GAAP;IACH;;IACDA,GAAG,CAACp2C,IAAJ,CAAS2E,IAAI,CAACQ,CAAD,CAAb;EACH;;EACD,OAAOixC,GAAP;AACH;;AACD,SAASioE,sBAAT,CAAgC15G,IAAhC,EAAsC;EAClC,IAAIA,IAAI,CAAChF,MAAL,GAAc,CAAlB,EAAqB;IACjB,MAAM2+G,QAAQ,GAAGF,oBAAoB,CAACz5G,IAAI,CAACU,KAAL,GAAa+6C,OAAb,EAAD,CAArC;IACA,MAAMm+D,SAAS,GAAGD,QAAQ,CAAC1zG,GAAT,CAAa66C,CAAC,IAAI+F,SAAS,CAAC/F,CAAC,CAACz5B,KAAH,CAA3B,CAAlB;IACA,OAAO,OAAOuyF,SAAS,CAACnuG,IAAV,CAAe,MAAf,CAAP,GAAgC,GAAvC;EACH;;EACD,OAAO,EAAP;AACH;;AACD,SAASouG,cAAT,CAAwBz0D,QAAxB,EAAkCn5C,GAAlC,EAAuC6tG,yBAAvC,EAAkEjR,aAAlE,EAAiF;EAC7E,MAAM7oG,IAAI,GAAG,CAACiM,GAAD,CAAb;EACA,MAAM8tG,MAAM,GAAGD,yBAAyB,CAAC95G,IAAD,CAAxC;EACA,MAAMnI,KAAK,GAAIgxG,aAAa,GAAGD,YAAY,CAACmR,MAAD,EAASlR,aAAT,CAAf,GAAyC3+F,KAAK,CAAC6vG,MAAD,CAA1E;EACAliH,KAAK,CAACmiH,MAAN,GAAeA,MAAf;EACAniH,KAAK,CAACmI,IAAN,GAAaA,IAAb;EACAnI,KAAK,CAACoiH,SAAN,GAAkB,CAAC70D,QAAD,CAAlB;EACAvtD,KAAK,CAACiiH,yBAAN,GAAkCA,yBAAlC;EACAjiH,KAAK,CAAC8wG,oBAAD,CAAL,GAA8BE,aAA9B;EACA,OAAOhxG,KAAP;AACH;;AACD,SAASmiH,MAAT,CAAgB50D,QAAhB,EAA0Bn5C,GAA1B,EAA+B;EAC3B,KAAKguG,SAAL,CAAe5+G,IAAf,CAAoB+pD,QAApB;EACA,KAAKplD,IAAL,CAAU3E,IAAV,CAAe4Q,GAAf,EAF2B,CAG3B;;EACA,KAAKZ,OAAL,GAAe,KAAKyuG,yBAAL,CAA+B,KAAK95G,IAApC,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk6G,eAAT,CAAyB90D,QAAzB,EAAmCn5C,GAAnC,EAAwC;EACpC,OAAO4tG,cAAc,CAACz0D,QAAD,EAAWn5C,GAAX,EAAgB,UAAUjM,IAAV,EAAgB;IACjD,MAAM2F,KAAK,GAAGkhD,SAAS,CAAC7mD,IAAI,CAAC,CAAD,CAAJ,CAAQqnB,KAAT,CAAvB;IACA,OAAQ,mBAAkB1hB,KAAM,IAAG+zG,sBAAsB,CAAC15G,IAAD,CAAO,EAAhE;EACH,CAHoB,CAArB;AAIH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm6G,qBAAT,CAA+B/0D,QAA/B,EAAyCn5C,GAAzC,EAA8C;EAC1C,OAAO4tG,cAAc,CAACz0D,QAAD,EAAWn5C,GAAX,EAAgB,UAAUjM,IAAV,EAAgB;IACjD,OAAQ,wCAAuC05G,sBAAsB,CAAC15G,IAAD,CAAO,EAA5E;EACH,CAFoB,CAArB;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo6G,kBAAT,CAA4Bh1D,QAA5B,EAAsCi1D,iBAAtC,EAAyDC,aAAzD,EAAwEruG,GAAxE,EAA6E;EACzE,OAAO4tG,cAAc,CAACz0D,QAAD,EAAWn5C,GAAX,EAAgB,UAAUjM,IAAV,EAAgB;IACjD,MAAM2F,KAAK,GAAGkhD,SAAS,CAAC7mD,IAAI,CAAC,CAAD,CAAJ,CAAQqnB,KAAT,CAAvB;IACA,OAAQ,GAAEgzF,iBAAiB,CAAChvG,OAAQ,mCAAkC1F,KAAM,IAAG+zG,sBAAsB,CAAC15G,IAAD,CAAO,GAA5G;EACH,CAHoB,EAGlBq6G,iBAHkB,CAArB;AAIH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,oBAAT,CAA8BruC,QAA9B,EAAwC;EACpC,OAAOhiE,KAAK,CAAE,4EAA2EgiE,QAAS,EAAtF,CAAZ;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsuC,iBAAT,CAA2BtnB,UAA3B,EAAuCz0E,MAAvC,EAA+C;EAC3C,MAAMg8F,SAAS,GAAG,EAAlB;;EACA,KAAK,IAAIj6G,CAAC,GAAG,CAAR,EAAW0G,EAAE,GAAGuX,MAAM,CAACzjB,MAA5B,EAAoCwF,CAAC,GAAG0G,EAAxC,EAA4C1G,CAAC,EAA7C,EAAiD;IAC7C,MAAMk6G,SAAS,GAAGj8F,MAAM,CAACje,CAAD,CAAxB;;IACA,IAAI,CAACk6G,SAAD,IAAcA,SAAS,CAAC1/G,MAAV,IAAoB,CAAtC,EAAyC;MACrCy/G,SAAS,CAACp/G,IAAV,CAAe,GAAf;IACH,CAFD,MAGK;MACDo/G,SAAS,CAACp/G,IAAV,CAAeq/G,SAAS,CAACz0G,GAAV,CAAc4gD,SAAd,EAAyBp7C,IAAzB,CAA8B,GAA9B,CAAf;IACH;EACJ;;EACD,OAAOvB,KAAK,CAAC,yCAAyC28C,SAAS,CAACqsC,UAAD,CAAlD,GAAiE,KAAjE,GACTunB,SAAS,CAAChvG,IAAV,CAAe,IAAf,CADS,GACc,KADd,GAET,wGAFS,GAGTo7C,SAAS,CAACqsC,UAAD,CAHA,GAGe,kCAHhB,CAAZ;AAIH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASynB,gBAAT,CAA0Bt1G,KAA1B,EAAiC;EAC7B,OAAO6E,KAAK,CAAE,SAAQ7E,KAAM,oBAAhB,CAAZ;AACH,EACD;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu1G,6CAAT,CAAuDC,SAAvD,EAAkEC,SAAlE,EAA6E;EACzE,OAAO5wG,KAAK,CAAE,0DAAyD2wG,SAAU,IAAGC,SAAU,EAAlF,CAAZ;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,aAAN,CAAoB;EAChB;AACJ;AACA;EACIlkH,WAAW,CAACwwB,KAAD,EAAQ7R,EAAR,EAAY;IACnB,KAAK6R,KAAL,GAAaA,KAAb;IACA,KAAK7R,EAAL,GAAUA,EAAV;;IACA,IAAI,CAAC6R,KAAL,EAAY;MACR,MAAM,IAAIkkD,YAAJ,CAAiB;MAAI;MAArB,EAAqEv4D,SAAS,IAAI,wBAAlF,CAAN;IACH;;IACD,KAAKgoG,WAAL,GAAmBn0D,SAAS,CAAC,KAAKx/B,KAAN,CAA5B;EACH;EACD;AACJ;AACA;;;EACc,OAAHlQ,GAAG,CAACkQ,KAAD,EAAQ;IACd,OAAO4zF,kBAAkB,CAAC9jG,GAAnB,CAAuBi0D,iBAAiB,CAAC/jD,KAAD,CAAxC,CAAP;EACH;EACD;AACJ;AACA;;;EAC2B,WAAZ6zF,YAAY,GAAG;IACtB,OAAOD,kBAAkB,CAACC,YAA1B;EACH;;AAvBe;;AAyBpB,MAAMC,WAAN,CAAkB;EACdtkH,WAAW,GAAG;IACV,KAAKukH,QAAL,GAAgB,IAAIvkG,GAAJ,EAAhB;EACH;;EACDM,GAAG,CAACkQ,KAAD,EAAQ;IACP,IAAIA,KAAK,YAAY0zF,aAArB,EACI,OAAO1zF,KAAP;;IACJ,IAAI,KAAK+zF,QAAL,CAAc/gG,GAAd,CAAkBgN,KAAlB,CAAJ,EAA8B;MAC1B,OAAO,KAAK+zF,QAAL,CAAcjkG,GAAd,CAAkBkQ,KAAlB,CAAP;IACH;;IACD,MAAMg0F,MAAM,GAAG,IAAIN,aAAJ,CAAkB1zF,KAAlB,EAAyB0zF,aAAa,CAACG,YAAvC,CAAf;;IACA,KAAKE,QAAL,CAAczjG,GAAd,CAAkB0P,KAAlB,EAAyBg0F,MAAzB;;IACA,OAAOA,MAAP;EACH;;EACe,IAAZH,YAAY,GAAG;IACf,OAAO,KAAKE,QAAL,CAAc37F,IAArB;EACH;;AAhBa;;AAkBlB,MAAMw7F,kBAAkB,GAAG,IAAIE,WAAJ,EAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMG,oBAAN,CAA2B;EACvBzkH,WAAW,CAACoV,GAAD,EAAMgb,QAAN,EAAgBs0F,UAAhB,EAA4B;IACnC,KAAKtvG,GAAL,GAAWA,GAAX;IACA,KAAKgb,QAAL,GAAgBA,QAAhB;IACA,KAAKs0F,UAAL,GAAkBA,UAAlB;EACH;;EACa,OAAPC,OAAO,CAACvvG,GAAD,EAAM;IAChB,OAAO,IAAIqvG,oBAAJ,CAAyBrvG,GAAzB,EAA8B,KAA9B,EAAqC,IAArC,CAAP;EACH;;AARsB;;AAU3B,MAAMwvG,WAAW,GAAG,EAApB;;AACA,MAAMC,2BAAN,CAAkC;EAC9B7kH,WAAW,CAACoV,GAAD,EAAM0vG,iBAAN,EAAyBC,aAAzB,EAAwC;IAC/C,KAAK3vG,GAAL,GAAWA,GAAX;IACA,KAAK0vG,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,aAAL,GAAqBA,aAArB;IACA,KAAKC,eAAL,GAAuB,KAAKF,iBAAL,CAAuB,CAAvB,CAAvB;EACH;;AAN6B;AAQlC;AACA;AACA;AACA;;;AACA,MAAMG,yBAAN,CAAgC;EAC5BjlH,WAAW;EACX;AACJ;AACA;EACI26D,OAJW;EAKX;AACJ;AACA;EACI4iB,YARW,EAQG;IACV,KAAK5iB,OAAL,GAAeA,OAAf;IACA,KAAK4iB,YAAL,GAAoBA,YAApB;EACH;;AAZ2B;AAchC;AACA;AACA;;;AACA,SAAS2nC,wBAAT,CAAkC7vC,QAAlC,EAA4C;EACxC,IAAI8vC,SAAJ;EACA,IAAIC,YAAJ;;EACA,IAAI/vC,QAAQ,CAAChC,QAAb,EAAuB;IACnB,MAAMA,QAAQ,GAAGkB,iBAAiB,CAACc,QAAQ,CAAChC,QAAV,CAAlC;IACA8xC,SAAS,GAAGtmB,UAAU,GAAGlkC,OAAb,CAAqB0Y,QAArB,CAAZ;IACA+xC,YAAY,GAAGC,gBAAgB,CAAChyC,QAAD,CAA/B;EACH,CAJD,MAKK,IAAIgC,QAAQ,CAAC9B,WAAb,EAA0B;IAC3B4xC,SAAS,GAAIG,aAAD,IAAmBA,aAA/B;;IACAF,YAAY,GAAG,CAACX,oBAAoB,CAACE,OAArB,CAA6BT,aAAa,CAAC5jG,GAAd,CAAkB+0D,QAAQ,CAAC9B,WAA3B,CAA7B,CAAD,CAAf;EACH,CAHI,MAIA,IAAI8B,QAAQ,CAACliC,UAAb,EAAyB;IAC1BgyE,SAAS,GAAG9vC,QAAQ,CAACliC,UAArB;IACAiyE,YAAY,GAAGG,qBAAqB,CAAClwC,QAAQ,CAACliC,UAAV,EAAsBkiC,QAAQ,CAAC5qB,IAA/B,CAApC;EACH,CAHI,MAIA;IACD06D,SAAS,GAAG,MAAM9vC,QAAQ,CAACnV,QAA3B;;IACAklD,YAAY,GAAGR,WAAf;EACH;;EACD,OAAO,IAAIK,yBAAJ,CAA8BE,SAA9B,EAAyCC,YAAzC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,yBAAT,CAAmCnwC,QAAnC,EAA6C;EACzC,OAAO,IAAIwvC,2BAAJ,CAAgCX,aAAa,CAAC5jG,GAAd,CAAkB+0D,QAAQ,CAACpV,OAA3B,CAAhC,EAAqE,CAACilD,wBAAwB,CAAC7vC,QAAD,CAAzB,CAArE,EAA2GA,QAAQ,CAAClzD,KAAT,IAAkB,KAA7H,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAASsjG,0BAAT,CAAoCzlD,SAApC,EAA+C;EAC3C,MAAM0lD,UAAU,GAAGC,mBAAmB,CAAC3lD,SAAD,EAAY,EAAZ,CAAtC;;EACA,MAAM4lD,QAAQ,GAAGF,UAAU,CAACt2G,GAAX,CAAeo2G,yBAAf,CAAjB;EACA,MAAMK,mBAAmB,GAAGC,gCAAgC,CAACF,QAAD,EAAW,IAAI5lG,GAAJ,EAAX,CAA5D;EACA,OAAOhc,KAAK,CAACC,IAAN,CAAW4hH,mBAAmB,CAACv8G,MAApB,EAAX,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASw8G,gCAAT,CAA0C9lD,SAA1C,EAAqD+lD,sBAArD,EAA6E;EACzE,KAAK,IAAIp8G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGq2D,SAAS,CAAC77D,MAA9B,EAAsCwF,CAAC,EAAvC,EAA2C;IACvC,MAAM0rE,QAAQ,GAAGrV,SAAS,CAACr2D,CAAD,CAA1B;IACA,MAAM6/D,QAAQ,GAAGu8C,sBAAsB,CAACzlG,GAAvB,CAA2B+0D,QAAQ,CAACjgE,GAAT,CAAauJ,EAAxC,CAAjB;;IACA,IAAI6qD,QAAJ,EAAc;MACV,IAAI6L,QAAQ,CAAC0vC,aAAT,KAA2Bv7C,QAAQ,CAACu7C,aAAxC,EAAuD;QACnD,MAAMhB,6CAA6C,CAACv6C,QAAD,EAAW6L,QAAX,CAAnD;MACH;;MACD,IAAIA,QAAQ,CAAC0vC,aAAb,EAA4B;QACxB,KAAK,IAAIt7E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4rC,QAAQ,CAACyvC,iBAAT,CAA2B3gH,MAA/C,EAAuDslC,CAAC,EAAxD,EAA4D;UACxD+/B,QAAQ,CAACs7C,iBAAT,CAA2BtgH,IAA3B,CAAgC6wE,QAAQ,CAACyvC,iBAAT,CAA2Br7E,CAA3B,CAAhC;QACH;MACJ,CAJD,MAKK;QACDs8E,sBAAsB,CAACjlG,GAAvB,CAA2Bu0D,QAAQ,CAACjgE,GAAT,CAAauJ,EAAxC,EAA4C02D,QAA5C;MACH;IACJ,CAZD,MAaK;MACD,IAAI2wC,gBAAJ;;MACA,IAAI3wC,QAAQ,CAAC0vC,aAAb,EAA4B;QACxBiB,gBAAgB,GAAG,IAAInB,2BAAJ,CAAgCxvC,QAAQ,CAACjgE,GAAzC,EAA8CigE,QAAQ,CAACyvC,iBAAT,CAA2Bj7G,KAA3B,EAA9C,EAAkFwrE,QAAQ,CAAC0vC,aAA3F,CAAnB;MACH,CAFD,MAGK;QACDiB,gBAAgB,GAAG3wC,QAAnB;MACH;;MACD0wC,sBAAsB,CAACjlG,GAAvB,CAA2Bu0D,QAAQ,CAACjgE,GAAT,CAAauJ,EAAxC,EAA4CqnG,gBAA5C;IACH;EACJ;;EACD,OAAOD,sBAAP;AACH;;AACD,SAASJ,mBAAT,CAA6B3lD,SAA7B,EAAwCplB,GAAxC,EAA6C;EACzColB,SAAS,CAACv9D,OAAV,CAAkB2N,CAAC,IAAI;IACnB,IAAIA,CAAC,YAAYgpF,IAAjB,EAAuB;MACnBx+C,GAAG,CAACp2C,IAAJ,CAAS;QAAEy7D,OAAO,EAAE7vD,CAAX;QAAcijE,QAAQ,EAAEjjE;MAAxB,CAAT;IACH,CAFD,MAGK,IAAIA,CAAC,IAAI,OAAOA,CAAP,IAAY,QAAjB,IAA6BA,CAAC,CAAC6vD,OAAF,KAAcn/D,SAA/C,EAA0D;MAC3D85C,GAAG,CAACp2C,IAAJ,CAAS4L,CAAT;IACH,CAFI,MAGA,IAAIpM,KAAK,CAAC2C,OAAN,CAAcyJ,CAAd,CAAJ,EAAsB;MACvBu1G,mBAAmB,CAACv1G,CAAD,EAAIwqC,GAAJ,CAAnB;IACH,CAFI,MAGA;MACD,MAAM8oE,oBAAoB,CAACtzG,CAAD,CAA1B;IACH;EACJ,CAbD;EAcA,OAAOwqC,GAAP;AACH;;AACD,SAAS2qE,qBAAT,CAA+BlpB,UAA/B,EAA2C9e,YAA3C,EAAyD;EACrD,IAAI,CAACA,YAAL,EAAmB;IACf,OAAO8nC,gBAAgB,CAAChpB,UAAD,CAAvB;EACH,CAFD,MAGK;IACD,MAAMz0E,MAAM,GAAG21D,YAAY,CAACnuE,GAAb,CAAiBm7D,CAAC,IAAI,CAACA,CAAD,CAAtB,CAAf;IACA,OAAOgT,YAAY,CAACnuE,GAAb,CAAiBm7D,CAAC,IAAI07C,aAAa,CAAC5pB,UAAD,EAAa9xB,CAAb,EAAgB3iD,MAAhB,CAAnC,CAAP;EACH;AACJ;;AACD,SAASy9F,gBAAT,CAA0BhpB,UAA1B,EAAsC;EAClC,MAAMz0E,MAAM,GAAGi3E,UAAU,GAAGjH,UAAb,CAAwByE,UAAxB,CAAf;EACA,IAAI,CAACz0E,MAAL,EACI,OAAO,EAAP;;EACJ,IAAIA,MAAM,CAACkJ,IAAP,CAAY1V,CAAC,IAAIA,CAAC,IAAI,IAAtB,CAAJ,EAAiC;IAC7B,MAAMuoG,iBAAiB,CAACtnB,UAAD,EAAaz0E,MAAb,CAAvB;EACH;;EACD,OAAOA,MAAM,CAACxY,GAAP,CAAWgM,CAAC,IAAI6qG,aAAa,CAAC5pB,UAAD,EAAajhF,CAAb,EAAgBwM,MAAhB,CAA7B,CAAP;AACH;;AACD,SAASq+F,aAAT,CAAuB5pB,UAAvB,EAAmClwE,QAAnC,EAA6CvE,MAA7C,EAAqD;EACjD,IAAI4I,KAAK,GAAG,IAAZ;EACA,IAAIJ,QAAQ,GAAG,KAAf;;EACA,IAAI,CAACpsB,KAAK,CAAC2C,OAAN,CAAcwlB,QAAd,CAAL,EAA8B;IAC1B,IAAIA,QAAQ,YAAYqkB,MAAxB,EAAgC;MAC5B,OAAO01E,iBAAiB,CAAC/5F,QAAQ,CAACqE,KAAV,EAAiBJ,QAAjB,EAA2B,IAA3B,CAAxB;IACH,CAFD,MAGK;MACD,OAAO81F,iBAAiB,CAAC/5F,QAAD,EAAWiE,QAAX,EAAqB,IAArB,CAAxB;IACH;EACJ;;EACD,IAAIs0F,UAAU,GAAG,IAAjB;;EACA,KAAK,IAAI/6G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwiB,QAAQ,CAAChoB,MAA7B,EAAqC,EAAEwF,CAAvC,EAA0C;IACtC,MAAMw8G,aAAa,GAAGh6F,QAAQ,CAACxiB,CAAD,CAA9B;;IACA,IAAIw8G,aAAa,YAAY/sB,IAA7B,EAAmC;MAC/B5oE,KAAK,GAAG21F,aAAR;IACH,CAFD,MAGK,IAAIA,aAAa,YAAY31E,MAA7B,EAAqC;MACtChgB,KAAK,GAAG21F,aAAa,CAAC31F,KAAtB;IACH,CAFI,MAGA,IAAI21F,aAAa,YAAYz1E,QAA7B,EAAuC;MACxCtgB,QAAQ,GAAG,IAAX;IACH,CAFI,MAGA,IAAI+1F,aAAa,YAAYjzB,IAAzB,IAAiCizB,aAAa,YAAYx7B,QAA9D,EAAwE;MACzE+5B,UAAU,GAAGyB,aAAb;IACH,CAFI,MAGA,IAAIA,aAAa,YAAY71E,cAA7B,EAA6C;MAC9C9f,KAAK,GAAG21F,aAAR;IACH;EACJ;;EACD31F,KAAK,GAAG+jD,iBAAiB,CAAC/jD,KAAD,CAAzB;;EACA,IAAIA,KAAK,IAAI,IAAb,EAAmB;IACf,OAAO01F,iBAAiB,CAAC11F,KAAD,EAAQJ,QAAR,EAAkBs0F,UAAlB,CAAxB;EACH,CAFD,MAGK;IACD,MAAMf,iBAAiB,CAACtnB,UAAD,EAAaz0E,MAAb,CAAvB;EACH;AACJ;;AACD,SAASs+F,iBAAT,CAA2B11F,KAA3B,EAAkCJ,QAAlC,EAA4Cs0F,UAA5C,EAAwD;EACpD,OAAO,IAAID,oBAAJ,CAAyBP,aAAa,CAAC5jG,GAAd,CAAkBkQ,KAAlB,CAAzB,EAAmDJ,QAAnD,EAA6Ds0F,UAA7D,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0B,SAAS,GAAG,EAAlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kBAAN,CAAyB;EACrB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACkB,OAAPzjH,OAAO,CAACo9D,SAAD,EAAY;IACtB,OAAOylD,0BAA0B,CAACzlD,SAAD,CAAjC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC2B,OAAhBsmD,gBAAgB,CAACtmD,SAAD,EAAYp5D,MAAZ,EAAoB;IACvC,MAAM2/G,2BAA2B,GAAGF,kBAAkB,CAACzjH,OAAnB,CAA2Bo9D,SAA3B,CAApC;IACA,OAAOqmD,kBAAkB,CAACG,qBAAnB,CAAyCD,2BAAzC,EAAsE3/G,MAAtE,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACgC,OAArB4/G,qBAAqB,CAACxmD,SAAD,EAAYp5D,MAAZ,EAAoB;IAC5C,OAAO,IAAI6/G,mBAAJ,CAAwBzmD,SAAxB,EAAmCp5D,MAAnC,CAAP;EACH;;AAzFoB;;AA2FzB,MAAM6/G,mBAAN,CAA0B;EACtB;AACJ;AACA;EACIzmH,WAAW,CAAC0mH,UAAD,EAAaC,OAAb,EAAsB;IAC7B;IACA,KAAKC,oBAAL,GAA4B,CAA5B;IACA,KAAKF,UAAL,GAAkBA,UAAlB;IACA,KAAK9/G,MAAL,GAAc+/G,OAAO,IAAI,IAAzB;IACA,MAAME,GAAG,GAAGH,UAAU,CAACviH,MAAvB;IACA,KAAK2iH,MAAL,GAAc,EAAd;IACA,KAAKC,IAAL,GAAY,EAAZ;;IACA,KAAK,IAAIp9G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk9G,GAApB,EAAyBl9G,CAAC,EAA1B,EAA8B;MAC1B,KAAKm9G,MAAL,CAAYn9G,CAAZ,IAAiB+8G,UAAU,CAAC/8G,CAAD,CAAV,CAAcyL,GAAd,CAAkBuJ,EAAnC;MACA,KAAKooG,IAAL,CAAUp9G,CAAV,IAAey8G,SAAf;IACH;EACJ;;EACD9lG,GAAG,CAACkQ,KAAD,EAAQooD,aAAa,GAAGykB,kBAAxB,EAA4C;IAC3C,OAAO,KAAK2pB,SAAL,CAAe9C,aAAa,CAAC5jG,GAAd,CAAkBkQ,KAAlB,CAAf,EAAyC,IAAzC,EAA+CooD,aAA/C,CAAP;EACH;;EACDquC,qBAAqB,CAACjnD,SAAD,EAAY;IAC7B,MAAMumD,2BAA2B,GAAGF,kBAAkB,CAACzjH,OAAnB,CAA2Bo9D,SAA3B,CAApC;IACA,OAAO,KAAKknD,uBAAL,CAA6BX,2BAA7B,CAAP;EACH;;EACDW,uBAAuB,CAAClnD,SAAD,EAAY;IAC/B,MAAMmnD,GAAG,GAAG,IAAIV,mBAAJ,CAAwBzmD,SAAxB,CAAZ;IACAmnD,GAAG,CAACvgH,MAAJ,GAAa,IAAb;IACA,OAAOugH,GAAP;EACH;;EACDC,qBAAqB,CAAC/xC,QAAD,EAAW;IAC5B,OAAO,KAAKgyC,mBAAL,CAAyBhB,kBAAkB,CAACzjH,OAAnB,CAA2B,CAACyyE,QAAD,CAA3B,EAAuC,CAAvC,CAAzB,CAAP;EACH;;EACDgyC,mBAAmB,CAAChyC,QAAD,EAAW;IAC1B,OAAO,KAAKiyC,oBAAL,CAA0BjyC,QAA1B,CAAP;EACH;;EACDkyC,kBAAkB,CAAC/4G,KAAD,EAAQ;IACtB,IAAIA,KAAK,GAAG,CAAR,IAAaA,KAAK,IAAI,KAAKk4G,UAAL,CAAgBviH,MAA1C,EAAkD;MAC9C,MAAM2/G,gBAAgB,CAACt1G,KAAD,CAAtB;IACH;;IACD,OAAO,KAAKk4G,UAAL,CAAgBl4G,KAAhB,CAAP;EACH;EACD;;;EACAg5G,IAAI,CAACnyC,QAAD,EAAW;IACX,IAAI,KAAKuxC,oBAAL,KAA8B,KAAKa,sBAAL,EAAlC,EAAiE;MAC7D,MAAMnE,qBAAqB,CAAC,IAAD,EAAOjuC,QAAQ,CAACjgE,GAAhB,CAA3B;IACH;;IACD,OAAO,KAAKkyG,oBAAL,CAA0BjyC,QAA1B,CAAP;EACH;;EACDoyC,sBAAsB,GAAG;IACrB,OAAO,KAAKV,IAAL,CAAU5iH,MAAjB;EACH;;EACDmjH,oBAAoB,CAACjyC,QAAD,EAAW;IAC3B,IAAIA,QAAQ,CAAC0vC,aAAb,EAA4B;MACxB,MAAMnqE,GAAG,GAAG,EAAZ;;MACA,KAAK,IAAIjxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0rE,QAAQ,CAACyvC,iBAAT,CAA2B3gH,MAA/C,EAAuD,EAAEwF,CAAzD,EAA4D;QACxDixC,GAAG,CAACjxC,CAAD,CAAH,GAAS,KAAK+9G,YAAL,CAAkBryC,QAAlB,EAA4BA,QAAQ,CAACyvC,iBAAT,CAA2Bn7G,CAA3B,CAA5B,CAAT;MACH;;MACD,OAAOixC,GAAP;IACH,CAND,MAOK;MACD,OAAO,KAAK8sE,YAAL,CAAkBryC,QAAlB,EAA4BA,QAAQ,CAACyvC,iBAAT,CAA2B,CAA3B,CAA5B,CAAP;IACH;EACJ;;EACD4C,YAAY,CAACryC,QAAD,EAAW4vC,yBAAX,EAAsC;IAC9C,MAAMtqD,OAAO,GAAGsqD,yBAAyB,CAACtqD,OAA1C;IACA,IAAIlQ,IAAJ;;IACA,IAAI;MACAA,IAAI,GACAw6D,yBAAyB,CAAC1nC,YAA1B,CAAuCnuE,GAAvC,CAA2C4vF,GAAG,IAAI,KAAK2oB,0BAAL,CAAgC3oB,GAAhC,CAAlD,CADJ;IAEH,CAHD,CAIA,OAAOj4F,CAAP,EAAU;MACN,IAAIA,CAAC,CAACo8G,MAAN,EAAc;QACVp8G,CAAC,CAACo8G,MAAF,CAAS,IAAT,EAAe9tC,QAAQ,CAACjgE,GAAxB;MACH;;MACD,MAAMrO,CAAN;IACH;;IACD,IAAIyE,GAAJ;;IACA,IAAI;MACAA,GAAG,GAAGmvD,OAAO,CAAC,GAAGlQ,IAAJ,CAAb;IACH,CAFD,CAGA,OAAO1jD,CAAP,EAAU;MACN,MAAMw8G,kBAAkB,CAAC,IAAD,EAAOx8G,CAAP,EAAUA,CAAC,CAAC2O,KAAZ,EAAmB2/D,QAAQ,CAACjgE,GAA5B,CAAxB;IACH;;IACD,OAAO5J,GAAP;EACH;;EACDm8G,0BAA0B,CAAC3oB,GAAD,EAAM;IAC5B,OAAO,KAAKgoB,SAAL,CAAehoB,GAAG,CAAC5pF,GAAnB,EAAwB4pF,GAAG,CAAC0lB,UAA5B,EAAwC1lB,GAAG,CAAC5uE,QAAJ,GAAe,IAAf,GAAsBitE,kBAA9D,CAAP;EACH;;EACD2pB,SAAS,CAAC5xG,GAAD,EAAMsvG,UAAN,EAAkB9rC,aAAlB,EAAiC;IACtC,IAAIxjE,GAAG,KAAKqxG,mBAAmB,CAACmB,YAAhC,EAA8C;MAC1C,OAAO,IAAP;IACH;;IACD,IAAIlD,UAAU,YAAYxxB,IAA1B,EAAgC;MAC5B,OAAO,KAAK20B,aAAL,CAAmBzyG,GAAnB,EAAwBwjE,aAAxB,CAAP;IACH,CAFD,MAGK;MACD,OAAO,KAAKkvC,gBAAL,CAAsB1yG,GAAtB,EAA2BwjE,aAA3B,EAA0C8rC,UAA1C,CAAP;IACH;EACJ;;EACDqD,cAAc,CAACC,KAAD,EAAQ;IAClB,KAAK,IAAIr+G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKm9G,MAAL,CAAY3iH,MAAhC,EAAwCwF,CAAC,EAAzC,EAA6C;MACzC,IAAI,KAAKm9G,MAAL,CAAYn9G,CAAZ,MAAmBq+G,KAAvB,EAA8B;QAC1B,IAAI,KAAKjB,IAAL,CAAUp9G,CAAV,MAAiBy8G,SAArB,EAAgC;UAC5B,KAAKW,IAAL,CAAUp9G,CAAV,IAAe,KAAK69G,IAAL,CAAU,KAAKd,UAAL,CAAgB/8G,CAAhB,CAAV,CAAf;QACH;;QACD,OAAO,KAAKo9G,IAAL,CAAUp9G,CAAV,CAAP;MACH;IACJ;;IACD,OAAOy8G,SAAP;EACH;EACD;;;EACA6B,YAAY,CAAC7yG,GAAD,EAAMwjE,aAAN,EAAqB;IAC7B,IAAIA,aAAa,KAAKykB,kBAAtB,EAA0C;MACtC,OAAOzkB,aAAP;IACH,CAFD,MAGK;MACD,MAAMyqC,eAAe,CAAC,IAAD,EAAOjuG,GAAP,CAArB;IACH;EACJ;EACD;;;EACAyyG,aAAa,CAACzyG,GAAD,EAAMwjE,aAAN,EAAqB;IAC9B,MAAMptE,GAAG,GAAG,KAAKu8G,cAAL,CAAoB3yG,GAAG,CAACuJ,EAAxB,CAAZ;;IACA,OAAQnT,GAAG,KAAK46G,SAAT,GAAsB56G,GAAtB,GAA4B,KAAKy8G,YAAL,CAAkB7yG,GAAlB,EAAuBwjE,aAAvB,CAAnC;EACH;EACD;;;EACAkvC,gBAAgB,CAAC1yG,GAAD,EAAMwjE,aAAN,EAAqB8rC,UAArB,EAAiC;IAC7C,IAAIyC,GAAJ;;IACA,IAAIzC,UAAU,YAAY/5B,QAA1B,EAAoC;MAChCw8B,GAAG,GAAG,KAAKvgH,MAAX;IACH,CAFD,MAGK;MACDugH,GAAG,GAAG,IAAN;IACH;;IACD,OAAOA,GAAG,YAAYV,mBAAtB,EAA2C;MACvC,MAAMyB,IAAI,GAAGf,GAAb;;MACA,MAAM37G,GAAG,GAAG08G,IAAI,CAACH,cAAL,CAAoB3yG,GAAG,CAACuJ,EAAxB,CAAZ;;MACA,IAAInT,GAAG,KAAK46G,SAAZ,EACI,OAAO56G,GAAP;MACJ27G,GAAG,GAAGe,IAAI,CAACthH,MAAX;IACH;;IACD,IAAIugH,GAAG,KAAK,IAAZ,EAAkB;MACd,OAAOA,GAAG,CAAC7mG,GAAJ,CAAQlL,GAAG,CAACob,KAAZ,EAAmBooD,aAAnB,CAAP;IACH,CAFD,MAGK;MACD,OAAO,KAAKqvC,YAAL,CAAkB7yG,GAAlB,EAAuBwjE,aAAvB,CAAP;IACH;EACJ;;EACc,IAAXurC,WAAW,GAAG;IACd,MAAMnkD,SAAS,GAAGmoD,aAAa,CAAC,IAAD,EAAQ/3G,CAAD,IAAO,OAAOA,CAAC,CAACgF,GAAF,CAAM+uG,WAAb,GAA2B,IAAzC,CAAb,CACbvvG,IADa,CACR,IADQ,CAAlB;;IAEA,OAAQ,kCAAiCorD,SAAU,IAAnD;EACH;;EACDrrD,QAAQ,GAAG;IACP,OAAO,KAAKwvG,WAAZ;EACH;;AA1JqB;;AA4J1BsC,mBAAmB,CAACmB,YAApB,GAAqC,eAAe1D,aAAa,CAAC5jG,GAAd,CAAkB+xB,QAAlB,CAApD;;AACA,SAAS81E,aAAT,CAAuB55D,QAAvB,EAAiC9oD,EAAjC,EAAqC;EACjC,MAAMm1C,GAAG,GAAG,EAAZ;;EACA,KAAK,IAAIjxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4kD,QAAQ,CAACm4D,UAAT,CAAoBviH,MAAxC,EAAgD,EAAEwF,CAAlD,EAAqD;IACjDixC,GAAG,CAACjxC,CAAD,CAAH,GAASlE,EAAE,CAAC8oD,QAAQ,CAACg5D,kBAAT,CAA4B59G,CAA5B,CAAD,CAAX;EACH;;EACD,OAAOixC,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwtE,iBAAT,CAA2B53F,KAA3B,EAAkC0kC,KAAK,GAAGmjB,WAAW,CAACe,OAAtD,EAA+D;EAC3D,MAAMgJ,KAAK,GAAGgG,QAAQ,EAAtB,CAD2D,CAE3D;EACA;;EACA,IAAIhG,KAAK,KAAK,IAAd,EAAoB;IAChB;IACAjmE,SAAS,IAAI28D,kCAAkC,CAACsvC,iBAAD,CAA/C;IACA,OAAO73E,QAAQ,CAAC/f,KAAD,EAAQ0kC,KAAR,CAAf;EACH;;EACD,MAAM+kB,KAAK,GAAGyO,eAAe,EAA7B;EACA,OAAO2K,qBAAqB,CAACpZ,KAAD,EAAQmI,KAAR,EAAe7N,iBAAiB,CAAC/jD,KAAD,CAAhC,EAAyC0kC,KAAzC,CAA5B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmzD,gBAAT,GAA4B;EACxB,MAAMxyC,GAAG,GAAG15D,SAAS,GAAI,gEAAJ,GAAsE,SAA3F;EACA,MAAM,IAAI9I,KAAJ,CAAUwiE,GAAV,CAAN;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyyC,oBAAT,CAA8B/zG,IAA9B,EAAoC;EAChC;EACA,IAAI4H,SAAJ,EAAe;IACX,IAAI;MACA;MACA;MACA;MACA,OAAQimF,wBAAwB,CAAC,OAAD,EAAW,gBAAe7tF,IAAK,kBAA/B,CAAzB,CAA4EvQ,KAA5E,CAAP;IACH,CALD,CAMA,OAAO+C,CAAP,EAAU;MACN;MACA,OAAO/C,KAAP;IACH;EACJ,CAXD,MAYK;IACD,MAAM,IAAIqP,KAAJ,CAAU,6GAAV,CAAN;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk1G,eAAT,CAAyBxxG,IAAzB,EAA+BvW,IAA/B,EAAqC;EACjC2b,SAAS,IAAI25D,mBAAmB,CAAC/+D,IAAD,EAAO,CAAP,EAAU;EAAM;EAAhB,CAAhC;EACAoF,SAAS,IAAI25D,mBAAmB,CAACt1E,IAAD,EAAO,CAAP,EAAU;EAAM;EAAhB,CAAhC;EACA,OAAQuW,IAAI,IAAI;EAAG;EAAX,EAA2CvW,IAAI,IAAI;EAAE;EAA7D;AACH;;AACD,SAASgoH,oBAAT,CAA8BC,aAA9B,EAA6C;EACzCtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAQA,aAAa,IAAI;EAAG;EAArB,EAAsD;EAAM;EAAnE;AACH;;AACD,SAASC,6BAAT,CAAuCD,aAAvC,EAAsD;EAClDtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAO,CAACA,aAAa,GAAG;EAAE;EAAnB,KACH;EAAE;EADN;AAEH;;AACD,SAASE,oBAAT,CAA8BF,aAA9B,EAA6C/vC,QAA7C,EAAuD;EACnDv8D,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACAtsG,SAAS,IAAI25D,mBAAmB,CAAC4C,QAAD,EAAW,CAAX,EAAc;EAAM;EAApB,CAAhC;EACA,OAAS+vC,aAAa,GAAG,CAAC;EAAW;EAA7B,EACH/vC,QAAQ,IAAI;EAAG;EADpB;AAEH;;AACD,SAASkwC,6BAAT,CAAuCH,aAAvC,EAAsD;EAClDtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAQA,aAAa,GAAG;EAAE;EAA1B;AACH;;AACD,SAASI,oBAAT,CAA8BJ,aAA9B,EAA6C;EACzCtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAO,CAACA,aAAa,GAAG;EAAO;EAAxB,KAAyD;EAAE;EAAlE;AACH;;AACD,SAASK,oBAAT,CAA8BL,aAA9B,EAA6CjoH,IAA7C,EAAmD;EAC/C2b,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACAtsG,SAAS,IAAI25D,mBAAmB,CAACt1E,IAAD,EAAO,CAAP,EAAU;EAAM;EAAhB,CAAhC;EACA,OAASioH,aAAa,GAAG,CAAC;EAAO;EAAzB,EAAyD;EAC7DjoH,IAAI,IAAI;EAAE;EADd;AAEH;;AACD,SAASuoH,6BAAT,CAAuCN,aAAvC,EAAsD;EAClDtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAO,CAACA,aAAa,GAAG;EAAE;EAAnB,MACH;EAAE;EADN;AAEH;;AACD,SAASO,6BAAT,CAAuCP,aAAvC,EAAsD;EAClDtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAQA,aAAa,GAAG;EAAE;EAA1B;AACH;;AACD,SAASQ,oBAAT,CAA8BR,aAA9B,EAA6C;EACzCtsG,SAAS,IAAIw5D,YAAY,CAAC8yC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,MAAMjoH,IAAI,GAAGqoH,oBAAoB,CAACJ,aAAD,CAAjC;EACA,OAAOjoH,IAAI,KAAK,CAAT,GAAagoH,oBAAoB,CAACC,aAAD,CAAjC,GAAmDjoH,IAA1D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0oH,iBAAT,CAA2B19G,GAA3B,EAAgC29G,KAAhC,EAAuC;EACnC,IAAIhtG,SAAJ,EAAe;IACXnW,MAAM,CAACixF,cAAP,CAAsBzrF,GAAtB,EAA2B,OAA3B,EAAoC;MAAEtL,KAAK,EAAEipH,KAAT;MAAgBC,UAAU,EAAE;IAA5B,CAApC;EACH,CAFD,MAGK;IACD,MAAM,IAAI/1G,KAAJ,CAAU,6FAAV,CAAN;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASg2G,iBAAT,CAA2B79G,GAA3B,EAAgC89G,WAAhC,EAA6C;EACzC,IAAIntG,SAAJ,EAAe;IACXnW,MAAM,CAACixF,cAAP,CAAsBzrF,GAAtB,EAA2B,OAA3B,EAAoC;MAAE8U,GAAG,EAAEgpG,WAAP;MAAoBF,UAAU,EAAE;IAAhC,CAApC;EACH,CAFD,MAGK;IACD,MAAM,IAAI/1G,KAAJ,CAAU,6FAAV,CAAN;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIk2G,qBAAJ;AACA,IAAIC,oBAAJ;AACA,IAAIC,UAAJ;AACA,IAAIC,eAAJ;AACA,IAAIC,cAAJ;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,8BAAT,CAAwC1vC,KAAxC,EAA+C;EAC3C,MAAM2vC,UAAU,GAAG3vC,KAAnB;EACA,MAAMkI,KAAK,GAAG0nC,eAAe,CAACD,UAAU,CAACxyG,IAAZ,EAAkB6iE,KAAK,CAACvlB,QAAN,IAAkBulB,KAAK,CAACvlB,QAAN,CAAepgD,IAAnD,CAA7B;EACA,OAAO6tE,KAAK,CAACp4E,MAAN,CAAakwE,KAAK,CAACgY,SAAnB,CAAP;AACH;;AACD,MAAM63B,SAAN,SAAwB/lH,KAAxB,CAA8B;;AAE9B,MAAMgmH,cAAN,SAA6BhmH,KAA7B,CAAmC;;AAEnC,MAAMimH,aAAN,SAA4BjmH,KAA5B,CAAkC;;AAElC,SAAS8lH,eAAT,CAAyBzyG,IAAzB,EAA+B9C,IAA/B,EAAqC;EACjC,QAAQ8C,IAAR;IACI,KAAK;IAAE;IAAP;MACI,IAAIoyG,UAAU,KAAK3oH,SAAnB,EACI2oH,UAAU,GAAG,IAAIM,SAAJ,EAAb;MACJ,OAAON,UAAP;;IACJ,KAAK;IAAE;IAAP;MACI,IAAI,CAACttG,SAAD,IAAc,CAACA,SAAS,CAAC49D,iBAA7B,EAAgD;QAC5C,IAAI2vC,eAAe,KAAK5oH,SAAxB,EACI4oH,eAAe,GAAG,IAAIM,cAAJ,EAAlB;QACJ,OAAON,eAAP;MACH;;MACD,IAAIH,qBAAqB,KAAKzoH,SAA9B,EACIyoH,qBAAqB,GAAG,IAAIvpG,GAAJ,EAAxB;MACJ,IAAIkqG,cAAc,GAAGX,qBAAqB,CAACjpG,GAAtB,CAA0B/L,IAA1B,CAArB;;MACA,IAAI21G,cAAc,KAAKppH,SAAvB,EAAkC;QAC9BopH,cAAc,GAAG,KAAK5B,oBAAoB,CAAC,mBAAmB6B,UAAU,CAAC51G,IAAD,CAA9B,CAAzB,GAAjB;QACAg1G,qBAAqB,CAACzoG,GAAtB,CAA0BvM,IAA1B,EAAgC21G,cAAhC;MACH;;MACD,OAAOA,cAAP;;IACJ,KAAK;IAAE;IAAP;MACI,IAAI,CAAC/tG,SAAD,IAAc,CAACA,SAAS,CAAC49D,iBAA7B,EAAgD;QAC5C,IAAI4vC,cAAc,KAAK7oH,SAAvB,EACI6oH,cAAc,GAAG,IAAIM,aAAJ,EAAjB;QACJ,OAAON,cAAP;MACH;;MACD,IAAIH,oBAAoB,KAAK1oH,SAA7B,EACI0oH,oBAAoB,GAAG,IAAIxpG,GAAJ,EAAvB;MACJ,IAAIoqG,aAAa,GAAGZ,oBAAoB,CAAClpG,GAArB,CAAyB/L,IAAzB,CAApB;;MACA,IAAI61G,aAAa,KAAKtpH,SAAtB,EAAiC;QAC7BspH,aAAa,GAAG,KAAK9B,oBAAoB,CAAC,kBAAkB6B,UAAU,CAAC51G,IAAD,CAA7B,CAAzB,GAAhB;QACAi1G,oBAAoB,CAAC1oG,GAArB,CAAyBvM,IAAzB,EAA+B61G,aAA/B;MACH;;MACD,OAAOA,aAAP;EAhCR;AAkCH;;AACD,SAASD,UAAT,CAAoB/rE,IAApB,EAA0B;EACtB,IAAIA,IAAI,IAAI,IAAZ,EACI,OAAO,EAAP;EACJ,MAAM5vC,KAAK,GAAG4vC,IAAI,CAACiL,WAAL,CAAiB,WAAjB,CAAd;EACA,OAAO,OAAO76C,KAAK,KAAK,CAAC,CAAX,GAAe4vC,IAAf,GAAsBA,IAAI,CAACv0C,KAAL,CAAW,CAAX,EAAc2E,KAAd,CAA7B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAM67G,gBAAgB,GAAG,MAAMC,KAAN,CAAY;EACjCtqH,WAAW,CAACqX,IAAD,EAAO66E,SAAP,EAAkBv9B,QAAlB,EAA4B41D,OAA5B,EAAqC7sC,SAArC,EAAgD+M,SAAhD,EAA2DjpE,IAA3D,EAAiEmiE,iBAAjE,EAAoFE,iBAApF,EAAuG2mC,kBAAvG,EAA2HxwC,eAA3H,EAA4IuJ,eAA5I,EAA6JknC,iBAA7J,EAAgLC,oBAAhL,EAAsM79B,aAAtM,EAAqNC,kBAArN,EAAyOS,YAAzO,EAAuPC,iBAAvP,EAA0QC,SAA1Q,EAAqRC,cAArR,EAAqSC,YAArS,EAAmTve,OAAnT,EAA4T2N,cAA5T,EAA4U03B,UAA5U,EAAwVkW,iBAAxV,EAA2WC,YAA3W,EAAyXx/B,UAAzX,EAAqYrN,OAArY,EAA8YrB,MAA9Y,EAAsZmuC,mBAAtZ,EAA2aC,MAA3a,EAAmbC,KAAnb,EAA0b;IACjc,KAAK1zG,IAAL,GAAYA,IAAZ;IACA,KAAK66E,SAAL,GAAiBA,SAAjB;IACA,KAAKv9B,QAAL,GAAgBA,QAAhB;IACA,KAAK41D,OAAL,GAAeA,OAAf;IACA,KAAK7sC,SAAL,GAAiBA,SAAjB;IACA,KAAK+M,SAAL,GAAiBA,SAAjB;IACA,KAAKjpE,IAAL,GAAYA,IAAZ;IACA,KAAKmiE,iBAAL,GAAyBA,iBAAzB;IACA,KAAKE,iBAAL,GAAyBA,iBAAzB;IACA,KAAK2mC,kBAAL,GAA0BA,kBAA1B;IACA,KAAKxwC,eAAL,GAAuBA,eAAvB;IACA,KAAKuJ,eAAL,GAAuBA,eAAvB;IACA,KAAKknC,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,oBAAL,GAA4BA,oBAA5B;IACA,KAAK79B,aAAL,GAAqBA,aAArB;IACA,KAAKC,kBAAL,GAA0BA,kBAA1B;IACA,KAAKS,YAAL,GAAoBA,YAApB;IACA,KAAKC,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKve,OAAL,GAAeA,OAAf;IACA,KAAK2N,cAAL,GAAsBA,cAAtB;IACA,KAAK03B,UAAL,GAAkBA,UAAlB;IACA,KAAKkW,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKx/B,UAAL,GAAkBA,UAAlB;IACA,KAAKrN,OAAL,GAAeA,OAAf;IACA,KAAKrB,MAAL,GAAcA,MAAd;IACA,KAAKmuC,mBAAL,GAA2BA,mBAA3B;IACA,KAAKC,MAAL,GAAcA,MAAd;IACA,KAAKC,KAAL,GAAaA,KAAb;EACH;;EACY,IAATC,SAAS,GAAG;IACZ,MAAMpkB,GAAG,GAAG,EAAZ;IACAqkB,oBAAoB,CAAC,KAAK7/B,UAAN,EAAkBwb,GAAlB,CAApB;IACA,OAAOA,GAAG,CAAChyF,IAAJ,CAAS,EAAT,CAAP;EACH;;EACQ,IAALs2G,KAAK,GAAG;IACR,OAAOxpC,iBAAiB,CAAC,KAAKrqE,IAAN,CAAjB,IAAiC,cAAa,KAAKA,IAAK,GAA/D;EACH;;AA1CgC,CAArC;;AA4CA,MAAM8zG,KAAN,CAAY;EACRnrH,WAAW,CAACuiF,MAAD,EAAS;EACpBlrE,IADW,EACL;EACN7I,KAFW,EAEJ;EACP48G,iBAHW,EAGQ;EACnB/mC,aAJW,EAII;EACf2I,cALW,EAKK;EAChBC,YANW,EAMG;EACdo+B,oBAPW,EAOW;EACtBC,gBARW,EAQO;EAClBp2D,KATW,EASJ;EACPo/B,eAVW,EAUM;EACjBp0F,KAXW,EAWJ;EACP2vF,KAZW,EAYJ;EACP07B,WAbW,EAaE;EACbjW,UAdW,EAcC;EACZkW,aAfW,EAeI;EACfjmD,MAhBW,EAgBH;EACRyX,OAjBW,EAiBF;EACTyuC,MAlBW,EAkBH;EACRjrH,IAnBW,EAmBL;EACNk9G,cApBW,EAoBK;EAChBnyB,KArBW,EAqBJ;EACP3kF,MAtBW,EAsBH;EACRs9E,UAvBW,EAuBC;EACZ1sE,MAxBW,EAwBH;EACRk0G,iBAzBW,EAyBQ;EACnBC,cA1BW,EA0BK;EAChB74B,OA3BW,EA2BF;EACT84B,kBA5BW,EA4BS;EACpBC,eA7BW,EA6BM;EACjBC,aA9BW,EA8BI;EACfC,aA/BW,EA+BI;IACX,KAAKxpC,MAAL,GAAcA,MAAd;IACA,KAAKlrE,IAAL,GAAYA,IAAZ;IACA,KAAK7I,KAAL,GAAaA,KAAb;IACA,KAAK48G,iBAAL,GAAyBA,iBAAzB;IACA,KAAK/mC,aAAL,GAAqBA,aAArB;IACA,KAAK2I,cAAL,GAAsBA,cAAtB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKo+B,oBAAL,GAA4BA,oBAA5B;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKp2D,KAAL,GAAaA,KAAb;IACA,KAAKo/B,eAAL,GAAuBA,eAAvB;IACA,KAAKp0F,KAAL,GAAaA,KAAb;IACA,KAAK2vF,KAAL,GAAaA,KAAb;IACA,KAAK07B,WAAL,GAAmBA,WAAnB;IACA,KAAKjW,UAAL,GAAkBA,UAAlB;IACA,KAAKkW,aAAL,GAAqBA,aAArB;IACA,KAAKjmD,MAAL,GAAcA,MAAd;IACA,KAAKyX,OAAL,GAAeA,OAAf;IACA,KAAKyuC,MAAL,GAAcA,MAAd;IACA,KAAKjrH,IAAL,GAAYA,IAAZ;IACA,KAAKk9G,cAAL,GAAsBA,cAAtB;IACA,KAAKnyB,KAAL,GAAaA,KAAb;IACA,KAAK3kF,MAAL,GAAcA,MAAd;IACA,KAAKs9E,UAAL,GAAkBA,UAAlB;IACA,KAAK1sE,MAAL,GAAcA,MAAd;IACA,KAAKk0G,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAK74B,OAAL,GAAeA,OAAf;IACA,KAAK84B,kBAAL,GAA0BA,kBAA1B;IACA,KAAKC,eAAL,GAAuBA,eAAvB;IACA,KAAKC,aAAL,GAAqBA,aAArB;IACA,KAAKC,aAAL,GAAqBA,aAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,qBAAqB,CAAC5pC,KAAD,EAAQ;IACzB,MAAM7rC,IAAI,GAAG,EAAb;IACA,IAAI8tC,aAAa,GAAG2N,gBAAgB,CAAC,IAAD,EAAO5P,KAAP,CAApC;;IACA,IAAIiC,aAAa,KAAK,CAAC,CAAvB,EAA0B;MACtB;MACA;MACA,MAAMuM,cAAc,GAAGwB,yBAAyB,CAAC,IAAD,EAAOhQ,KAAP,CAAhD;;MACA,IAAIwO,cAAc,KAAKlC,kBAAvB,EAA2C;QACvC;QACArK,aAAa,GAAGwM,sBAAsB,CAACD,cAAD,CAAtC;QACAxO,KAAK,GAAG4O,qBAAqB,CAACJ,cAAD,EAAiBxO,KAAjB,CAA7B;MACH,CAJD,MAKK,CACD;MACH;IACJ;;IACD,OAAOiC,aAAa,KAAK,CAAC,CAA1B,EAA6B;MACzBloE,SAAS,IAAIioE,kBAAkB,CAAChC,KAAD,EAAQiC,aAAR,CAA/B;MACA,MAAMpK,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAL,CAAa5+D,IAAb,CAAkB6iE,aAAa,GAAG;MAAE;MAApC,CAAd;MACA9tC,IAAI,CAAC/xC,IAAL,CAAUynH,cAAc,CAAChyC,KAAD,EAAQmI,KAAR,CAAxB;MACA,MAAMwO,cAAc,GAAGxO,KAAK,CAACiC,aAAa,GAAG;MAAE;MAAnB,CAA5B;;MACA,IAAIuM,cAAc,KAAKlC,kBAAvB,EAA2C;QACvCrK,aAAa,GAAG,CAAC,CAAjB;MACH,CAFD,MAGK;QACDA,aAAa,GAAGwM,sBAAsB,CAACD,cAAD,CAAtC;QACAxO,KAAK,GAAG4O,qBAAqB,CAACJ,cAAD,EAAiBxO,KAAjB,CAA7B;MACH;IACJ;;IACD,OAAO7rC,IAAP;EACH;;EACQ,IAAL20E,KAAK,GAAG;IACR,OAAO/7B,mBAAmB,CAAC,KAAK93E,IAAN,CAAnB,IAAmC,cAAa,KAAKA,IAAK,GAAjE;EACH;;EACS,IAAN60G,MAAM,GAAG;IACT,MAAMh3D,KAAK,GAAG,EAAd;IACA,IAAI,KAAKA,KAAL,GAAa;IAAG;IAApB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,0BAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAG;IAApB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,0BAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAI;IAArB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAG;IAApB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,uBAAX;IACJ,IAAI,KAAK0wD,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAC1wD,IAAN,CAAW,wBAAX;IACJ,OAAO0wD,KAAK,CAACtgD,IAAN,CAAW,GAAX,CAAP;EACH;;EACY,IAATo2G,SAAS,GAAG;IACZ,IAAI,KAAK3zG,IAAL,GAAY;IAAE;IAAlB,EACI,OAAO,KAAKnX,KAAZ;IACJ,MAAM0mG,GAAG,GAAG,EAAZ;IACA,MAAMS,OAAO,GAAG,OAAO,KAAKnnG,KAAZ,KAAsB,QAAtB,IAAkC,KAAKA,KAAvC,IAAgD,KAAKgrH,KAArE;IACAtkB,GAAG,CAACpiG,IAAJ,CAAS,GAAT,EAAc6iG,OAAd;;IACA,IAAI,KAAKnyC,KAAT,EAAgB;MACZ0xC,GAAG,CAACpiG,IAAJ,CAAS,GAAT,EAAc,KAAK0nH,MAAnB;IACH;;IACD,IAAI,KAAKr8B,KAAT,EAAgB;MACZ,KAAK,IAAIlmF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKkmF,KAAL,CAAW1rF,MAA/B,GAAwC;QACpC,MAAM2vD,QAAQ,GAAG,KAAK+7B,KAAL,CAAWlmF,CAAC,EAAZ,CAAjB;;QACA,IAAI,OAAOmqD,QAAP,IAAmB,QAAvB,EAAiC;UAC7B;QACH;;QACD,MAAMitD,SAAS,GAAG,KAAKlxB,KAAL,CAAWlmF,CAAC,EAAZ,CAAlB;QACAi9F,GAAG,CAACpiG,IAAJ,CAAS,GAAT,EAAcsvD,QAAd,EAAwB,IAAxB,EAA8BitD,SAA9B,EAAyC,GAAzC;MACH;IACJ;;IACDna,GAAG,CAACpiG,IAAJ,CAAS,GAAT;IACAymH,oBAAoB,CAAC,KAAK1/B,KAAN,EAAaqb,GAAb,CAApB;IACAA,GAAG,CAACpiG,IAAJ,CAAS,IAAT,EAAe6iG,OAAf,EAAwB,GAAxB;IACA,OAAOT,GAAG,CAAChyF,IAAJ,CAAS,EAAT,CAAP;EACH;;EACiB,IAAdu3G,cAAc,GAAG;IACjB,OAAOC,mBAAmB,CAAC,IAAD,EAAO,KAAP,CAA1B;EACH;;EACiB,IAAdC,cAAc,GAAG;IACjB,OAAOD,mBAAmB,CAAC,IAAD,EAAO,IAAP,CAA1B;EACH;;EACsB,IAAnBE,mBAAmB,GAAG;IACtB,OAAO,KAAKh4B,eAAL,GAAuB;IAAQ;IAAtC;EACH;;EACoB,IAAjBi4B,iBAAiB,GAAG;IACpB,OAAO,KAAKD,mBAAL,IACF,KAAKh4B,eAAL,KAAyB;IAAG;IAD1B,CAAP;EAEH;;AAzKO;;AA2KZ,MAAMk4B,UAAU,GAAGrB,KAAnB;;AACA,SAASiB,mBAAT,CAA6BnyC,KAA7B,EAAoCkkC,YAApC,EAAkD;EAC9C,MAAM9zB,KAAK,GAAGpQ,KAAK,CAACsI,MAAN,CAAa/gE,IAA3B;EACA,MAAMirG,QAAQ,GAAG,EAAjB;EACA,MAAMC,KAAK,GAAGvO,YAAY,GAAGlkC,KAAK,CAAC6xC,aAAT,GAAyB7xC,KAAK,CAAC8xC,aAAzD;EACA,MAAMh1G,IAAI,GAAGyxG,oBAAoB,CAACkE,KAAD,CAAjC;EACA,MAAMlsH,IAAI,GAAGqoH,oBAAoB,CAAC6D,KAAD,CAAjC;EACA,IAAIC,UAAU,GAAGnsH,IAAI,KAAK,CAA1B;EACA,IAAIosH,MAAM,GAAGD,UAAU,GAAGnsH,IAAH,GAAUuW,IAAjC;;EACA,OAAO61G,MAAM,KAAK,CAAlB,EAAqB;IACjB,MAAMC,OAAO,GAAGxiC,KAAK,CAACuiC,MAAD,CAArB;IACA,MAAME,SAAS,GAAGziC,KAAK,CAACuiC,MAAM,GAAG,CAAV,CAAvB;IACAH,QAAQ,CAAC3nF,OAAT,CAAiB;MACb1vB,GAAG,EAAEy3G,OADQ;MAEbr+G,KAAK,EAAEo+G,MAFM;MAGbD,UAAU,EAAEA,UAHC;MAIbI,aAAa,EAAErE,6BAA6B,CAACoE,SAAD,CAJ/B;MAKbE,aAAa,EAAEjE,6BAA6B,CAAC+D,SAAD,CAL/B;MAMbG,SAAS,EAAEpE,oBAAoB,CAACiE,SAAD,CANlB;MAObI,SAAS,EAAE1E,oBAAoB,CAACsE,SAAD;IAPlB,CAAjB;IASA,IAAIF,MAAM,KAAK71G,IAAf,EACI41G,UAAU,GAAG,KAAb;IACJC,MAAM,GAAGpE,oBAAoB,CAACsE,SAAD,CAA7B;EACH;;EACDL,QAAQ,CAACjoH,IAAT,CAAc,CAAC25G,YAAY,GAAGlkC,KAAK,CAAC4xC,eAAT,GAA2B5xC,KAAK,CAAC0xC,cAA9C,KAAiE,IAA/E;EACA,OAAOc,QAAP;AACH;;AACD,SAASxB,oBAAT,CAA8BhxC,KAA9B,EAAqC2sB,GAArC,EAA0C;EACtC,OAAO3sB,KAAP,EAAc;IACV2sB,GAAG,CAACpiG,IAAJ,CAASy1E,KAAK,CAAC+wC,SAAf;IACA/wC,KAAK,GAAGA,KAAK,CAACz5E,IAAd;EACH;AACJ;;AACD,MAAM2sH,SAAN,SAAwBnpH,KAAxB,CAA8B;;AAE9B,IAAIopH,eAAJ,EAAqB;AACrB;;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,gBAAT,CAA0BjjD,IAA1B,EAAgC;EAC5B,IAAIgjD,eAAe,KAAKtsH,SAAxB,EACIssH,eAAe,GAAG,IAAID,SAAJ,EAAlB;EACJ,OAAOC,eAAe,CAACpjH,MAAhB,CAAuBogE,IAAvB,CAAP;AACH;;AACD,MAAMkjD,cAAN,SAA6BtpH,KAA7B,CAAmC;;AAEnC,MAAMupH,YAAN,SAA2BvpH,KAA3B,CAAiC;;AAEjC,MAAMwpH,eAAN,SAA8BxpH,KAA9B,CAAoC;;AAEpC,MAAMypH,eAAN,SAA8BzpH,KAA9B,CAAoC;;AAEpC,MAAM0pH,kBAAN,SAAiC1pH,KAAjC,CAAuC;;AAEvC,MAAM2pH,QAAN,SAAuB3pH,KAAvB,CAA6B;;AAE7B,MAAM4pH,QAAN,SAAuB5pH,KAAvB,CAA6B;;AAE7B,SAAS6pH,gBAAT,CAA0BzrC,KAA1B,EAAiC;EAC7B8mC,iBAAiB,CAAC9mC,KAAD,EAAQ,IAAI0rC,UAAJ,CAAe1rC,KAAf,CAAR,CAAjB;AACH;;AACD,SAAS2rC,qBAAT,CAA+B3mC,UAA/B,EAA2C;EACvC8hC,iBAAiB,CAAC9hC,UAAD,EAAa,IAAI4mC,eAAJ,CAAoB5mC,UAApB,CAAb,CAAjB;AACH;;AACD,SAAS6mC,OAAT,CAAiBziH,GAAjB,EAAsB;EAClB,IAAIA,GAAJ,EAAS;IACL,MAAM29G,KAAK,GAAG39G,GAAG,CAAC29G,KAAlB;IACAtyC,aAAa,CAACsyC,KAAD,EAAQ,8CAAR,CAAb;IACA,OAAOA,KAAP;EACH,CAJD,MAKK;IACD,OAAO39G,GAAP;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0iH,MAAT,CAAgBhuH,KAAhB,EAAuBiuH,eAAe,GAAG,KAAzC,EAAgD;EAC5C,MAAMllG,IAAI,GAAGi9D,WAAW,CAAChmF,KAAD,CAAxB;;EACA,IAAI+oB,IAAJ,EAAU;IACN,QAAQA,IAAI,CAACvM,QAAb;MACI,KAAKs6D,IAAI,CAACgwB,SAAV;QACI,OAAO/9E,IAAI,CAACmlG,WAAZ;;MACJ,KAAKp3C,IAAI,CAACq3C,YAAV;QACI,OAAQ,OAAMplG,IAAI,CAACmlG,WAAY,KAA/B;;MACJ,KAAKp3C,IAAI,CAACuuB,YAAV;QACI,MAAMoC,SAAS,GAAG1+E,IAAI,CAAC0+E,SAAvB;;QACA,IAAIwmB,eAAJ,EAAqB;UACjB,OAAOxmB,SAAP;QACH,CAFD,MAGK;UACD,MAAM7C,SAAS,GAAG,MAAM77E,IAAI,CAAC67E,SAAX,GAAuB,GAAzC;UACA,OAAQ6C,SAAS,CAAC18E,KAAV,CAAgB65E,SAAhB,EAA2B,CAA3B,CAAD,GAAkC,GAAzC;QACH;;IAbT;EAeH;;EACD,OAAO,IAAP;AACH;;AACD,MAAMgpB,UAAN,CAAiB;EACb9tH,WAAW,CAACsuH,UAAD,EAAa;IACpB,KAAKA,UAAL,GAAkBA,UAAlB;EACH;EACD;AACJ;AACA;;;EACa,IAALp5D,KAAK,GAAG;IACR,MAAMA,KAAK,GAAG,KAAKo5D,UAAL,CAAgBjuC,KAAhB,CAAd;IACA,OAAO;MACHkuC,cAAc,EAAEr5D,KADb;MAEHs5D,cAAc,EAAEt5D,KAAK,GAAG;MAAE;MAFvB;MAGHihD,YAAY,EAAE,CAAC,EAAEjhD,KAAK,GAAG;MAAE;MAAZ,CAHZ;MAIHu5D,aAAa,EAAE,CAAC,EAAEv5D,KAAK,GAAG;MAAE;MAAZ,CAJb;MAKHw5D,WAAW,EAAE,CAAC,EAAEx5D,KAAK,GAAG;MAAG;MAAb,CALX;MAMHy5D,KAAK,EAAE,CAAC,EAAEz5D,KAAK,GAAG;MAAG;MAAb,CANL;MAOH05D,QAAQ,EAAE,CAAC,EAAE15D,KAAK,GAAG;MAAG;MAAb,CAPR;MAQH9xB,SAAS,EAAE,CAAC,EAAE8xB,KAAK,GAAG;MAAI;MAAd,CART;MASHp/C,MAAM,EAAE,CAAC,EAAEo/C,KAAK,GAAG;MAAI;MAAd,CATN;MAUH25D,oBAAoB,EAAE35D,KAAK,IAAI;MAAG;;IAV/B,CAAP;EAYH;;EACS,IAANtuD,MAAM,GAAG;IACT,OAAOqnH,OAAO,CAAC,KAAKK,UAAL,CAAgBhuC,MAAhB,CAAD,CAAd;EACH;;EACW,IAARwuC,QAAQ,GAAG;IACX,OAAOZ,MAAM,CAAC,KAAKI,UAAL,CAAgBnuC,IAAhB,CAAD,EAAwB,IAAxB,CAAb;EACH;;EACO,IAAJ8hB,IAAI,GAAG;IACP,OAAO,CAAC,KAAKl7D,KAAL,IAAc,EAAf,EAAmB33B,GAAnB,CAAuB2/G,SAAvB,EAAkCn6G,IAAlC,CAAuC,EAAvC,CAAP;EACH;;EACU,IAAP9O,OAAO,GAAG;IACV,OAAO,KAAKwoH,UAAL,CAAgB3tC,OAAhB,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACa,IAAL55C,KAAK,GAAG;IACR,MAAMq7C,KAAK,GAAG,KAAKksC,UAAnB;IACA,MAAMr0C,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAL,CAAagL,UAA3B;IACA,OAAO4jC,YAAY,CAAC/0C,KAAD,EAAQmI,KAAR,CAAnB;EACH;;EACW,IAARztB,QAAQ,GAAG;IACX,OAAO,KAAKulB,KAAL,CAAW8wC,SAAlB;EACH;;EACQ,IAAL9wC,KAAK,GAAG;IACR,OAAO,KAAKo0C,UAAL,CAAgBluC,KAAhB,CAAP;EACH;;EACU,IAAPhR,OAAO,GAAG;IACV,OAAO,KAAKk/C,UAAL,CAAgB5tC,OAAhB,CAAP;EACH;;EACW,IAARnyB,QAAQ,GAAG;IACX,OAAO,KAAK+/D,UAAL,CAAgB1tC,UAAhB,CAAP;EACH;;EACkB,IAAfquC,eAAe,GAAG;IAClB,OAAO,KAAKX,UAAL,CAAgBztC,gBAAhB,CAAP;EACH;;EACW,IAARve,QAAQ,GAAG;IACX,OAAO,KAAKgsD,UAAL,CAAgBxtC,QAAhB,CAAP;EACH;;EACY,IAATwnB,SAAS,GAAG;IACZ,OAAO,KAAKgmB,UAAL,CAAgBvtC,SAAhB,CAAP;EACH;;EACY,IAATmuC,SAAS,GAAG;IACZ,OAAOjB,OAAO,CAAC,KAAKK,UAAL,CAAgBttC,UAAhB,CAAD,CAAd;EACH;;EACO,IAAJxgF,IAAI,GAAG;IACP,OAAOytH,OAAO,CAAC,KAAKK,UAAL,CAAgB/tC,IAAhB,CAAD,CAAd;EACH;;EACY,IAAT4uC,SAAS,GAAG;IACZ,OAAOlB,OAAO,CAAC,KAAKK,UAAL,CAAgBrtC,UAAhB,CAAD,CAAd;EACH;;EACkB,IAAfmuC,eAAe,GAAG;IAClB,OAAOnB,OAAO,CAAC,KAAKK,UAAL,CAAgBptC,gBAAhB,CAAD,CAAd;EACH;;EACU,IAAPqpC,OAAO,GAAG;IACV,OAAO,KAAK+D,UAAL,CAAgBhtC,OAAhB,CAAP;EACH;;EACQ,IAAL+tC,KAAK,GAAG;IACR,OAAO,KAAKf,UAAL,CAAgB7tC,MAAhB,CAAP;EACH;;EACK,IAAF9hE,EAAE,GAAG;IACL,OAAO,KAAK2vG,UAAL,CAAgB/sC,EAAhB,CAAP;EACH;;EACQ,IAAL/E,KAAK,GAAG;IACR,OAAO8yC,YAAY,CAAC,KAAKp1C,KAAN,EAAa,KAAKo0C,UAAlB,EAA8B7sC,aAA9B,EAA6C,KAAKvH,KAAL,CAAWyJ,iBAAxD,CAAnB;EACH;;EACO,IAAJlH,IAAI,GAAG;IACP,OAAO6yC,YAAY,CAAC,KAAKp1C,KAAN,EAAa,KAAKo0C,UAAlB,EAA8B,KAAKp0C,KAAL,CAAWyJ,iBAAzC,EAA4D,KAAKzJ,KAAL,CAAW2J,iBAAvE,CAAnB;EACH;;EACU,IAAP0rC,OAAO,GAAG;IACV,OAAOD,YAAY,CAAC,KAAKp1C,KAAN,EAAa,KAAKo0C,UAAlB,EAA8B,KAAKp0C,KAAL,CAAW2J,iBAAzC,EAA4D,KAAKyqC,UAAL,CAAgBnqH,MAA5E,CAAnB;EACH;EACD;AACJ;AACA;;;EACkB,IAAVqrH,UAAU,GAAG;IACb,MAAMA,UAAU,GAAG,EAAnB;IACA,IAAIjkC,KAAK,GAAG,KAAK2jC,SAAjB;;IACA,OAAO3jC,KAAP,EAAc;MACVikC,UAAU,CAAChrH,IAAX,CAAgB+mF,KAAhB;MACAA,KAAK,GAAGA,KAAK,CAAC/qF,IAAd;IACH;;IACD,OAAOgvH,UAAP;EACH;;AAzGY;;AA2GjB,SAAST,SAAT,CAAmB9lG,IAAnB,EAAyB;EACrB,IAAIA,IAAI,CAAC5R,IAAL,KAAc,kBAAlB,EAAsC;IAClC,OAAO,CAAC4R,IAAI,CAACwmG,QAAL,IAAiB,EAAlB,EAAsBrgH,GAAtB,CAA0B2/G,SAA1B,EAAqCn6G,IAArC,CAA0C,EAA1C,CAAP;EACH,CAFD,MAGK,IAAIqU,IAAI,CAAC5R,IAAL,KAAc,cAAlB,EAAkC;IACnC,MAAM,IAAIhE,KAAJ,CAAU,iBAAV,CAAN;EACH,CAFI,MAGA;IACD,OAAO66G,MAAM,CAACjlG,IAAI,CAAC2mE,MAAN,EAAc,IAAd,CAAN,IAA6B,EAApC;EACH;AACJ;;AACD,SAAS0/B,YAAT,CAAsBp1C,KAAtB,EAA6BkI,KAA7B,EAAoC5oD,KAApC,EAA2C6b,GAA3C,EAAgD;EAC5C,IAAIqzD,OAAO,GAAG,EAAd;;EACA,KAAK,IAAIl6F,KAAK,GAAGgrB,KAAjB,EAAwBhrB,KAAK,GAAG6mC,GAAhC,EAAqC7mC,KAAK,EAA1C,EAA8C;IAC1Ck6F,OAAO,CAAClkG,IAAR,CAAa;MAAEgK,KAAK,EAAEA,KAAT;MAAgB+7D,CAAC,EAAE2P,KAAK,CAAC14D,IAAN,CAAWhT,KAAX,CAAnB;MAAsCkhH,CAAC,EAAEttC,KAAK,CAAC5zE,KAAD;IAA9C,CAAb;EACH;;EACD,OAAO;IAAEgrB,KAAK,EAAEA,KAAT;IAAgB6b,GAAG,EAAEA,GAArB;IAA0BlxC,MAAM,EAAEkxC,GAAG,GAAG7b,KAAxC;IAA+CkvE,OAAO,EAAEA;EAAxD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsmB,YAAT,CAAsB/0C,KAAtB,EAA6BmI,KAA7B,EAAoC;EAChC,IAAInI,KAAJ,EAAW;IACP,MAAM01C,UAAU,GAAG,EAAnB;IACA,IAAIC,WAAW,GAAG31C,KAAlB;;IACA,OAAO21C,WAAP,EAAoB;MAChBD,UAAU,CAACnrH,IAAX,CAAgBynH,cAAc,CAAC2D,WAAD,EAAcxtC,KAAd,CAA9B;MACAwtC,WAAW,GAAGA,WAAW,CAACpvH,IAA1B;IACH;;IACD,OAAOmvH,UAAP;EACH,CARD,MASK;IACD,OAAO,EAAP;EACH;AACJ;;AACD,SAAS1D,cAAT,CAAwBhyC,KAAxB,EAA+BmI,KAA/B,EAAsC;EAClC,MAAMytC,QAAQ,GAAGztC,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAAtB;EACA,MAAMohF,MAAM,GAAG1J,WAAW,CAAC2pC,QAAD,CAA1B;EACA,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAM71C,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB;;EACA,KAAK,IAAIz2E,CAAC,GAAGswE,KAAK,CAAC+S,cAAnB,EAAmCrjF,CAAC,GAAGswE,KAAK,CAACgT,YAA7C,EAA2DtjF,CAAC,EAA5D,EAAgE;IAC5D,MAAMwjB,GAAG,GAAG+sD,KAAK,CAAC14D,IAAN,CAAW7X,CAAX,CAAZ;IACAmmH,SAAS,CAACtrH,IAAV,CAAe2oB,GAAG,CAAC9V,IAAnB;IACA04G,SAAS,CAACvrH,IAAV,CAAe49E,KAAK,CAACz4E,CAAD,CAApB;EACH;;EACD,OAAO;IACHs4F,IAAI,EAAEisB,MAAM,CAACt+B,MAAD,CADT;IAEHv4E,IAAI,EAAE83E,mBAAmB,CAAClV,KAAK,CAAC5iE,IAAP,CAFtB;IAGH4iE,KAHG;IAIH2V,MAAM,EAAEA,MAJL;IAKH6/B,QAAQ,EAAET,YAAY,CAAC/0C,KAAK,CAACsR,KAAP,EAAcnJ,KAAd,CALnB;IAMH0tC,SANG;IAOHC,SAPG;IAQHxhE,QAAQ,EAAEyhE,sBAAsB,CAAC/1C,KAAD,EAAQC,KAAR,EAAekI,KAAf,CAR7B;;IASH,IAAI6tC,sBAAJ,GAA6B;MACzB,OAAOh2C,KAAK,CAAC+xC,qBAAN,CAA4B5pC,KAA5B,CAAP;IACH;;EAXE,CAAP;AAaH;;AACD,SAAS4tC,sBAAT,CAAgC/1C,KAAhC,EAAuCC,KAAvC,EAA8CkI,KAA9C,EAAqD;EACjD,MAAM8tC,aAAa,GAAG,EAAtB;;EACA,KAAK,IAAIvmH,CAAC,GAAGswE,KAAK,CAACqyC,mBAAnB,EAAwC3iH,CAAC,GAAGswE,KAAK,CAACsyC,iBAAlD,EAAqE5iH,CAAC,EAAtE,EAA0E;IACtEumH,aAAa,CAAC1rH,IAAd,CAAmB01E,KAAK,CAAC14D,IAAN,CAAW7X,CAAX,CAAnB;EACH;;EACD,MAAMq2D,SAAS,GAAG,EAAlB;;EACA,KAAK,IAAIr2D,CAAC,GAAGswE,KAAK,CAACsyC,iBAAnB,EAAsC5iH,CAAC,GAAGswE,KAAK,CAACgT,YAAhD,EAA8DtjF,CAAC,EAA/D,EAAmE;IAC/Dq2D,SAAS,CAACx7D,IAAV,CAAe01E,KAAK,CAAC14D,IAAN,CAAW7X,CAAX,CAAf;EACH;;EACD,MAAMwmH,iBAAiB,GAAG;IACtBC,KAAK,EAAEC,OAAO,CAACjuC,KAAD,EAAQnI,KAAK,CAACoK,aAAd,CADQ;IAEtBisC,eAAe,EAAED,OAAO,CAACn2C,KAAK,CAAC14D,IAAP,EAAay4D,KAAK,CAACoK,aAAnB,CAFF;IAGtBrkB,SAHsB;IAItBkwD,aAJsB;IAKtBp/B,mBAAmB,EAAE1O,KAAK,CAACnI,KAAK,CAACqyC,mBAAN,GAA4B,CAA7B;EALJ,CAA1B;EAOA,OAAO6D,iBAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,MAAT,CAAgB5kH,KAAhB,EAAuBs/D,GAAvB,EAA4B;EACxB,MAAM/qE,KAAK,GAAGyL,KAAK,CAACs/D,GAAD,CAAnB,CADwB,CAExB;EACA;;EACA,IAAI,OAAO/qE,KAAP,KAAiB,QAArB,EACI,OAAO,UAAP,CALoB,CAMxB;;EACA,MAAMk+C,IAAI,GAAG,aAAal+C,KAAK,CAACyU,QAAN,CAAe,CAAf,CAA1B;EACA,OAAOypC,IAAI,CAACv8B,SAAL,CAAeu8B,IAAI,CAACj6C,MAAL,GAAc,CAA7B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASksH,OAAT,CAAiB1kH,KAAjB,EAAwBs/D,GAAxB,EAA6B;EACzB,IAAIA,GAAG,GAAG,CAAV,EAAa;IACT,OAAO,kBAAP;EACH;;EACD,OAAQ,GAAEslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,IAAGslD,MAAM,CAAC5kH,KAAD,EAAQs/D,GAAG,GAAG,CAAd,CAAiB,EAAvN;AACH;;AACD,MAAM+iD,eAAN,CAAsB;EAClBhuH,WAAW,CAACwwH,eAAD,EAAkB;IACzB,KAAKA,eAAL,GAAuBA,eAAvB;EACH;;EACuB,IAApBC,oBAAoB,GAAG;IACvB,OAAO,KAAKD,eAAL,CAAqB3wC,sBAArB,CAAP;EACH;;EACQ,IAAL6wC,KAAK,GAAG;IACR,OAAO,KAAKF,eAAL,CAAqB3mH,KAArB,CAA2Bo2E,uBAA3B,EACF7wE,GADE,CACE6+G,OADF,CAAP;EAEH;;EACS,IAANrnH,MAAM,GAAG;IACT,OAAOqnH,OAAO,CAAC,KAAKuC,eAAL,CAAqBlwC,MAArB,CAAD,CAAd;EACH;;EACa,IAAVy5B,UAAU,GAAG;IACb,OAAO,KAAKyW,eAAL,CAAqBxwC,WAArB,CAAP;EACH;;EACO,IAAJz9D,IAAI,GAAG;IACP,OAAO,KAAKiuG,eAAL,CAAqBrwC,IAArB,CAAP;EACH;;EACS,IAANyP,MAAM,GAAG;IACT,OAAO,KAAK4gC,eAAL,CAAqB1wC,MAArB,CAAP;EACH;;EACO,IAAJt/E,IAAI,GAAG;IACP,OAAOytH,OAAO,CAAC,KAAKuC,eAAL,CAAqBjwC,IAArB,CAAD,CAAd;EACH;;AAzBiB;AA4BtB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASowC,yBAAT,CAAmCz2C,KAAnC,EAA0CkI,KAA1C,EAAiD;EAC7C,MAAMooC,kBAAkB,GAAGtwC,KAAK,CAACswC,kBAAjC;EACA,IAAIA,kBAAkB,KAAK,IAA3B,EACI;;EACJ,IAAI;IACA,KAAK,IAAI7gH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6gH,kBAAkB,CAACrmH,MAAvC,EAA+CwF,CAAC,EAAhD,EAAoD;MAChD,MAAMinH,MAAM,GAAGpG,kBAAkB,CAAC7gH,CAAD,CAAjC;;MACA,IAAIinH,MAAM,GAAG,CAAb,EAAgB;QACZ;QACA1kC,gBAAgB,CAAC,CAAC0kC,MAAF,CAAhB;MACH,CAHD,MAIK;QACD;QACA,MAAMC,YAAY,GAAGD,MAArB;QACA,MAAME,eAAe,GAAGtG,kBAAkB,CAAC,EAAE7gH,CAAH,CAA1C;QACA,MAAMonH,aAAa,GAAGvG,kBAAkB,CAAC,EAAE7gH,CAAH,CAAxC;QACAqgF,6BAA6B,CAAC8mC,eAAD,EAAkBD,YAAlB,CAA7B;QACA,MAAM/qH,OAAO,GAAGs8E,KAAK,CAACyuC,YAAD,CAArB;QACAE,aAAa,CAAC;QAAE;QAAH,EAA6BjrH,OAA7B,CAAb;MACH;IACJ;EACJ,CAjBD,SAkBQ;IACJomF,gBAAgB,CAAC,CAAC,CAAF,CAAhB;EACH;AACJ;AACD;;;AACA,SAAS8kC,qBAAT,CAA+B92C,KAA/B,EAAsCkI,KAAtC,EAA6C;EACzC,MAAMrF,cAAc,GAAG7C,KAAK,CAAC6C,cAA7B;;EACA,IAAIA,cAAc,KAAK,IAAvB,EAA6B;IACzB,KAAK,IAAIpzE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGozE,cAAc,CAAC54E,MAAnC,EAA2CwF,CAAC,IAAI,CAAhD,EAAmD;MAC/C,MAAMsnH,aAAa,GAAGl0C,cAAc,CAACpzE,CAAD,CAApC;MACA,MAAMunH,eAAe,GAAGn0C,cAAc,CAACpzE,CAAC,GAAG,CAAL,CAAtC;;MACA,IAAIunH,eAAe,KAAK,CAAC,CAAzB,EAA4B;QACxB,MAAMvkC,YAAY,GAAGzS,KAAK,CAAC14D,IAAN,CAAW0vG,eAAX,CAArB;QACA/0G,SAAS,IAAI06D,aAAa,CAAC8V,YAAD,EAAe,yBAAf,CAA1B;QACAxwE,SAAS,IACL06D,aAAa,CAAC8V,YAAY,CAAC5P,cAAd,EAA8B,2CAA9B,CADjB;QAEAwN,oBAAoB,CAAC0mC,aAAD,CAApB;QACAtkC,YAAY,CAAC5P,cAAb,CAA4B;QAAE;QAA9B,EAAwDqF,KAAK,CAAC8uC,eAAD,CAA7D,EAAgFA,eAAhF;MACH;IACJ;EACJ;AACJ;AACD;;;AACA,SAASC,sBAAT,CAAgCC,SAAhC,EAA2C3c,UAA3C,EAAuD;EACnD,KAAK,IAAI9qG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8qG,UAAU,CAACtwG,MAA/B,EAAuCwF,CAAC,EAAxC,EAA4C;IACxC0nH,gBAAgB,CAACD,SAAD,EAAY3c,UAAU,CAAC9qG,CAAD,CAAtB,CAAhB;EACH;AACJ;AACD;;;AACA,SAAS2nH,qBAAT,CAA+BF,SAA/B,EAA0C3c,UAA1C,EAAsD;EAClD,KAAK,IAAI9qG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8qG,UAAU,CAACtwG,MAA/B,EAAuCwF,CAAC,EAAxC,EAA4C;IACxC4nH,eAAe,CAACH,SAAD,EAAY3c,UAAU,CAAC9qG,CAAD,CAAtB,CAAf;EACH;AACJ;;AACD,SAAS6nH,WAAT,CAAqB3mC,WAArB,EAAkC3Q,KAAlC,EAAyCp0E,OAAzC,EAAkDovD,KAAlD,EAAyD3yC,IAAzD,EAA+DkvG,SAA/D,EAA0ExC,eAA1E,EAA2F3sD,QAA3F,EAAqGgmC,SAArG,EAAgH/5C,QAAhH,EAA0HwnC,oBAA1H,EAAgJ;EAC5I,MAAM3T,KAAK,GAAGjmE,SAAS,GAAGytG,8BAA8B,CAAC1vC,KAAD,CAAjC,GAA2CA,KAAK,CAACgY,SAAN,CAAgBroF,KAAhB,EAAlE;EACAu4E,KAAK,CAACjC,IAAD,CAAL,GAAc59D,IAAd;EACA6/D,KAAK,CAAC/B,KAAD,CAAL,GAAenrB,KAAK,GAAG;EAAE;EAAV,EAA0C;EAAG;EAA7C,EAAyE;EAAE;EAA1F;;EACA,IAAI6gC,oBAAoB,KAAK,IAAzB,IACClL,WAAW,IAAKA,WAAW,CAACxK,KAAD,CAAX,GAAqB;EAAK;EAD/C,EAC2F;IACvF+B,KAAK,CAAC/B,KAAD,CAAL,IAAgB;IAAK;IAArB;EACH;;EACD6G,sBAAsB,CAAC9E,KAAD,CAAtB;EACAjmE,SAAS,IAAI+9D,KAAK,CAACuQ,SAAnB,IAAgCI,WAAhC,IAA+C1I,mBAAmB,CAACjI,KAAK,CAACuQ,SAAP,EAAkBI,WAAlB,CAAlE;EACAzI,KAAK,CAAC9B,MAAD,CAAL,GAAgB8B,KAAK,CAAClB,gBAAD,CAAL,GAA0B2J,WAA1C;EACAzI,KAAK,CAACzB,OAAD,CAAL,GAAiB76E,OAAjB;EACAs8E,KAAK,CAACvB,gBAAD,CAAL,GAA2BouC,eAAe,IAAIpkC,WAAW,IAAIA,WAAW,CAAChK,gBAAD,CAAxE;EACA1kE,SAAS,IAAI06D,aAAa,CAACuL,KAAK,CAACvB,gBAAD,CAAN,EAA0B,6BAA1B,CAA1B;EACAuB,KAAK,CAACtB,QAAD,CAAL,GAAmBxe,QAAQ,IAAIuoB,WAAW,IAAIA,WAAW,CAAC/J,QAAD,CAAzD;EACA3kE,SAAS,IAAI06D,aAAa,CAACuL,KAAK,CAACtB,QAAD,CAAN,EAAkB,sBAAlB,CAA1B;EACAsB,KAAK,CAACrB,SAAD,CAAL,GAAmBunB,SAAS,IAAIzd,WAAW,IAAIA,WAAW,CAAC9J,SAAD,CAAvC,IAAsD,IAAzE;EACAqB,KAAK,CAACxB,UAAD,CAAL,GAAoBryB,QAAQ,IAAIs8B,WAAW,IAAIA,WAAW,CAACjK,UAAD,CAAtC,IAAsD,IAA1E;EACAwB,KAAK,CAAC3B,MAAD,CAAL,GAAgBgxC,SAAhB;EACArvC,KAAK,CAACb,EAAD,CAAL,GAAYwxB,gBAAgB,EAA5B;EACA3wB,KAAK,CAACZ,sBAAD,CAAL,GAAgCuU,oBAAhC;EACA55E,SAAS,IACLk6D,WAAW,CAAC6D,KAAK,CAAC7iE,IAAN,IAAc;EAAE;EAAhB,EAA2CwzE,WAAW,KAAK,IAA3D,GAAkE,IAAnE,EAAyE,IAAzE,EAA+E,sCAA/E,CADf;EAEAzI,KAAK,CAACjB,0BAAD,CAAL,GACIjH,KAAK,CAAC7iE,IAAN,IAAc;EAAE;EAAhB,EAA2CwzE,WAAW,CAAC1J,0BAAD,CAAtD,GAAqFiB,KADzF;EAEAjmE,SAAS,IAAI0xG,gBAAgB,CAACzrC,KAAD,CAA7B;EACA,OAAOA,KAAP;AACH;;AACD,SAASsvC,gBAAT,CAA0Bx3C,KAA1B,EAAiC1rE,KAAjC,EAAwC6I,IAAxC,EAA8C9C,IAA9C,EAAoDs7E,KAApD,EAA2D;EACvD1zE,SAAS,IAAI3N,KAAK,KAAK,CAAvB,IAA4B;EACxB;EACA0nE,wBAAwB,CAAC1nE,KAAD,EAAQizE,aAAR,EAAuB,uCAAvB,CAF5B,CADuD,CAIvD;;EACAtlE,SAAS,IAAIuzE,mBAAmB,CAACr4E,IAAD,CAAhC;EACA,IAAI4iE,KAAK,GAAGC,KAAK,CAAC14D,IAAN,CAAWhT,KAAX,CAAZ;;EACA,IAAIyrE,KAAK,KAAK,IAAd,EAAoB;IAChBA,KAAK,GAAG03C,kBAAkB,CAACz3C,KAAD,EAAQ1rE,KAAR,EAAe6I,IAAf,EAAqB9C,IAArB,EAA2Bs7E,KAA3B,CAA1B;;IACA,IAAIhG,aAAa,EAAjB,EAAqB;MACjB;MACA;MACA;MACA;MACA5P,KAAK,CAAC/kB,KAAN,IAAe;MAAG;MAAlB;IACH;EACJ,CATD,MAUK,IAAI+kB,KAAK,CAAC5iE,IAAN,GAAa;EAAG;EAApB,EAAiD;IAClD4iE,KAAK,CAAC5iE,IAAN,GAAaA,IAAb;IACA4iE,KAAK,CAAC/5E,KAAN,GAAcqU,IAAd;IACA0lE,KAAK,CAAC4V,KAAN,GAAcA,KAAd;IACA,MAAMjpF,MAAM,GAAGiiF,qBAAqB,EAApC;IACA5O,KAAK,CAACoK,aAAN,GAAsBz9E,MAAM,KAAK,IAAX,GAAkB,CAAC,CAAnB,GAAuBA,MAAM,CAACy9E,aAApD;IACAloE,SAAS,IAAIkmE,mBAAmB,CAACpI,KAAD,EAAQC,KAAR,CAAhC;IACA/9D,SAAS,IAAIk6D,WAAW,CAAC7nE,KAAD,EAAQyrE,KAAK,CAACzrE,KAAd,EAAqB,sBAArB,CAAxB;EACH;;EACDs6E,eAAe,CAAC7O,KAAD,EAAQ,IAAR,CAAf;EACA,OAAOA,KAAP;AACH;;AACD,SAAS03C,kBAAT,CAA4Bz3C,KAA5B,EAAmC1rE,KAAnC,EAA0C6I,IAA1C,EAAgD9C,IAAhD,EAAsDs7E,KAAtD,EAA6D;EACzD,MAAMlH,YAAY,GAAGC,4BAA4B,EAAjD;EACA,MAAM9F,QAAQ,GAAGiG,oBAAoB,EAArC;EACA,MAAMniF,MAAM,GAAGk8E,QAAQ,GAAG6F,YAAH,GAAkBA,YAAY,IAAIA,YAAY,CAAC/hF,MAAtE,CAHyD,CAIzD;;EACA,MAAMqzE,KAAK,GAAGC,KAAK,CAAC14D,IAAN,CAAWhT,KAAX,IACVojH,WAAW,CAAC13C,KAAD,EAAQtzE,MAAR,EAAgByQ,IAAhB,EAAsB7I,KAAtB,EAA6B+F,IAA7B,EAAmCs7E,KAAnC,CADf,CALyD,CAOzD;EACA;EACA;;EACA,IAAI3V,KAAK,CAACkR,UAAN,KAAqB,IAAzB,EAA+B;IAC3BlR,KAAK,CAACkR,UAAN,GAAmBnR,KAAnB;EACH;;EACD,IAAI0O,YAAY,KAAK,IAArB,EAA2B;IACvB,IAAI7F,QAAJ,EAAc;MACV;MACA,IAAI6F,YAAY,CAAC4C,KAAb,IAAsB,IAAtB,IAA8BtR,KAAK,CAACrzE,MAAN,KAAiB,IAAnD,EAAyD;QACrD;QACA+hF,YAAY,CAAC4C,KAAb,GAAqBtR,KAArB;MACH;IACJ,CAND,MAOK;MACD,IAAI0O,YAAY,CAACnoF,IAAb,KAAsB,IAA1B,EAAgC;QAC5B;QACA;QACAmoF,YAAY,CAACnoF,IAAb,GAAoBy5E,KAApB;MACH;IACJ;EACJ;;EACD,OAAOA,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS43C,YAAT,CAAsB33C,KAAtB,EAA6BkI,KAA7B,EAAoC0vC,eAApC,EAAqDC,YAArD,EAAmE;EAC/D,IAAID,eAAe,KAAK,CAAxB,EACI,OAAO,CAAC,CAAR;;EACJ,IAAI31G,SAAJ,EAAe;IACXinE,qBAAqB,CAAClJ,KAAD,CAArB;IACA1D,UAAU,CAAC0D,KAAD,EAAQkI,KAAK,CAAChC,KAAD,CAAb,EAAsB,0CAAtB,CAAV;IACA/J,WAAW,CAAC6D,KAAK,CAAC14D,IAAN,CAAWrd,MAAZ,EAAoBi+E,KAAK,CAACj+E,MAA1B,EAAkC,0CAAlC,CAAX;IACAkyE,WAAW,CAAC6D,KAAK,CAAC14D,IAAN,CAAWrd,MAAZ,EAAoB+1E,KAAK,CAACgY,SAAN,CAAgB/tF,MAApC,EAA4C,8CAA5C,CAAX;IACAm/E,qBAAqB,CAACpJ,KAAD,CAArB;EACH;;EACD,MAAM83C,QAAQ,GAAG5vC,KAAK,CAACj+E,MAAvB;;EACA,KAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmoH,eAApB,EAAqCnoH,CAAC,EAAtC,EAA0C;IACtCy4E,KAAK,CAAC59E,IAAN,CAAWutH,YAAX;IACA73C,KAAK,CAACgY,SAAN,CAAgB1tF,IAAhB,CAAqButH,YAArB;IACA73C,KAAK,CAAC14D,IAAN,CAAWhd,IAAX,CAAgB,IAAhB;EACH;;EACD,OAAOwtH,QAAP;AACH,EACD;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,UAAT,CAAoB/3C,KAApB,EAA2BkI,KAA3B,EAAkCt8E,OAAlC,EAA2C;EACvCqW,SAAS,IAAIk6D,WAAW,CAACyQ,cAAc,CAAC1E,KAAD,CAAf,EAAwB,IAAxB,EAA8B,gCAA9B,CAAxB;EACA2I,SAAS,CAAC3I,KAAD,CAAT;;EACA,IAAI;IACA,MAAM1E,SAAS,GAAGxD,KAAK,CAACwD,SAAxB;;IACA,IAAIA,SAAS,KAAK,IAAlB,EAAwB;MACpBw0C,kBAAkB,CAAC;MAAE;MAAH,EAA6Bx0C,SAA7B,EAAwC53E,OAAxC,CAAlB;IACH,CAJD,CAKA;IACA;;;IACA,MAAMqsH,UAAU,GAAGj4C,KAAK,CAACvlB,QAAzB;;IACA,IAAIw9D,UAAU,KAAK,IAAnB,EAAyB;MACrBC,eAAe,CAACl4C,KAAD,EAAQkI,KAAR,EAAe+vC,UAAf,EAA2B;MAAE;MAA7B,EAAuDrsH,OAAvD,CAAf;IACH,CAVD,CAWA;IACA;IACA;IACA;IACA;;;IACA,IAAIo0E,KAAK,CAACF,eAAV,EAA2B;MACvBE,KAAK,CAACF,eAAN,GAAwB,KAAxB;IACH,CAlBD,CAmBA;IACA;IACA;;;IACA,IAAIE,KAAK,CAACwwC,oBAAV,EAAgC;MAC5BsG,qBAAqB,CAAC92C,KAAD,EAAQkI,KAAR,CAArB;IACH,CAxBD,CAyBA;IACA;IACA;;;IACA,IAAIlI,KAAK,CAACuwC,iBAAV,EAA6B;MACzByH,kBAAkB,CAAC;MAAE;MAAH,EAA6Bh4C,KAAK,CAACwD,SAAnC,EAA8C53E,OAA9C,CAAlB;IACH,CA9BD,CA+BA;;;IACA,MAAM2uG,UAAU,GAAGv6B,KAAK,CAACu6B,UAAzB;;IACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;MACrB6c,qBAAqB,CAAClvC,KAAD,EAAQqyB,UAAR,CAArB;IACH;EACJ,CApCD,CAqCA,OAAOzzG,KAAP,EAAc;IACV;IACA;IACA,IAAIk5E,KAAK,CAACF,eAAV,EAA2B;MACvBE,KAAK,CAAC2wC,mBAAN,GAA4B,IAA5B;MACA3wC,KAAK,CAACF,eAAN,GAAwB,KAAxB;IACH;;IACD,MAAMh5E,KAAN;EACH,CA7CD,SA8CQ;IACJohF,KAAK,CAAC/B,KAAD,CAAL,IAAgB,CAAC;IAAE;IAAnB;IACAsL,SAAS;EACZ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0mC,WAAT,CAAqBn4C,KAArB,EAA4BkI,KAA5B,EAAmC+vC,UAAnC,EAA+CrsH,OAA/C,EAAwD;EACpDqW,SAAS,IAAIk6D,WAAW,CAACyQ,cAAc,CAAC1E,KAAD,CAAf,EAAwB,KAAxB,EAA+B,8BAA/B,CAAxB;EACA,MAAMltB,KAAK,GAAGktB,KAAK,CAAC/B,KAAD,CAAnB;EACA,IAAI,CAACnrB,KAAK,GAAG;EAAI;EAAb,MAA6C;EAAI;EAArD,EACI;EACJ61B,SAAS,CAAC3I,KAAD,CAAT,CALoD,CAMpD;EACA;;EACA,MAAMkwC,sBAAsB,GAAGn2G,SAAS,IAAIgtE,sBAAsB,EAAlE;;EACA,IAAI;IACAjC,sBAAsB,CAAC9E,KAAD,CAAtB;IACAsH,eAAe,CAACxP,KAAK,CAACyJ,iBAAP,CAAf;;IACA,IAAIwuC,UAAU,KAAK,IAAnB,EAAyB;MACrBC,eAAe,CAACl4C,KAAD,EAAQkI,KAAR,EAAe+vC,UAAf,EAA2B;MAAE;MAA7B,EAAuDrsH,OAAvD,CAAf;IACH;;IACD,MAAM27G,uBAAuB,GAAG,CAACvsD,KAAK,GAAG;IAAE;IAAX,MAAoD;IAAE;IAAtF,CANA,CAOA;IACA;;IACA,IAAI,CAACo9D,sBAAL,EAA6B;MACzB,IAAI7Q,uBAAJ,EAA6B;QACzB,MAAM30B,kBAAkB,GAAG5S,KAAK,CAAC4S,kBAAjC;;QACA,IAAIA,kBAAkB,KAAK,IAA3B,EAAiC;UAC7Bc,iBAAiB,CAACxL,KAAD,EAAQ0K,kBAAR,EAA4B,IAA5B,CAAjB;QACH;MACJ,CALD,MAMK;QACD,MAAMD,aAAa,GAAG3S,KAAK,CAAC2S,aAA5B;;QACA,IAAIA,aAAa,KAAK,IAAtB,EAA4B;UACxBkB,wBAAwB,CAAC3L,KAAD,EAAQyK,aAAR,EAAuB;UAAE;UAAzB,EAAkE,IAAlE,CAAxB;QACH;;QACDoB,uBAAuB,CAAC7L,KAAD,EAAQ;QAAE;QAAV,CAAvB;MACH;IACJ,CAvBD,CAwBA;IACA;IACA;;;IACAmwC,+BAA+B,CAACnwC,KAAD,CAA/B;IACAowC,oBAAoB,CAACpwC,KAAD,CAApB,CA5BA,CA6BA;;IACA,IAAIlI,KAAK,CAAC6C,cAAN,KAAyB,IAA7B,EAAmC;MAC/Bi0C,qBAAqB,CAAC92C,KAAD,EAAQkI,KAAR,CAArB;IACH,CAhCD,CAiCA;IACA;;;IACA,IAAI,CAACkwC,sBAAL,EAA6B;MACzB,IAAI7Q,uBAAJ,EAA6B;QACzB,MAAMj0B,iBAAiB,GAAGtT,KAAK,CAACsT,iBAAhC;;QACA,IAAIA,iBAAiB,KAAK,IAA1B,EAAgC;UAC5BI,iBAAiB,CAACxL,KAAD,EAAQoL,iBAAR,CAAjB;QACH;MACJ,CALD,MAMK;QACD,MAAMD,YAAY,GAAGrT,KAAK,CAACqT,YAA3B;;QACA,IAAIA,YAAY,KAAK,IAArB,EAA2B;UACvBQ,wBAAwB,CAAC3L,KAAD,EAAQmL,YAAR,EAAsB;UAAE;UAAxB,CAAxB;QACH;;QACDU,uBAAuB,CAAC7L,KAAD,EAAQ;QAAE;QAAV,CAAvB;MACH;IACJ;;IACDuuC,yBAAyB,CAACz2C,KAAD,EAAQkI,KAAR,CAAzB,CAlDA,CAmDA;;IACA,MAAMqyB,UAAU,GAAGv6B,KAAK,CAACu6B,UAAzB;;IACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;MACrB0c,sBAAsB,CAAC/uC,KAAD,EAAQqyB,UAAR,CAAtB;IACH,CAvDD,CAwDA;IACA;IACA;;;IACA,MAAM/2B,SAAS,GAAGxD,KAAK,CAACwD,SAAxB;;IACA,IAAIA,SAAS,KAAK,IAAlB,EAAwB;MACpBw0C,kBAAkB,CAAC;MAAE;MAAH,EAA6Bx0C,SAA7B,EAAwC53E,OAAxC,CAAlB;IACH,CA9DD,CA+DA;IACA;;;IACA,IAAI,CAACwsH,sBAAL,EAA6B;MACzB,IAAI7Q,uBAAJ,EAA6B;QACzB,MAAM/zB,cAAc,GAAGxT,KAAK,CAACwT,cAA7B;;QACA,IAAIA,cAAc,KAAK,IAAvB,EAA6B;UACzBE,iBAAiB,CAACxL,KAAD,EAAQsL,cAAR,CAAjB;QACH;MACJ,CALD,MAMK;QACD,MAAMD,SAAS,GAAGvT,KAAK,CAACuT,SAAxB;;QACA,IAAIA,SAAS,KAAK,IAAlB,EAAwB;UACpBM,wBAAwB,CAAC3L,KAAD,EAAQqL,SAAR,EAAmB;UAAE;UAArB,CAAxB;QACH;;QACDQ,uBAAuB,CAAC7L,KAAD,EAAQ;QAAE;QAAV,CAAvB;MACH;IACJ;;IACD,IAAIlI,KAAK,CAACqJ,eAAN,KAA0B,IAA9B,EAAoC;MAChC;MACA;MACA;MACA;MACA;MACA;MACArJ,KAAK,CAACqJ,eAAN,GAAwB,KAAxB;IACH,CAxFD,CAyFA;IACA;IACA;IACA;IACA;IACA;;;IACA,IAAI,CAAC+uC,sBAAL,EAA6B;MACzBlwC,KAAK,CAAC/B,KAAD,CAAL,IAAgB,EAAE;MAAG;MAAH,EAA4B;MAAE;MAAhC,CAAhB;IACH;;IACD,IAAI+B,KAAK,CAAC/B,KAAD,CAAL,GAAe;IAAI;IAAvB,EAAiE;MAC7D+B,KAAK,CAAC/B,KAAD,CAAL,IAAgB,CAAC;MAAI;MAArB;MACA8G,2BAA2B,CAAC/E,KAAK,CAAC9B,MAAD,CAAN,EAAgB,CAAC,CAAjB,CAA3B;IACH;EACJ,CAtGD,SAuGQ;IACJqL,SAAS;EACZ;AACJ;;AACD,SAASymC,eAAT,CAAyBl4C,KAAzB,EAAgCkI,KAAhC,EAAuC+vC,UAAvC,EAAmDM,EAAnD,EAAuD3sH,OAAvD,EAAgE;EAC5D,MAAM4sH,iBAAiB,GAAGzmC,gBAAgB,EAA1C;EACA,MAAM0mC,aAAa,GAAGF,EAAE,GAAG;EAAE;EAA7B;;EACA,IAAI;IACAvmC,gBAAgB,CAAC,CAAC,CAAF,CAAhB;;IACA,IAAIymC,aAAa,IAAIvwC,KAAK,CAACj+E,MAAN,GAAes9E,aAApC,EAAmD;MAC/C;MACA;MACA8/B,mBAAmB,CAACrnC,KAAD,EAAQkI,KAAR,EAAeX,aAAf,EAA8B,CAAC,CAACtlE,SAAF,IAAegtE,sBAAsB,EAAnE,CAAnB;IACH;;IACD,MAAMypC,WAAW,GAAGD,aAAa,GAAG;IAAE;IAAL,EAA+C;IAAE;IAAlF;IACAjtC,QAAQ,CAACktC,WAAD,EAAc9sH,OAAd,CAAR;IACAqsH,UAAU,CAACM,EAAD,EAAK3sH,OAAL,CAAV;EACH,CAVD,SAWQ;IACJomF,gBAAgB,CAACwmC,iBAAD,CAAhB;IACA,MAAMG,YAAY,GAAGF,aAAa,GAAG;IAAE;IAAL,EAA6C;IAAE;IAAjF;IACAjtC,QAAQ,CAACmtC,YAAD,EAAe/sH,OAAf,CAAR;EACH;AACJ,EACD;AACA;AACA;;;AACA,SAASgtH,qBAAT,CAA+B54C,KAA/B,EAAsCD,KAAtC,EAA6CmI,KAA7C,EAAoD;EAChD,IAAIN,kBAAkB,CAAC7H,KAAD,CAAtB,EAA+B;IAC3B,MAAMzgD,KAAK,GAAGygD,KAAK,CAAC+S,cAApB;IACA,MAAM33C,GAAG,GAAG4kC,KAAK,CAACgT,YAAlB;;IACA,KAAK,IAAIP,cAAc,GAAGlzD,KAA1B,EAAiCkzD,cAAc,GAAGr3C,GAAlD,EAAuDq3C,cAAc,EAArE,EAAyE;MACrE,MAAMv/D,GAAG,GAAG+sD,KAAK,CAAC14D,IAAN,CAAWkrE,cAAX,CAAZ;;MACA,IAAIv/D,GAAG,CAAC4vD,cAAR,EAAwB;QACpB5vD,GAAG,CAAC4vD,cAAJ,CAAmB;QAAE;QAArB,EAA+CqF,KAAK,CAACsK,cAAD,CAApD,EAAsEA,cAAtE;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAASqmC,yBAAT,CAAmC74C,KAAnC,EAA0CkI,KAA1C,EAAiDnI,KAAjD,EAAwD;EACpD,IAAI,CAACgO,kBAAkB,EAAvB,EACI;EACJ+qC,wBAAwB,CAAC94C,KAAD,EAAQkI,KAAR,EAAenI,KAAf,EAAsBqM,gBAAgB,CAACrM,KAAD,EAAQmI,KAAR,CAAtC,CAAxB;;EACA,IAAI,CAACnI,KAAK,CAAC/kB,KAAN,GAAc;EAAI;EAAnB,MAAyD;EAAI;EAAjE,EAAmG;IAC/F+9D,4BAA4B,CAAC/4C,KAAD,EAAQkI,KAAR,EAAenI,KAAf,CAA5B;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASi5C,wBAAT,CAAkCC,QAAlC,EAA4Cl5C,KAA5C,EAAmDm5C,iBAAiB,GAAG9sC,gBAAvE,EAAyF;EACrF,MAAMgvB,UAAU,GAAGr7B,KAAK,CAACq7B,UAAzB;;EACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;IACrB,IAAIC,UAAU,GAAGt7B,KAAK,CAACzrE,KAAN,GAAc,CAA/B;;IACA,KAAK,IAAI7E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2rG,UAAU,CAACnxG,MAA/B,EAAuCwF,CAAC,IAAI,CAA5C,EAA+C;MAC3C,MAAM6E,KAAK,GAAG8mG,UAAU,CAAC3rG,CAAC,GAAG,CAAL,CAAxB;MACA,MAAMzJ,KAAK,GAAGsO,KAAK,KAAK,CAAC,CAAX,GACV4kH,iBAAiB,CAACn5C,KAAD,EAAQk5C,QAAR,CADP,GAEVA,QAAQ,CAAC3kH,KAAD,CAFZ;MAGA2kH,QAAQ,CAAC5d,UAAU,EAAX,CAAR,GAAyBr1G,KAAzB;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmzH,yBAAT,CAAmClmG,GAAnC,EAAwC;EACpC,MAAM+sD,KAAK,GAAG/sD,GAAG,CAAC+sD,KAAlB,CADoC,CAEpC;EACA;;EACA,IAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,CAAC2wC,mBAA5B,EAAiD;IAC7C;IACA;IACA,MAAMpgC,SAAS,GAAG,IAAlB;IACA,OAAOt9D,GAAG,CAAC+sD,KAAJ,GAAYo5C,WAAW,CAAC;IAAE;IAAH,EAA8B7oC,SAA9B,EAAyCt9D,GAAG,CAACwnC,QAA7C,EAAuDxnC,GAAG,CAACqvD,KAA3D,EAAkErvD,GAAG,CAACsvD,IAAtE,EAA4EtvD,GAAG,CAACkwD,aAAhF,EAA+FlwD,GAAG,CAACmwD,QAAnG,EAA6GnwD,GAAG,CAACuwD,SAAjH,EAA4HvwD,GAAG,CAAC4wD,OAAhI,EAAyI5wD,GAAG,CAACuvD,MAA7I,CAA9B;EACH;;EACD,OAAOxC,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo5C,WAAT,CAAqBj8G,IAArB,EAA2BozE,SAA3B,EAAsC0nC,UAAtC,EAAkD31C,KAAlD,EAAyDC,IAAzD,EAA+D6B,UAA/D,EAA2EC,KAA3E,EAAkFb,SAAlF,EAA6FK,OAA7F,EAAsGw1C,eAAtG,EAAuH;EACnHp3G,SAAS,IAAIA,SAAS,CAAC+9D,KAAV,EAAb;EACA,MAAMyJ,iBAAiB,GAAGlC,aAAa,GAAGjF,KAA1C,CAFmH,CAGnH;EACA;EACA;;EACA,MAAMg3C,iBAAiB,GAAG7vC,iBAAiB,GAAGlH,IAA9C;EACA,MAAMyV,SAAS,GAAGuhC,mBAAmB,CAAC9vC,iBAAD,EAAoB6vC,iBAApB,CAArC;EACA,MAAM92C,MAAM,GAAG,OAAO62C,eAAP,KAA2B,UAA3B,GAAwCA,eAAe,EAAvD,GAA4DA,eAA3E;EACA,MAAMr5C,KAAK,GAAGgY,SAAS,CAAC9R,KAAD,CAAT,GAAmBjkE,SAAS,GACtC,IAAIkuG,gBAAJ,CAAqBhzG,IAArB,EAA2B;EAC3B66E,SADA,EACW;EACXigC,UAFA,EAEY;EACZ,IAHA,EAGM;EACNz0C,SAJA,EAIW;EACX+M,SALA,EAKW;EACX4iC,gBAAgB,CAACn7B,SAAD,CAAhB,CAA4B9iD,IAA5B,CAAiC,IAAjC,EAAuCu0C,iBAAvC,CANA,EAM2D;EAC3DA,iBAPA,EAOmB;EACnB6vC,iBARA,EAQmB;EACnB,IATA,EASM;EACN,IAVA,EAUM;EACN,IAXA,EAWM;EACN,KAZA,EAYO;EACP,KAbA,EAaO;EACP,IAdA,EAcM;EACN,IAfA,EAeM;EACN,IAhBA,EAgBM;EACN,IAjBA,EAiBM;EACN,IAlBA,EAkBM;EACN,IAnBA,EAmBM;EACN,IApBA,EAoBM;EACN,IArBA,EAqBM;EACN,IAtBA,EAsBM;EACN,IAvBA,EAuBM;EACN,OAAOl1C,UAAP,KAAsB,UAAtB,GAAmC;EAC/BA,UAAU,EADd,GACmB;EACfA,UA1BJ,EA0BgB;EAChB,OAAOC,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,EAAnC,GAAwCA,KA3BxC,EA2B+C;EAC/C,IA5BA,EA4BM;EACNR,OA7BA,EA6BS;EACTrB,MA9BA,EA8BQ;EACR,KA/BA,EA+BO;EACPF,KAhCA,EAgCO;EACPC,IAjCA,CADsC,GAmCtC;IACIplE,IAAI,EAAEA,IADV;IAEI66E,SAAS,EAAEA,SAFf;IAGIv9B,QAAQ,EAAEw9D,UAHd;IAII5H,OAAO,EAAE,IAJb;IAKI7sC,SAAS,EAAEA,SALf;IAMI+M,SAAS,EAAEA,SANf;IAOIjpE,IAAI,EAAE0wE,SAAS,CAACroF,KAAV,GAAkBulC,IAAlB,CAAuB,IAAvB,EAA6Bu0C,iBAA7B,CAPV;IAQIA,iBAAiB,EAAEA,iBARvB;IASIE,iBAAiB,EAAE2vC,iBATvB;IAUIhJ,kBAAkB,EAAE,IAVxB;IAWIxwC,eAAe,EAAE,IAXrB;IAYIuJ,eAAe,EAAE,IAZrB;IAaIknC,iBAAiB,EAAE,KAbvB;IAcIC,oBAAoB,EAAE,KAd1B;IAeI79B,aAAa,EAAE,IAfnB;IAgBIC,kBAAkB,EAAE,IAhBxB;IAiBIS,YAAY,EAAE,IAjBlB;IAkBIC,iBAAiB,EAAE,IAlBvB;IAmBIC,SAAS,EAAE,IAnBf;IAoBIC,cAAc,EAAE,IApBpB;IAqBIC,YAAY,EAAE,IArBlB;IAsBIve,OAAO,EAAE,IAtBb;IAuBI2N,cAAc,EAAE,IAvBpB;IAwBI03B,UAAU,EAAE,IAxBhB;IAyBIkW,iBAAiB,EAAE,OAAOrsC,UAAP,KAAsB,UAAtB,GAAmCA,UAAU,EAA7C,GAAkDA,UAzBzE;IA0BIssC,YAAY,EAAE,OAAOrsC,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,EAAnC,GAAwCA,KA1B1D;IA2BI6M,UAAU,EAAE,IA3BhB;IA4BIrN,OAAO,EAAEA,OA5Bb;IA6BIrB,MAAM,EAAEA,MA7BZ;IA8BImuC,mBAAmB,EAAE;EA9BzB,CAnCJ;;EAmEA,IAAI1uG,SAAJ,EAAe;IACX;IACA;IACA;IACAnW,MAAM,CAAC0tH,IAAP,CAAYx5C,KAAZ;EACH;;EACD,OAAOA,KAAP;AACH;;AACD,SAASu5C,mBAAT,CAA6B9vC,iBAA7B,EAAgD6vC,iBAAhD,EAAmE;EAC/D,MAAMthC,SAAS,GAAG/1E,SAAS,GAAG,IAAImxG,cAAJ,EAAH,GAA0B,EAArD;;EACA,KAAK,IAAI3jH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6pH,iBAApB,EAAuC7pH,CAAC,EAAxC,EAA4C;IACxCuoF,SAAS,CAAC1tF,IAAV,CAAemF,CAAC,GAAGg6E,iBAAJ,GAAwB,IAAxB,GAA+Bw9B,SAA9C;EACH;;EACD,OAAOjvB,SAAP;AACH;;AACD,SAASyhC,WAAT,CAAqBv1E,IAArB,EAA2B5tB,KAA3B,EAAkC;EAC9B,OAAO,IAAInd,KAAJ,CAAW,aAAY+qC,IAAK,KAAI22B,iBAAiB,CAACvkD,KAAD,CAAQ,GAAzD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASojG,iBAAT,CAA2BtxD,QAA3B,EAAqCuxD,iBAArC,EAAwDj2C,aAAxD,EAAuE;EACnE;EACA,MAAMk2C,eAAe,GAAGl2C,aAAa,KAAKvE,mBAAmB,CAAC06C,SAA9D;EACA,OAAOzxD,QAAQ,CAAC0xD,iBAAT,CAA2BH,iBAA3B,EAA8CC,eAA9C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,uBAAT,CAAiC/5C,KAAjC,EAAwCkI,KAAxC,EAA+Ct8E,OAA/C,EAAwDouH,SAAxD,EAAmE;EAC/D,MAAMpZ,QAAQ,GAAGqZ,uBAAuB,CAAC/xC,KAAD,CAAxC;;EACA,IAAIt8E,OAAO,KAAK,IAAhB,EAAsB;IAClB;IACA;IACA,IAAIqW,SAAJ,EAAe;MACXnW,MAAM,CAAC01E,MAAP,CAAc04C,uBAAuB,CAACl6C,KAAD,CAArC;IACH;;IACD4gC,QAAQ,CAACt2G,IAAT,CAAc0vH,SAAd;EACH,CAPD,MAQK;IACDpZ,QAAQ,CAACt2G,IAAT,CAAcsB,OAAd;;IACA,IAAIo0E,KAAK,CAACF,eAAV,EAA2B;MACvBo6C,uBAAuB,CAACl6C,KAAD,CAAvB,CAA+B11E,IAA/B,CAAoC0vH,SAApC,EAA+CpZ,QAAQ,CAAC32G,MAAT,GAAkB,CAAjE;IACH;EACJ;AACJ;;AACD,SAASytH,WAAT,CAAqB13C,KAArB,EAA4Bm6C,OAA5B,EAAqCh9G,IAArC,EAA2C7I,KAA3C,EAAkDtO,KAAlD,EAAyD2vF,KAAzD,EAAgE;EAC5D1zE,SAAS,IAAI3N,KAAK,KAAK,CAAvB,IAA4B;EACxB;EACA0nE,wBAAwB,CAAC1nE,KAAD,EAAQizE,aAAR,EAAuB,uCAAvB,CAF5B;EAGAtlE,SAAS,IAAIs6D,aAAa,CAACoZ,KAAD,EAAQ/uF,SAAR,EAAmB,gDAAnB,CAA1B;EACAqb,SAAS,IAAIA,SAAS,CAAC89D,KAAV,EAAb;EACA99D,SAAS,IAAIk4G,OAAb,IAAwBhyC,mBAAmB,CAACgyC,OAAD,EAAUn6C,KAAV,CAA3C;EACA,IAAImK,aAAa,GAAGgwC,OAAO,GAAGA,OAAO,CAAChwC,aAAX,GAA2B,CAAC,CAAvD;EACA,MAAMpK,KAAK,GAAG99D,SAAS,GACnB,IAAIqwG,UAAJ,CAAetyC,KAAf,EAAsB;EACtB7iE,IADA,EACM;EACN7I,KAFA,EAEO;EACP,IAHA,EAGM;EACN61E,aAJA,EAIe;EACf,CAAC,CALD,EAKI;EACJ,CAAC,CAND,EAMI;EACJ,CAAC,CAPD,EAOI;EACJ,IARA,EAQM;EACN,CATA,EASG;EACH,CAVA,EAUG;EACHnkF,KAXA,EAWO;EACP2vF,KAZA,EAYO;EACP,IAbA,EAaM;EACN,IAdA,EAcM;EACN/uF,SAfA,EAeW;EACX,IAhBA,EAgBM;EACN,IAjBA,EAiBM;EACN,IAlBA,EAkBM;EACN,IAnBA,EAmBM;EACN,IApBA,EAoBM;EACN,IArBA,EAqBM;EACNuzH,OAtBA,EAsBS;EACT,IAvBA,EAuBM;EACN,IAxBA,EAwBM;EACN,IAzBA,EAyBM;EACNvzH,SA1BA,EA0BW;EACX,IA3BA,EA2BM;EACN,IA5BA,EA4BM;EACNA,SA7BA,EA6BW;EACX,CA9BA,EA8BG;EACH,CA/BA,CADmB,GAiCnB;IACIuW,IADJ;IAEI7I,KAFJ;IAGI48G,iBAAiB,EAAE,IAHvB;IAII/mC,aAJJ;IAKI2I,cAAc,EAAE,CAAC,CALrB;IAMIC,YAAY,EAAE,CAAC,CANnB;IAOIo+B,oBAAoB,EAAE,CAAC,CAP3B;IAQIC,gBAAgB,EAAE,IARtB;IASIp2D,KAAK,EAAE,CATX;IAUIo/B,eAAe,EAAE,CAVrB;IAWIp0F,KAAK,EAAEA,KAXX;IAYI2vF,KAAK,EAAEA,KAZX;IAaI07B,WAAW,EAAE,IAbjB;IAcIjW,UAAU,EAAE,IAdhB;IAeIkW,aAAa,EAAE1qH,SAfnB;IAgBIykE,MAAM,EAAE,IAhBZ;IAiBIyX,OAAO,EAAE,IAjBb;IAkBIyuC,MAAM,EAAE,IAlBZ;IAmBIjrH,IAAI,EAAE,IAnBV;IAoBIk9G,cAAc,EAAE,IApBpB;IAqBInyB,KAAK,EAAE,IArBX;IAsBI3kF,MAAM,EAAEytH,OAtBZ;IAuBInwC,UAAU,EAAE,IAvBhB;IAwBI1sE,MAAM,EAAE,IAxBZ;IAyBIk0G,iBAAiB,EAAE,IAzBvB;IA0BIC,cAAc,EAAE7qH,SA1BpB;IA2BIgyF,OAAO,EAAE,IA3Bb;IA4BI84B,kBAAkB,EAAE,IA5BxB;IA6BIC,eAAe,EAAE/qH,SA7BrB;IA8BIgrH,aAAa,EAAE,CA9BnB;IA+BIC,aAAa,EAAE;EA/BnB,CAjCJ;;EAkEA,IAAI5vG,SAAJ,EAAe;IACX;IACA;IACA;IACAnW,MAAM,CAAC0tH,IAAP,CAAYz5C,KAAZ;EACH;;EACD,OAAOA,KAAP;AACH;;AACD,SAASq6C,uBAAT,CAAiCC,aAAjC,EAAgDrD,eAAhD,EAAiEsD,SAAjE,EAA4E;EACxE,KAAK,IAAIn1C,UAAT,IAAuBk1C,aAAvB,EAAsC;IAClC,IAAIA,aAAa,CAACzuG,cAAd,CAA6Bu5D,UAA7B,CAAJ,EAA8C;MAC1Cm1C,SAAS,GAAGA,SAAS,KAAK,IAAd,GAAqB,EAArB,GAA0BA,SAAtC;MACA,MAAMC,YAAY,GAAGF,aAAa,CAACl1C,UAAD,CAAlC;;MACA,IAAIm1C,SAAS,CAAC1uG,cAAV,CAAyBu5D,UAAzB,CAAJ,EAA0C;QACtCm1C,SAAS,CAACn1C,UAAD,CAAT,CAAsB76E,IAAtB,CAA2B0sH,eAA3B,EAA4CuD,YAA5C;MACH,CAFD,MAGK;QACAD,SAAS,CAACn1C,UAAD,CAAT,GAAwB,CAAC6xC,eAAD,EAAkBuD,YAAlB,CAAzB;MACH;IACJ;EACJ;;EACD,OAAOD,SAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASE,+BAAT,CAAyCx6C,KAAzC,EAAgDD,KAAhD,EAAuD;EACnD99D,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC;EACA,MAAM1gD,KAAK,GAAGygD,KAAK,CAAC+S,cAApB;EACA,MAAM33C,GAAG,GAAG4kC,KAAK,CAACgT,YAAlB;EACA,MAAM0nC,SAAS,GAAGz6C,KAAK,CAAC14D,IAAxB;EACA,MAAMozG,UAAU,GAAG36C,KAAK,CAAC4V,KAAzB;EACA,MAAMglC,eAAe,GAAG14G,SAAS,GAAG,IAAIuxG,kBAAJ,EAAH,GAA8B,EAA/D;EACA,IAAIoH,WAAW,GAAG,IAAlB;EACA,IAAIC,YAAY,GAAG,IAAnB;;EACA,KAAK,IAAIprH,CAAC,GAAG6vB,KAAb,EAAoB7vB,CAAC,GAAG0rC,GAAxB,EAA6B1rC,CAAC,EAA9B,EAAkC;IAC9B,MAAMgjF,YAAY,GAAGgoC,SAAS,CAAChrH,CAAD,CAA9B;IACA,MAAMqrH,eAAe,GAAGroC,YAAY,CAACpnB,MAArC,CAF8B,CAG9B;IACA;IACA;IACA;;IACA,MAAMimD,aAAa,GAAIoJ,UAAU,KAAK,IAAf,IAAuB,CAAC5V,gBAAgB,CAAC/kC,KAAD,CAAzC,GAClBg7C,qBAAqB,CAACD,eAAD,EAAkBJ,UAAlB,CADH,GAElB,IAFJ;IAGAC,eAAe,CAACrwH,IAAhB,CAAqBgnH,aAArB;IACAsJ,WAAW,GAAGR,uBAAuB,CAACU,eAAD,EAAkBrrH,CAAlB,EAAqBmrH,WAArB,CAArC;IACAC,YAAY,GAAGT,uBAAuB,CAAC3nC,YAAY,CAAC3P,OAAd,EAAuBrzE,CAAvB,EAA0BorH,YAA1B,CAAtC;EACH;;EACD,IAAID,WAAW,KAAK,IAApB,EAA0B;IACtB,IAAIA,WAAW,CAAChvG,cAAZ,CAA2B,OAA3B,CAAJ,EAAyC;MACrCm0D,KAAK,CAAC/kB,KAAN,IAAe;MAAG;MAAlB;IACH;;IACD,IAAI4/D,WAAW,CAAChvG,cAAZ,CAA2B,OAA3B,CAAJ,EAAyC;MACrCm0D,KAAK,CAAC/kB,KAAN,IAAe;MAAG;MAAlB;IACH;EACJ;;EACD+kB,KAAK,CAACuxC,aAAN,GAAsBqJ,eAAtB;EACA56C,KAAK,CAAC1U,MAAN,GAAeuvD,WAAf;EACA76C,KAAK,CAAC+C,OAAN,GAAgB+3C,YAAhB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,WAAT,CAAqB3gH,IAArB,EAA2B;EACvB,IAAIA,IAAI,KAAK,OAAb,EACI,OAAO,WAAP;EACJ,IAAIA,IAAI,KAAK,KAAb,EACI,OAAO,SAAP;EACJ,IAAIA,IAAI,KAAK,YAAb,EACI,OAAO,YAAP;EACJ,IAAIA,IAAI,KAAK,WAAb,EACI,OAAO,WAAP;EACJ,IAAIA,IAAI,KAAK,UAAb,EACI,OAAO,UAAP;EACJ,IAAIA,IAAI,KAAK,UAAb,EACI,OAAO,UAAP;EACJ,OAAOA,IAAP;AACH;;AACD,SAAS4gH,uBAAT,CAAiCj7C,KAAjC,EAAwCD,KAAxC,EAA+CmI,KAA/C,EAAsDiV,QAAtD,EAAgEn3F,KAAhE,EAAuEoiE,QAAvE,EAAiFgmC,SAAjF,EAA4F8sB,UAA5F,EAAwG;EACpGj5G,SAAS,IAAIs6D,aAAa,CAACv2E,KAAD,EAAQihH,SAAR,EAAmB,2CAAnB,CAA1B;EACA,MAAMrhG,OAAO,GAAGwmE,gBAAgB,CAACrM,KAAD,EAAQmI,KAAR,CAAhC;EACA,IAAIizC,SAAS,GAAGp7C,KAAK,CAAC1U,MAAtB;EACA,IAAI+vD,SAAJ;;EACA,IAAI,CAACF,UAAD,IAAeC,SAAS,IAAI,IAA5B,KAAqCC,SAAS,GAAGD,SAAS,CAACh+B,QAAD,CAA1D,CAAJ,EAA2E;IACvEk+B,oBAAoB,CAACr7C,KAAD,EAAQkI,KAAR,EAAekzC,SAAf,EAA0Bj+B,QAA1B,EAAoCn3F,KAApC,CAApB;IACA,IAAI6hF,eAAe,CAAC9H,KAAD,CAAnB,EACIu7C,iBAAiB,CAACpzC,KAAD,EAAQnI,KAAK,CAACzrE,KAAd,CAAjB;;IACJ,IAAI2N,SAAJ,EAAe;MACXs5G,sBAAsB,CAACrzC,KAAD,EAAQtiE,OAAR,EAAiBm6D,KAAK,CAAC5iE,IAAvB,EAA6Bi+G,SAA7B,EAAwCp1H,KAAxC,CAAtB;IACH;EACJ,CAPD,MAQK,IAAI+5E,KAAK,CAAC5iE,IAAN,GAAa;EAAE;EAAnB,EAA6C;IAC9CggF,QAAQ,GAAG69B,WAAW,CAAC79B,QAAD,CAAtB;;IACA,IAAIl7E,SAAJ,EAAe;MACX8tF,8BAA8B,CAAC5S,QAAD,CAA9B;;MACA,IAAI,CAAC6Z,eAAe,CAACpxF,OAAD,EAAUu3E,QAAV,EAAoBpd,KAAK,CAAC/5E,KAA1B,EAAiCg6E,KAAK,CAAC6D,OAAvC,CAApB,EAAqE;QACjEozB,0BAA0B,CAAC9Z,QAAD,EAAWpd,KAAK,CAAC/5E,KAAjB,EAAwB+5E,KAAK,CAAC5iE,IAA9B,EAAoC+qE,KAApC,CAA1B;MACH;;MACDjmE,SAAS,CAACs+D,mBAAV;IACH,CAR6C,CAS9C;IACA;;;IACAv6E,KAAK,GAAGooG,SAAS,IAAI,IAAb,GAAoBA,SAAS,CAACpoG,KAAD,EAAQ+5E,KAAK,CAAC/5E,KAAN,IAAe,EAAvB,EAA2Bm3F,QAA3B,CAA7B,GAAoEn3F,KAA5E;IACAoiE,QAAQ,CAAC2tB,WAAT,CAAqBnwE,OAArB,EAA8Bu3E,QAA9B,EAAwCn3F,KAAxC;EACH,CAbI,MAcA,IAAI+5E,KAAK,CAAC5iE,IAAN,GAAa;EAAG;EAApB,EAAkD;IACnD;IACA;IACA,IAAI8E,SAAS,IAAI,CAAC00F,eAAe,CAAC32B,KAAK,CAAC6D,OAAP,EAAgB9D,KAAK,CAAC/5E,KAAtB,CAAjC,EAA+D;MAC3DixG,0BAA0B,CAAC9Z,QAAD,EAAWpd,KAAK,CAAC/5E,KAAjB,EAAwB+5E,KAAK,CAAC5iE,IAA9B,EAAoC+qE,KAApC,CAA1B;IACH;EACJ;AACJ;AACD;;;AACA,SAASozC,iBAAT,CAA2BpzC,KAA3B,EAAkCszC,SAAlC,EAA6C;EACzCv5G,SAAS,IAAIgnE,WAAW,CAACf,KAAD,CAAxB;EACA,MAAMuzC,mBAAmB,GAAGjvC,wBAAwB,CAACgvC,SAAD,EAAYtzC,KAAZ,CAApD;;EACA,IAAI,EAAEuzC,mBAAmB,CAACt1C,KAAD,CAAnB,GAA6B;EAAG;EAAlC,CAAJ,EAAqE;IACjEs1C,mBAAmB,CAACt1C,KAAD,CAAnB,IAA8B;IAAG;IAAjC;EACH;AACJ;;AACD,SAASu1C,oBAAT,CAA8BxzC,KAA9B,EAAqCtiE,OAArC,EAA8CzI,IAA9C,EAAoDy8C,QAApD,EAA8D5zD,KAA9D,EAAqE;EACjE,MAAMoiE,QAAQ,GAAG8f,KAAK,CAACtB,QAAD,CAAtB;EACAhtB,QAAQ,GAAG4+C,yBAAyB,CAAC5+C,QAAD,CAApC;EACA,MAAM+hE,UAAU,GAAGjjB,0BAA0B,CAAC1yG,KAAD,CAA7C;;EACA,IAAImX,IAAI,GAAG;EAAE;EAAb,EAAuC;IACnC,IAAInX,KAAK,IAAI,IAAb,EAAmB;MACfoiE,QAAQ,CAAC+iC,eAAT,CAAyBvlF,OAAzB,EAAkCg0C,QAAlC;IACH,CAFD,MAGK;MACDwO,QAAQ,CAACl7C,YAAT,CAAsBtH,OAAtB,EAA+Bg0C,QAA/B,EAAyC+hE,UAAzC;IACH;EACJ,CAPD,MAQK;IACD,MAAMzH,WAAW,GAAG3b,iBAAiB,CAAE,YAAW1iD,IAAI,CAACC,SAAL,CAAe;MAAE,CAAC8D,QAAD,GAAY+hE;IAAd,CAAf,EAA2C,IAA3C,EAAiD,CAAjD,CAAoD,EAAjE,CAArC;IACAvzD,QAAQ,CAACq2C,QAAT,CAAkB74F,OAAlB,EAA2BsuG,WAA3B;EACH;AACJ;;AACD,SAASqH,sBAAT,CAAgCrzC,KAAhC,EAAuCtiE,OAAvC,EAAgDzI,IAAhD,EAAsDi+G,SAAtD,EAAiEp1H,KAAjE,EAAwE;EACpE,IAAImX,IAAI,IAAI;EAAE;EAAF,EAA6B;EAAE;EAAnC,CAAR,EAAuE;IACnE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,KAAK,IAAI1N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2rH,SAAS,CAACnxH,MAA9B,EAAsCwF,CAAC,IAAI,CAA3C,EAA8C;MAC1CisH,oBAAoB,CAACxzC,KAAD,EAAQtiE,OAAR,EAAiBzI,IAAjB,EAAuBi+G,SAAS,CAAC3rH,CAAC,GAAG,CAAL,CAAhC,EAAyCzJ,KAAzC,CAApB;IACH;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAAS41H,wBAAT,CAAkC57C,KAAlC,EAAyCkI,KAAzC,EAAgDj1D,GAAhD,EAAqD;EACjD,MAAM4oG,SAAS,GAAGrtC,eAAe,EAAjC;;EACA,IAAIxO,KAAK,CAACF,eAAV,EAA2B;IACvB,IAAI7sD,GAAG,CAACovD,iBAAR,EACIpvD,GAAG,CAACovD,iBAAJ,CAAsBpvD,GAAtB;IACJ,MAAMu/D,cAAc,GAAGmlC,YAAY,CAAC33C,KAAD,EAAQkI,KAAR,EAAe,CAAf,EAAkB,IAAlB,CAAnC;IACAjmE,SAAS,IACLk6D,WAAW,CAACqW,cAAD,EAAiBqpC,SAAS,CAAC/oC,cAA3B,EAA2C,0FAA3C,CADf;IAEAgpC,0BAA0B,CAAC97C,KAAD,EAAQ67C,SAAR,EAAmB3zC,KAAnB,EAA0BsK,cAA1B,EAA0Cv/D,GAA1C,CAA1B;IACAunG,+BAA+B,CAACx6C,KAAD,EAAQ67C,SAAR,CAA/B;EACH;;EACD,MAAMvnC,SAAS,GAAG4F,iBAAiB,CAAChS,KAAD,EAAQlI,KAAR,EAAe67C,SAAS,CAAC/oC,cAAzB,EAAyC+oC,SAAzC,CAAnC;EACA/hB,eAAe,CAACxlB,SAAD,EAAYpM,KAAZ,CAAf;EACA,MAAMwN,MAAM,GAAGtJ,gBAAgB,CAACyvC,SAAD,EAAY3zC,KAAZ,CAA/B;;EACA,IAAIwN,MAAJ,EAAY;IACRokB,eAAe,CAACpkB,MAAD,EAASxN,KAAT,CAAf;EACH;;EACD,OAAOoM,SAAP;AACH;AACD;AACA;AACA;;;AACA,SAASynC,iBAAT,CAA2B/7C,KAA3B,EAAkCkI,KAAlC,EAAyCnI,KAAzC,EAAgDi8C,SAAhD,EAA2D;EACvD;EACA;EACA/5G,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC;EACA,IAAIu2B,aAAa,GAAG,KAApB;;EACA,IAAIxoB,kBAAkB,EAAtB,EAA0B;IACtB,MAAM5K,aAAa,GAAG84C,uBAAuB,CAACj8C,KAAD,EAAQkI,KAAR,EAAenI,KAAf,CAA7C;IACA,MAAMm8C,UAAU,GAAGF,SAAS,KAAK,IAAd,GAAqB,IAArB,GAA4B;MAAE,IAAI,CAAC;IAAP,CAA/C;;IACA,IAAI74C,aAAa,KAAK,IAAtB,EAA4B;MACxBozB,aAAa,GAAG,IAAhB;MACA4lB,cAAc,CAACp8C,KAAD,EAAQC,KAAK,CAAC14D,IAAN,CAAWrd,MAAnB,EAA2Bk5E,aAAa,CAACl5E,MAAzC,CAAd,CAFwB,CAGxB;MACA;MACA;MACA;MACA;MACA;;MACA,KAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0zE,aAAa,CAACl5E,MAAlC,EAA0CwF,CAAC,EAA3C,EAA+C;QAC3C,MAAMwjB,GAAG,GAAGkwD,aAAa,CAAC1zE,CAAD,CAAzB;QACA,IAAIwjB,GAAG,CAACovD,iBAAR,EACIpvD,GAAG,CAACovD,iBAAJ,CAAsBpvD,GAAtB;MACP;;MACD,IAAImpG,kBAAkB,GAAG,KAAzB;MACA,IAAIC,uBAAuB,GAAG,KAA9B;MACA,IAAI1F,YAAY,GAAGgB,YAAY,CAAC33C,KAAD,EAAQkI,KAAR,EAAe/E,aAAa,CAACl5E,MAA7B,EAAqC,IAArC,CAA/B;MACAgY,SAAS,IACLq6D,UAAU,CAACq6C,YAAD,EAAe52C,KAAK,CAAC+S,cAArB,EAAqC,2DAArC,CADd;;MAEA,KAAK,IAAIrjF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0zE,aAAa,CAACl5E,MAAlC,EAA0CwF,CAAC,EAA3C,EAA+C;QAC3C,MAAMwjB,GAAG,GAAGkwD,aAAa,CAAC1zE,CAAD,CAAzB,CAD2C,CAE3C;QACA;;QACAswE,KAAK,CAACsxC,WAAN,GAAoBl7B,cAAc,CAACpW,KAAK,CAACsxC,WAAP,EAAoBp+F,GAAG,CAAC2vD,SAAxB,CAAlC;QACAk5C,0BAA0B,CAAC97C,KAAD,EAAQD,KAAR,EAAemI,KAAf,EAAsByuC,YAAtB,EAAoC1jG,GAApC,CAA1B;QACAqpG,mBAAmB,CAAC3F,YAAD,EAAe1jG,GAAf,EAAoBipG,UAApB,CAAnB;QACA,IAAIjpG,GAAG,CAAC4vD,cAAJ,KAAuB,IAA3B,EACI9C,KAAK,CAAC/kB,KAAN,IAAe;QAAE;QAAjB;QACJ,IAAI/nC,GAAG,CAACyvD,YAAJ,KAAqB,IAArB,IAA6BzvD,GAAG,CAAC2vD,SAAJ,KAAkB,IAA/C,IAAuD3vD,GAAG,CAAC0vD,QAAJ,KAAiB,CAA5E,EACI5C,KAAK,CAAC/kB,KAAN,IAAe;QAAI;QAAnB;QACJ,MAAMuhE,cAAc,GAAGtpG,GAAG,CAAC9V,IAAJ,CAAS9R,SAAhC,CAX2C,CAY3C;QACA;;QACA,IAAI,CAAC+wH,kBAAD,KACCG,cAAc,CAACzoE,WAAf,IAA8ByoE,cAAc,CAACtzD,QAA7C,IAAyDszD,cAAc,CAAC/pE,SADzE,CAAJ,EACyF;UACrF;UACA;UACA;UACA,CAACwtB,KAAK,CAAC2S,aAAN,KAAwB3S,KAAK,CAAC2S,aAAN,GAAsB,EAA9C,CAAD,EAAoDroF,IAApD,CAAyDy1E,KAAK,CAACzrE,KAA/D;UACA8nH,kBAAkB,GAAG,IAArB;QACH;;QACD,IAAI,CAACC,uBAAD,KAA6BE,cAAc,CAACzoE,WAAf,IAA8ByoE,cAAc,CAAC/pE,SAA1E,CAAJ,EAA0F;UACtF,CAACwtB,KAAK,CAAC4S,kBAAN,KAA6B5S,KAAK,CAAC4S,kBAAN,GAA2B,EAAxD,CAAD,EAA8DtoF,IAA9D,CAAmEy1E,KAAK,CAACzrE,KAAzE;UACA+nH,uBAAuB,GAAG,IAA1B;QACH;;QACD1F,YAAY;MACf;;MACD6D,+BAA+B,CAACx6C,KAAD,EAAQD,KAAR,CAA/B;IACH;;IACD,IAAIm8C,UAAJ,EACIM,uBAAuB,CAACz8C,KAAD,EAAQi8C,SAAR,EAAmBE,UAAnB,CAAvB;EACP,CA3DsD,CA4DvD;;;EACAn8C,KAAK,CAACsxC,WAAN,GAAoBl7B,cAAc,CAACpW,KAAK,CAACsxC,WAAP,EAAoBtxC,KAAK,CAAC4V,KAA1B,CAAlC;EACA,OAAO4gB,aAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkmB,0BAAT,CAAoCz8C,KAApC,EAA2CD,KAA3C,EAAkDmI,KAAlD,EAAyDyuC,YAAzD,EAAuE+F,gBAAvE,EAAyFzpG,GAAzF,EAA8F;EAC1FhR,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC;EACA,MAAM0C,YAAY,GAAGzvD,GAAG,CAACyvD,YAAzB;;EACA,IAAIA,YAAJ,EAAkB;IACd,IAAI4tC,kBAAkB,GAAGtwC,KAAK,CAACswC,kBAA/B;;IACA,IAAIA,kBAAkB,KAAK,IAA3B,EAAiC;MAC7BA,kBAAkB,GAAGtwC,KAAK,CAACswC,kBAAN,GAA2B,EAAhD;IACH;;IACD,MAAMqM,WAAW,GAAG,CAAC58C,KAAK,CAACzrE,KAA3B;;IACA,IAAIsoH,sBAAsB,CAACtM,kBAAD,CAAtB,IAA8CqM,WAAlD,EAA+D;MAC3D;MACA;MACA;MACArM,kBAAkB,CAAChmH,IAAnB,CAAwBqyH,WAAxB;IACH;;IACDrM,kBAAkB,CAAChmH,IAAnB,CAAwBqsH,YAAxB,EAAsC+F,gBAAtC,EAAwDh6C,YAAxD;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk6C,sBAAT,CAAgCtM,kBAAhC,EAAoD;EAChD,IAAI7gH,CAAC,GAAG6gH,kBAAkB,CAACrmH,MAA3B;;EACA,OAAOwF,CAAC,GAAG,CAAX,EAAc;IACV,MAAMzJ,KAAK,GAAGsqH,kBAAkB,CAAC,EAAE7gH,CAAH,CAAhC;;IACA,IAAI,OAAOzJ,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,GAAG,CAAzC,EAA4C;MACxC,OAAOA,KAAP;IACH;EACJ;;EACD,OAAO,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAAS8yH,wBAAT,CAAkC94C,KAAlC,EAAyCkI,KAAzC,EAAgDnI,KAAhD,EAAuD2V,MAAvD,EAA+D;EAC3D,MAAMp2D,KAAK,GAAGygD,KAAK,CAAC+S,cAApB;EACA,MAAM33C,GAAG,GAAG4kC,KAAK,CAACgT,YAAlB;;EACA,IAAI,CAAC/S,KAAK,CAACF,eAAX,EAA4B;IACxB8X,8BAA8B,CAAC7X,KAAD,EAAQmI,KAAR,CAA9B;EACH;;EACD4xB,eAAe,CAACpkB,MAAD,EAASxN,KAAT,CAAf;EACA,MAAMopC,aAAa,GAAGvxC,KAAK,CAACuxC,aAA5B;;EACA,KAAK,IAAI7hH,CAAC,GAAG6vB,KAAb,EAAoB7vB,CAAC,GAAG0rC,GAAxB,EAA6B1rC,CAAC,EAA9B,EAAkC;IAC9B,MAAMwjB,GAAG,GAAG+sD,KAAK,CAAC14D,IAAN,CAAW7X,CAAX,CAAZ;IACA,MAAMsuG,WAAW,GAAGh2B,cAAc,CAAC90D,GAAD,CAAlC;;IACA,IAAI8qF,WAAJ,EAAiB;MACb97F,SAAS,IAAIqzE,eAAe,CAACvV,KAAD,EAAQ;MAAE;MAAV,CAA5B;MACA88C,iBAAiB,CAAC30C,KAAD,EAAQnI,KAAR,EAAe9sD,GAAf,CAAjB;IACH;;IACD,MAAMqhE,SAAS,GAAG4F,iBAAiB,CAAChS,KAAD,EAAQlI,KAAR,EAAevwE,CAAf,EAAkBswE,KAAlB,CAAnC;IACA+5B,eAAe,CAACxlB,SAAD,EAAYpM,KAAZ,CAAf;;IACA,IAAIopC,aAAa,KAAK,IAAtB,EAA4B;MACxBwL,kBAAkB,CAAC50C,KAAD,EAAQz4E,CAAC,GAAG6vB,KAAZ,EAAmBg1D,SAAnB,EAA8BrhE,GAA9B,EAAmC8sD,KAAnC,EAA0CuxC,aAA1C,CAAlB;IACH;;IACD,IAAIvT,WAAJ,EAAiB;MACb,MAAMtD,aAAa,GAAGjuB,wBAAwB,CAACzM,KAAK,CAACzrE,KAAP,EAAc4zE,KAAd,CAA9C;MACAuyB,aAAa,CAACh0B,OAAD,CAAb,GAAyB6N,SAAzB;IACH;EACJ;AACJ;;AACD,SAASykC,4BAAT,CAAsC/4C,KAAtC,EAA6CkI,KAA7C,EAAoDnI,KAApD,EAA2D;EACvD,MAAMzgD,KAAK,GAAGygD,KAAK,CAAC+S,cAApB;EACA,MAAM33C,GAAG,GAAG4kC,KAAK,CAACgT,YAAlB;EACA,MAAMgqC,YAAY,GAAGh9C,KAAK,CAACzrE,KAA3B;EACA,MAAMy7E,qBAAqB,GAAGE,wBAAwB,EAAtD;;EACA,IAAI;IACA+B,gBAAgB,CAAC+qC,YAAD,CAAhB;;IACA,KAAK,IAAIC,QAAQ,GAAG19F,KAApB,EAA2B09F,QAAQ,GAAG7hF,GAAtC,EAA2C6hF,QAAQ,EAAnD,EAAuD;MACnD,MAAM/pG,GAAG,GAAG+sD,KAAK,CAAC14D,IAAN,CAAW01G,QAAX,CAAZ;MACA,MAAM1oC,SAAS,GAAGpM,KAAK,CAAC80C,QAAD,CAAvB;MACAhtC,wBAAwB,CAACgtC,QAAD,CAAxB;;MACA,IAAI/pG,GAAG,CAACyvD,YAAJ,KAAqB,IAArB,IAA6BzvD,GAAG,CAAC0vD,QAAJ,KAAiB,CAA9C,IAAmD1vD,GAAG,CAAC2vD,SAAJ,KAAkB,IAAzE,EAA+E;QAC3Eq6C,gCAAgC,CAAChqG,GAAD,EAAMqhE,SAAN,CAAhC;MACH;IACJ;EACJ,CAVD,SAWQ;IACJtC,gBAAgB,CAAC,CAAC,CAAF,CAAhB;IACAhC,wBAAwB,CAACD,qBAAD,CAAxB;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASktC,gCAAT,CAA0ChqG,GAA1C,EAA+CqhE,SAA/C,EAA0D;EACtD,IAAIrhE,GAAG,CAACyvD,YAAJ,KAAqB,IAAzB,EAA+B;IAC3BzvD,GAAG,CAACyvD,YAAJ,CAAiB;IAAE;IAAnB,EAA6C4R,SAA7C;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAAS2nC,uBAAT,CAAiCj8C,KAAjC,EAAwCi5C,QAAxC,EAAkDl5C,KAAlD,EAAyD;EACrD99D,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC;EACA/9D,SAAS,IAAIqzE,eAAe,CAACvV,KAAD,EAAQ;EAAE;EAAF,EAA6B;EAAG;EAAxC,CAA5B;EACA,MAAMm9C,QAAQ,GAAGl9C,KAAK,CAACywC,iBAAvB;EACA,IAAIplG,OAAO,GAAG,IAAd;;EACA,IAAI6xG,QAAJ,EAAc;IACV,KAAK,IAAIztH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGytH,QAAQ,CAACjzH,MAA7B,EAAqCwF,CAAC,EAAtC,EAA0C;MACtC,MAAMwjB,GAAG,GAAGiqG,QAAQ,CAACztH,CAAD,CAApB;;MACA,IAAIu2G,0BAA0B,CAACjmC,KAAD,EAAQ9sD,GAAG,CAACswD,SAAZ;MAAuB;MAAuB,KAA9C,CAA9B,EAAoF;QAChFl4D,OAAO,KAAKA,OAAO,GAAGpJ,SAAS,GAAG,IAAIoxG,YAAJ,EAAH,GAAwB,EAAhD,CAAP;QACA56B,kBAAkB,CAACb,8BAA8B,CAAC7X,KAAD,EAAQk5C,QAAR,CAA/B,EAAkDj5C,KAAlD,EAAyD/sD,GAAG,CAAC9V,IAA7D,CAAlB;;QACA,IAAI4qE,cAAc,CAAC90D,GAAD,CAAlB,EAAyB;UACrB,IAAIhR,SAAJ,EAAe;YACXqzE,eAAe,CAACvV,KAAD,EAAQ;YAAE;YAAV,EAAoC,IAAGA,KAAK,CAAC/5E,KAAM,4CAAhB,GAC7C,8CAA6C8vD,SAAS,CAAC7iC,GAAG,CAAC9V,IAAL,CAAW,aADvD,CAAf;;YAEA,IAAI4iE,KAAK,CAAC/kB,KAAN,GAAc;YAAE;YAApB,EAAsD;cAClD;cACA;cACA8gD,2BAA2B,CAAC/7B,KAAD,EAAQ10D,OAAO,CAAC,CAAD,CAAP,CAAWlO,IAAnB,EAAyB8V,GAAG,CAAC9V,IAA7B,CAA3B;YACH;UACJ;;UACDggH,mBAAmB,CAACn9C,KAAD,EAAQD,KAAR,CAAnB,CAVqB,CAWrB;;UACA10D,OAAO,CAACuf,OAAR,CAAgB3X,GAAhB;QACH,CAbD,MAcK;UACD5H,OAAO,CAAC/gB,IAAR,CAAa2oB,GAAb;QACH;MACJ;IACJ;EACJ;;EACD,OAAO5H,OAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS8xG,mBAAT,CAA6Bn9C,KAA7B,EAAoCo9C,SAApC,EAA+C;EAC3Cn7G,SAAS,IAAIinE,qBAAqB,CAAClJ,KAAD,CAAlC;EACAo9C,SAAS,CAACpiE,KAAV,IAAmB;EAAE;EAArB;EACA,CAACglB,KAAK,CAACu6B,UAAN,KAAqBv6B,KAAK,CAACu6B,UAAN,GAAmBt4F,SAAS,GAAG,IAAIqxG,eAAJ,EAAH,GAA2B,EAA5E,CAAD,EACKhpH,IADL,CACU8yH,SAAS,CAAC9oH,KADpB;AAEH;AACD;;;AACA,SAASkoH,uBAAT,CAAiCz8C,KAAjC,EAAwCi8C,SAAxC,EAAmDE,UAAnD,EAA+D;EAC3D,IAAIF,SAAJ,EAAe;IACX,MAAM5gB,UAAU,GAAGr7B,KAAK,CAACq7B,UAAN,GAAmBn5F,SAAS,GAAG,IAAIsxG,eAAJ,EAAH,GAA2B,EAA1E,CADW,CAEX;IACA;IACA;;IACA,KAAK,IAAI9jH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGusH,SAAS,CAAC/xH,MAA9B,EAAsCwF,CAAC,IAAI,CAA3C,EAA8C;MAC1C,MAAM6E,KAAK,GAAG4nH,UAAU,CAACF,SAAS,CAACvsH,CAAC,GAAG,CAAL,CAAV,CAAxB;MACA,IAAI6E,KAAK,IAAI,IAAb,EACI,MAAM,IAAIkmE,YAAJ,CAAiB,CAAC;MAAI;MAAtB,EAA+Dv4D,SAAS,IAAK,mBAAkB+5G,SAAS,CAACvsH,CAAC,GAAG,CAAL,CAAQ,cAAhH,CAAN;MACJ2rG,UAAU,CAAC9wG,IAAX,CAAgB0xH,SAAS,CAACvsH,CAAD,CAAzB,EAA8B6E,KAA9B;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASgoH,mBAAT,CAA6B3F,YAA7B,EAA2C1jG,GAA3C,EAAgDipG,UAAhD,EAA4D;EACxD,IAAIA,UAAJ,EAAgB;IACZ,IAAIjpG,GAAG,CAAC8vD,QAAR,EAAkB;MACd,KAAK,IAAItzE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwjB,GAAG,CAAC8vD,QAAJ,CAAa94E,MAAjC,EAAyCwF,CAAC,EAA1C,EAA8C;QAC1CysH,UAAU,CAACjpG,GAAG,CAAC8vD,QAAJ,CAAatzE,CAAb,CAAD,CAAV,GAA8BknH,YAA9B;MACH;IACJ;;IACD,IAAI5uC,cAAc,CAAC90D,GAAD,CAAlB,EACIipG,UAAU,CAAC,EAAD,CAAV,GAAiBvF,YAAjB;EACP;AACJ;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASwF,cAAT,CAAwBp8C,KAAxB,EAA+BzrE,KAA/B,EAAsC+oH,kBAAtC,EAA0D;EACtDp7G,SAAS,IACLo6D,cAAc,CAACghD,kBAAD,EAAqBt9C,KAAK,CAACgT,YAAN,GAAqBhT,KAAK,CAAC+S,cAAhD,EAAgE,sCAAhE,CADlB;EAEA/S,KAAK,CAAC/kB,KAAN,IAAe;EAAE;EAAjB,CAHsD,CAItD;;EACA+kB,KAAK,CAAC+S,cAAN,GAAuBx+E,KAAvB;EACAyrE,KAAK,CAACgT,YAAN,GAAqBz+E,KAAK,GAAG+oH,kBAA7B;EACAt9C,KAAK,CAACqa,eAAN,GAAwB9lF,KAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwnH,0BAAT,CAAoC97C,KAApC,EAA2CD,KAA3C,EAAkDmI,KAAlD,EAAyDsK,cAAzD,EAAyEv/D,GAAzE,EAA8E;EAC1EhR,SAAS,IACL+5D,wBAAwB,CAACwW,cAAD,EAAiBjL,aAAjB,EAAgC,4BAAhC,CAD5B;EAEAvH,KAAK,CAAC14D,IAAN,CAAWkrE,cAAX,IAA6Bv/D,GAA7B;EACA,MAAMqqG,gBAAgB,GAAGrqG,GAAG,CAACwtC,OAAJ,KAAgBxtC,GAAG,CAACwtC,OAAJ,GAAc2pB,aAAa,CAACn3D,GAAG,CAAC9V,IAAL,EAAW,IAAX,CAA3C,CAAzB,CAJ0E,CAK1E;EACA;EACA;;EACA,MAAMogH,mBAAmB,GAAG,IAAI9oC,mBAAJ,CAAwB6oC,gBAAxB,EAA0Cv1C,cAAc,CAAC90D,GAAD,CAAxD,EAA+Di7F,iBAA/D,CAA5B;EACAluC,KAAK,CAACgY,SAAN,CAAgBxF,cAAhB,IAAkC+qC,mBAAlC;EACAr1C,KAAK,CAACsK,cAAD,CAAL,GAAwB+qC,mBAAxB;EACAd,0BAA0B,CAACz8C,KAAD,EAAQD,KAAR,EAAemI,KAAf,EAAsBsK,cAAtB,EAAsCmlC,YAAY,CAAC33C,KAAD,EAAQkI,KAAR,EAAej1D,GAAG,CAAC0vD,QAAnB,EAA6BskC,SAA7B,CAAlD,EAA2Fh0F,GAA3F,CAA1B;AACH;;AACD,SAAS4pG,iBAAT,CAA2B30C,KAA3B,EAAkCk1C,SAAlC,EAA6CnqG,GAA7C,EAAkD;EAC9C,MAAMyiE,MAAM,GAAGtJ,gBAAgB,CAACgxC,SAAD,EAAYl1C,KAAZ,CAA/B;EACA,MAAMlI,KAAK,GAAGm5C,yBAAyB,CAAClmG,GAAD,CAAvC,CAF8C,CAG9C;EACA;;EACA,MAAM8hG,eAAe,GAAG7sC,KAAK,CAACvB,gBAAD,CAA7B;EACA,MAAM8zB,aAAa,GAAG+iB,aAAa,CAACt1C,KAAD,EAAQovC,WAAW,CAACpvC,KAAD,EAAQlI,KAAR,EAAe,IAAf,EAAqB/sD,GAAG,CAAC+vD,MAAJ,GAAa;EAAG;EAAhB,EAAyC;EAAG;EAAjE,EAA+F0S,MAA/F,EAAuG0nC,SAAvG,EAAkHrI,eAAlH,EAAmIA,eAAe,CAAC0I,cAAhB,CAA+B/nC,MAA/B,EAAuCziE,GAAvC,CAAnI,EAAgL,IAAhL,EAAsL,IAAtL,EAA4L,IAA5L,CAAnB,CAAnC,CAN8C,CAO9C;EACA;;EACAi1D,KAAK,CAACk1C,SAAS,CAAC9oH,KAAX,CAAL,GAAyBmmG,aAAzB;AACH;;AACD,SAASijB,wBAAT,CAAkC39C,KAAlC,EAAyCmI,KAAzC,EAAgD7tE,IAAhD,EAAsDrU,KAAtD,EAA6DooG,SAA7D,EAAwEriB,SAAxE,EAAmF;EAC/E,IAAI9pE,SAAJ,EAAe;IACXs6D,aAAa,CAACv2E,KAAD,EAAQihH,SAAR,EAAmB,2CAAnB,CAAb;IACAjX,8BAA8B,CAAC31F,IAAD,CAA9B;IACAi7E,eAAe,CAACvV,KAAD,EAAQ;IAAE;IAAV,EAAoC,gCAA+B1lE,IAAK,0BAArC,GAC7C,6DADU,CAAf;EAEH;;EACD,MAAMuL,OAAO,GAAGwmE,gBAAgB,CAACrM,KAAD,EAAQmI,KAAR,CAAhC;EACAy1C,mBAAmB,CAACz1C,KAAK,CAACtB,QAAD,CAAN,EAAkBhhE,OAAlB,EAA2BmmE,SAA3B,EAAsChM,KAAK,CAAC/5E,KAA5C,EAAmDqU,IAAnD,EAAyDrU,KAAzD,EAAgEooG,SAAhE,CAAnB;AACH;;AACD,SAASuvB,mBAAT,CAA6Bv1D,QAA7B,EAAuCxiD,OAAvC,EAAgDmmE,SAAhD,EAA2DohB,OAA3D,EAAoE9yF,IAApE,EAA0ErU,KAA1E,EAAiFooG,SAAjF,EAA4F;EACxF,IAAIpoG,KAAK,IAAI,IAAb,EAAmB;IACfic,SAAS,IAAIA,SAAS,CAACq+D,uBAAV,EAAb;IACAlY,QAAQ,CAAC+iC,eAAT,CAAyBvlF,OAAzB,EAAkCvL,IAAlC,EAAwC0xE,SAAxC;EACH,CAHD,MAIK;IACD9pE,SAAS,IAAIA,SAAS,CAACo+D,oBAAV,EAAb;IACA,MAAM3pD,QAAQ,GAAG03E,SAAS,IAAI,IAAb,GAAoBxzB,eAAe,CAAC50E,KAAD,CAAnC,GAA6CooG,SAAS,CAACpoG,KAAD,EAAQmnG,OAAO,IAAI,EAAnB,EAAuB9yF,IAAvB,CAAvE;IACA+tD,QAAQ,CAACl7C,YAAT,CAAsBtH,OAAtB,EAA+BvL,IAA/B,EAAqCqc,QAArC,EAA+Cq1D,SAA/C;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+wC,kBAAT,CAA4B50C,KAA5B,EAAmCsK,cAAnC,EAAmDj3E,QAAnD,EAA6D0X,GAA7D,EAAkE8sD,KAAlE,EAAyE69C,gBAAzE,EAA2F;EACvF,MAAMtM,aAAa,GAAGsM,gBAAgB,CAACprC,cAAD,CAAtC;;EACA,IAAI8+B,aAAa,KAAK,IAAtB,EAA4B;IACxB,MAAM1tC,QAAQ,GAAG3wD,GAAG,CAAC2wD,QAArB;;IACA,KAAK,IAAIn0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6hH,aAAa,CAACrnH,MAAlC,GAA2C;MACvC,MAAMk7E,UAAU,GAAGmsC,aAAa,CAAC7hH,CAAC,EAAF,CAAhC;MACA,MAAMw7E,WAAW,GAAGqmC,aAAa,CAAC7hH,CAAC,EAAF,CAAjC;MACA,MAAMzJ,KAAK,GAAGsrH,aAAa,CAAC7hH,CAAC,EAAF,CAA3B;;MACA,IAAIm0E,QAAQ,KAAK,IAAjB,EAAuB;QACnB3wD,GAAG,CAAC2wD,QAAJ,CAAaroE,QAAb,EAAuBvV,KAAvB,EAA8Bm/E,UAA9B,EAA0C8F,WAA1C;MACH,CAFD,MAGK;QACD1vE,QAAQ,CAAC0vE,WAAD,CAAR,GAAwBjlF,KAAxB;MACH;;MACD,IAAIic,SAAJ,EAAe;QACX,MAAMqxC,aAAa,GAAG84B,gBAAgB,CAACrM,KAAD,EAAQmI,KAAR,CAAtC;QACAwzC,oBAAoB,CAACxzC,KAAD,EAAQ50B,aAAR,EAAuBysB,KAAK,CAAC5iE,IAA7B,EAAmC8tE,WAAnC,EAAgDjlF,KAAhD,CAApB;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+0H,qBAAT,CAA+B1vD,MAA/B,EAAuCsqB,KAAvC,EAA8C;EAC1C,IAAIkoC,aAAa,GAAG,IAApB;EACA,IAAIpuH,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGkmF,KAAK,CAAC1rF,MAAjB,EAAyB;IACrB,MAAM2vD,QAAQ,GAAG+7B,KAAK,CAAClmF,CAAD,CAAtB;;IACA,IAAImqD,QAAQ,KAAK;IAAE;IAAnB,EAAuD;MACnD;MACAnqD,CAAC,IAAI,CAAL;MACA;IACH,CAJD,MAKK,IAAImqD,QAAQ,KAAK;IAAE;IAAnB,EAAoD;MACrD;MACAnqD,CAAC,IAAI,CAAL;MACA;IACH,CAXoB,CAYrB;;;IACA,IAAI,OAAOmqD,QAAP,KAAoB,QAAxB,EACI;;IACJ,IAAIyR,MAAM,CAACz/C,cAAP,CAAsBguC,QAAtB,CAAJ,EAAqC;MACjC,IAAIikE,aAAa,KAAK,IAAtB,EACIA,aAAa,GAAG,EAAhB;MACJA,aAAa,CAACvzH,IAAd,CAAmBsvD,QAAnB,EAA6ByR,MAAM,CAACzR,QAAD,CAAnC,EAA+C+7B,KAAK,CAAClmF,CAAC,GAAG,CAAL,CAApD;IACH;;IACDA,CAAC,IAAI,CAAL;EACH;;EACD,OAAOouH,aAAP;AACH,EACD;AACA;AACA;AACA;;;AACA,MAAMC,eAAe,GAAG,MAAMC,UAAN,SAAyBj0H,KAAzB,CAA+B,EAAvD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASk0H,gBAAT,CAA0BC,UAA1B,EAAsCnsC,WAAtC,EAAmD4D,MAAnD,EAA2D3V,KAA3D,EAAkE;EAC9D99D,SAAS,IAAIgnE,WAAW,CAAC6I,WAAD,CAAxB,CAD8D,CAE9D;;EACA,MAAM5E,UAAU,GAAG,KAAKjrE,SAAS,GAAG67G,eAAH,GAAqBh0H,KAAnC,EAA0Cm0H,UAA1C,EAAsD;EACzE,IADmB,EACb;EACN,KAFmB,EAEZ;EACPnsC,WAHmB,EAGN;EACb,IAJmB,EAIb;EACN,CALmB,EAKhB;EACH/R,KANmB,EAMZ;EACP2V,MAPmB,EAOX;EACR,IARmB,EAQb;EACN,IATmB,CAAnB;EAUAzzE,SAAS,IACLk6D,WAAW,CAAC+Q,UAAU,CAACjjF,MAAZ,EAAoB87E,uBAApB,EAA6C,gEAA7C,CADf;EAEA9jE,SAAS,IAAI4xG,qBAAqB,CAAC3mC,UAAD,CAAlC;EACA,OAAOA,UAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASorC,oBAAT,CAA8BpwC,KAA9B,EAAqC;EACjC,KAAK,IAAIgF,UAAU,GAAGswB,kBAAkB,CAACt1B,KAAD,CAAxC,EAAiDgF,UAAU,KAAK,IAAhE,EAAsEA,UAAU,GAAGwwB,iBAAiB,CAACxwB,UAAD,CAApG,EAAkH;IAC9G,KAAK,IAAIz9E,CAAC,GAAGs2E,uBAAb,EAAsCt2E,CAAC,GAAGy9E,UAAU,CAACjjF,MAArD,EAA6DwF,CAAC,EAA9D,EAAkE;MAC9D,MAAMyuH,aAAa,GAAGhxC,UAAU,CAACz9E,CAAD,CAAhC;MACA,MAAM0uH,aAAa,GAAGD,aAAa,CAACh4C,KAAD,CAAnC;MACAjkE,SAAS,IAAI06D,aAAa,CAACwhD,aAAD,EAAgB,yBAAhB,CAA1B;;MACA,IAAItxC,4BAA4B,CAACqxC,aAAD,CAAhC,EAAiD;QAC7C/F,WAAW,CAACgG,aAAD,EAAgBD,aAAhB,EAA+BC,aAAa,CAAC1jE,QAA7C,EAAuDyjE,aAAa,CAACz3C,OAAD,CAApE,CAAX;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS4xC,+BAAT,CAAyCnwC,KAAzC,EAAgD;EAC5C,KAAK,IAAIgF,UAAU,GAAGswB,kBAAkB,CAACt1B,KAAD,CAAxC,EAAiDgF,UAAU,KAAK,IAAhE,EAAsEA,UAAU,GAAGwwB,iBAAiB,CAACxwB,UAAD,CAApG,EAAkH;IAC9G,IAAI,CAACA,UAAU,CAACvH,sBAAD,CAAf,EACI;IACJ,MAAMk6B,UAAU,GAAG3yB,UAAU,CAACpH,WAAD,CAA7B;IACA7jE,SAAS,IAAI06D,aAAa,CAACkjC,UAAD,EAAa,qDAAb,CAA1B;;IACA,KAAK,IAAIpwG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGowG,UAAU,CAAC51G,MAA/B,EAAuCwF,CAAC,EAAxC,EAA4C;MACxC,MAAM2uH,UAAU,GAAGve,UAAU,CAACpwG,CAAD,CAA7B;MACA,MAAM0wG,mBAAmB,GAAGie,UAAU,CAACh4C,MAAD,CAAtC;MACAnkE,SAAS,IAAI8mE,gBAAgB,CAACo3B,mBAAD,CAA7B,CAHwC,CAIxC;MACA;;MACA,IAAI,CAACie,UAAU,CAACj4C,KAAD,CAAV,GAAoB;MAAI;MAAzB,MAAuE,CAA3E,EAA8E;QAC1E8G,2BAA2B,CAACkzB,mBAAD,EAAsB,CAAtB,CAA3B;MACH,CARuC,CASxC;MACA;MACA;MACA;;;MACAie,UAAU,CAACj4C,KAAD,CAAV,IAAqB;MAAI;MAAzB;IACH;EACJ;AACJ,EACD;;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgxC,gBAAT,CAA0BD,SAA1B,EAAqCmH,gBAArC,EAAuD;EACnDp8G,SAAS,IAAIk6D,WAAW,CAACyQ,cAAc,CAACsqC,SAAD,CAAf,EAA4B,KAA5B,EAAmC,8BAAnC,CAAxB;EACA,MAAMzc,aAAa,GAAGjuB,wBAAwB,CAAC6xC,gBAAD,EAAmBnH,SAAnB,CAA9C,CAFmD,CAGnD;;EACA,IAAIrqC,4BAA4B,CAAC4tB,aAAD,CAAhC,EAAiD;IAC7C,MAAMz6B,KAAK,GAAGy6B,aAAa,CAACv0B,KAAD,CAA3B;;IACA,IAAIu0B,aAAa,CAACt0B,KAAD,CAAb,IAAwB;IAAG;IAAH,EAAkC;IAAG;IAA7D,CAAJ,EAA0F;MACtFgyC,WAAW,CAACn4C,KAAD,EAAQy6B,aAAR,EAAuBz6B,KAAK,CAACvlB,QAA7B,EAAuCggD,aAAa,CAACh0B,OAAD,CAApD,CAAX;IACH,CAFD,MAGK,IAAIg0B,aAAa,CAACn0B,6BAAD,CAAb,GAA+C,CAAnD,EAAsD;MACvD;MACAg4C,wBAAwB,CAAC7jB,aAAD,CAAxB;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6jB,wBAAT,CAAkCp2C,KAAlC,EAAyC;EACrC,KAAK,IAAIgF,UAAU,GAAGswB,kBAAkB,CAACt1B,KAAD,CAAxC,EAAiDgF,UAAU,KAAK,IAAhE,EAAsEA,UAAU,GAAGwwB,iBAAiB,CAACxwB,UAAD,CAApG,EAAkH;IAC9G,KAAK,IAAIz9E,CAAC,GAAGs2E,uBAAb,EAAsCt2E,CAAC,GAAGy9E,UAAU,CAACjjF,MAArD,EAA6DwF,CAAC,EAA9D,EAAkE;MAC9D,MAAMyuH,aAAa,GAAGhxC,UAAU,CAACz9E,CAAD,CAAhC;;MACA,IAAIo9E,4BAA4B,CAACqxC,aAAD,CAAhC,EAAiD;QAC7C,IAAIA,aAAa,CAAC/3C,KAAD,CAAb,GAAuB;QAAI;QAA/B,EAAyE;UACrE,MAAMg4C,aAAa,GAAGD,aAAa,CAACh4C,KAAD,CAAnC;UACAjkE,SAAS,IAAI06D,aAAa,CAACwhD,aAAD,EAAgB,yBAAhB,CAA1B;UACAhG,WAAW,CAACgG,aAAD,EAAgBD,aAAhB,EAA+BC,aAAa,CAAC1jE,QAA7C,EAAuDyjE,aAAa,CAACz3C,OAAD,CAApE,CAAX;QACH,CAJD,MAKK,IAAIy3C,aAAa,CAAC53C,6BAAD,CAAb,GAA+C,CAAnD,EAAsD;UACvDg4C,wBAAwB,CAACJ,aAAD,CAAxB;QACH;MACJ;IACJ;EACJ;;EACD,MAAMl+C,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB,CAhBqC,CAiBrC;;EACA,MAAMq0B,UAAU,GAAGv6B,KAAK,CAACu6B,UAAzB;;EACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;IACrB,KAAK,IAAI9qG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8qG,UAAU,CAACtwG,MAA/B,EAAuCwF,CAAC,EAAxC,EAA4C;MACxC,MAAMgrG,aAAa,GAAGjuB,wBAAwB,CAAC+tB,UAAU,CAAC9qG,CAAD,CAAX,EAAgBy4E,KAAhB,CAA9C,CADwC,CAExC;;MACA,IAAI2E,4BAA4B,CAAC4tB,aAAD,CAA5B,IACAA,aAAa,CAACn0B,6BAAD,CAAb,GAA+C,CADnD,EACsD;QAClDg4C,wBAAwB,CAAC7jB,aAAD,CAAxB;MACH;IACJ;EACJ;AACJ;;AACD,SAAS4c,eAAT,CAAyBH,SAAzB,EAAoCmH,gBAApC,EAAsD;EAClDp8G,SAAS,IAAIk6D,WAAW,CAACyQ,cAAc,CAACsqC,SAAD,CAAf,EAA4B,IAA5B,EAAkC,gCAAlC,CAAxB;EACA,MAAMzc,aAAa,GAAGjuB,wBAAwB,CAAC6xC,gBAAD,EAAmBnH,SAAnB,CAA9C;EACA,MAAMqH,cAAc,GAAG9jB,aAAa,CAACv0B,KAAD,CAApC;EACAs4C,qBAAqB,CAACD,cAAD,EAAiB9jB,aAAjB,CAArB;EACAsd,UAAU,CAACwG,cAAD,EAAiB9jB,aAAjB,EAAgCA,aAAa,CAACh0B,OAAD,CAA7C,CAAV;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+3C,qBAAT,CAA+Bx+C,KAA/B,EAAsCkI,KAAtC,EAA6C;EACzC,KAAK,IAAIz4E,CAAC,GAAGy4E,KAAK,CAACj+E,MAAnB,EAA2BwF,CAAC,GAAGuwE,KAAK,CAACgY,SAAN,CAAgB/tF,MAA/C,EAAuDwF,CAAC,EAAxD,EAA4D;IACxDy4E,KAAK,CAAC59E,IAAN,CAAW01E,KAAK,CAACgY,SAAN,CAAgBvoF,CAAhB,CAAX;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+tH,aAAT,CAAuBt1C,KAAvB,EAA8Bi3B,iBAA9B,EAAiD;EAC7C;EACA;EACA;EACA;EACA,IAAIj3B,KAAK,CAACpB,UAAD,CAAT,EAAuB;IACnBoB,KAAK,CAACnB,UAAD,CAAL,CAAkBV,IAAlB,IAA0B84B,iBAA1B;EACH,CAFD,MAGK;IACDj3B,KAAK,CAACpB,UAAD,CAAL,GAAoBq4B,iBAApB;EACH;;EACDj3B,KAAK,CAACnB,UAAD,CAAL,GAAoBo4B,iBAApB;EACA,OAAOA,iBAAP;AACH,EACD;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsf,aAAT,CAAuBv2C,KAAvB,EAA8B;EAC1B,OAAOA,KAAP,EAAc;IACVA,KAAK,CAAC/B,KAAD,CAAL,IAAgB;IAAG;IAAnB;IACA,MAAMz5E,MAAM,GAAGwwG,cAAc,CAACh1B,KAAD,CAA7B,CAFU,CAGV;;IACA,IAAIF,UAAU,CAACE,KAAD,CAAV,IAAqB,CAACx7E,MAA1B,EAAkC;MAC9B,OAAOw7E,KAAP;IACH,CANS,CAOV;;;IACAA,KAAK,GAAGx7E,MAAR;EACH;;EACD,OAAO,IAAP;AACH;;AACD,SAASgyH,qBAAT,CAA+B1+C,KAA/B,EAAsCkI,KAAtC,EAA6Ct8E,OAA7C,EAAsD+yH,kBAAkB,GAAG,IAA3E,EAAiF;EAC7E,MAAM5J,eAAe,GAAG7sC,KAAK,CAACvB,gBAAD,CAA7B,CAD6E,CAE7E;EACA;EACA;;EACA,MAAM2gC,kBAAkB,GAAG,CAAC,CAACrlG,SAAF,IAAegtE,sBAAsB,EAAhE;EACA,IAAI,CAACq4B,kBAAD,IAAuByN,eAAe,CAAC6J,KAA3C,EACI7J,eAAe,CAAC6J,KAAhB;;EACJ,IAAI;IACAzG,WAAW,CAACn4C,KAAD,EAAQkI,KAAR,EAAelI,KAAK,CAACvlB,QAArB,EAA+B7uD,OAA/B,CAAX;EACH,CAFD,CAGA,OAAO9E,KAAP,EAAc;IACV,IAAI63H,kBAAJ,EAAwB;MACpBzmB,WAAW,CAAChwB,KAAD,EAAQphF,KAAR,CAAX;IACH;;IACD,MAAMA,KAAN;EACH,CARD,SASQ;IACJ,IAAI,CAACwgH,kBAAD,IAAuByN,eAAe,CAAC55E,GAA3C,EACI45E,eAAe,CAAC55E,GAAhB;EACP;AACJ;;AACD,SAAS0jF,sBAAT,CAAgC7+C,KAAhC,EAAuCkI,KAAvC,EAA8Ct8E,OAA9C,EAAuD+yH,kBAAkB,GAAG,IAA5E,EAAkF;EAC9EzvC,yBAAyB,CAAC,IAAD,CAAzB;;EACA,IAAI;IACAwvC,qBAAqB,CAAC1+C,KAAD,EAAQkI,KAAR,EAAet8E,OAAf,EAAwB+yH,kBAAxB,CAArB;EACH,CAFD,SAGQ;IACJzvC,yBAAyB,CAAC,KAAD,CAAzB;EACH;AACJ;;AACD,SAAS8oC,kBAAT,CAA4Bh9D,KAA5B,EAAmC8jE,WAAnC,EAAgDp5B,SAAhD,EAA2D;EACvDzjF,SAAS,IAAI06D,aAAa,CAACmiD,WAAD,EAAc,mDAAd,CAA1B;EACAzuC,oBAAoB,CAAC,CAAD,CAApB;EACAyuC,WAAW,CAAC9jE,KAAD,EAAQ0qC,SAAR,CAAX;AACH,EACD;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq5B,4BAAT,CAAsC5uC,KAAtC,EAA6CpQ,KAA7C,EAAoDtgD,YAApD,EAAkE8vD,YAAlE,EAAgF,GAAGyvC,kBAAnF,EAAuG;EACnG;EACA;EACA;EACA,IAAI7uC,KAAK,CAACZ,YAAD,CAAL,KAAwB,IAA5B,EAAkC;IAC9B,IAAIxP,KAAK,CAAC1U,MAAN,IAAgB,IAAhB,IAAwB,CAAC0U,KAAK,CAAC1U,MAAN,CAAa5rC,YAAb,CAA7B,EAAyD;MACrD,MAAMw/F,eAAe,GAAGl/C,KAAK,CAACqxC,gBAAN,KAA2BrxC,KAAK,CAACqxC,gBAAN,GAAyB,EAApD,CAAxB;MACA6N,eAAe,CAAC30H,IAAhB,CAAqBilF,YAArB;MACA,IAAI2vC,eAAe,GAAGz/F,YAAtB;;MACA,IAAIu/F,kBAAkB,CAAC/0H,MAAnB,GAA4B,CAAhC,EAAmC;QAC/Bi1H,eAAe,IACXxjB,uBAAuB,GAAGsjB,kBAAkB,CAACtkH,IAAnB,CAAwBghG,uBAAxB,CAD9B;MAEH;;MACDvrB,KAAK,CAACZ,YAAD,CAAL,GAAsB2vC,eAAtB;IACH;EACJ;AACJ;;AACD,SAASjF,uBAAT,CAAiCvjE,IAAjC,EAAuC;EACnC;EACA,OAAOA,IAAI,CAAC8vB,OAAD,CAAJ,KAAkB9vB,IAAI,CAAC8vB,OAAD,CAAJ,GAAgBvkE,SAAS,GAAG,IAAIwxG,QAAJ,EAAH,GAAoB,EAA/D,CAAP;AACH;;AACD,SAASyG,uBAAT,CAAiCl6C,KAAjC,EAAwC;EACpC,OAAOA,KAAK,CAAC9K,OAAN,KAAkB8K,KAAK,CAAC9K,OAAN,GAAgBjzD,SAAS,GAAG,IAAIyxG,QAAJ,EAAH,GAAoB,EAA/D,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASyL,qBAAT,CAA+BC,UAA/B,EAA2Cr/C,KAA3C,EAAkDmI,KAAlD,EAAyD;EACrD;EACA;EACA;EACA;EACA;EACA;EACA,IAAIk3C,UAAU,KAAK,IAAf,IAAuBr3C,cAAc,CAACq3C,UAAD,CAAzC,EAAuD;IACnDl3C,KAAK,GAAG+D,WAAW,CAAC/D,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAAN,CAAnB;EACH;;EACD,OAAO4zE,KAAK,CAACtB,QAAD,CAAZ;AACH;AACD;;;AACA,SAASsxB,WAAT,CAAqBhwB,KAArB,EAA4BphF,KAA5B,EAAmC;EAC/B,MAAMutD,QAAQ,GAAG6zB,KAAK,CAACxB,UAAD,CAAtB;EACA,MAAM24C,YAAY,GAAGhrE,QAAQ,GAAGA,QAAQ,CAACjuC,GAAT,CAAa4xF,YAAb,EAA2B,IAA3B,CAAH,GAAsC,IAAnE;EACAqnB,YAAY,IAAIA,YAAY,CAACnnB,WAAb,CAAyBpxG,KAAzB,CAAhB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu0H,oBAAT,CAA8Br7C,KAA9B,EAAqCkI,KAArC,EAA4C7c,MAA5C,EAAoD8Z,UAApD,EAAgEn/E,KAAhE,EAAuE;EACnE,KAAK,IAAIyJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG47D,MAAM,CAACphE,MAA3B,GAAoC;IAChC,MAAMqK,KAAK,GAAG+2D,MAAM,CAAC57D,CAAC,EAAF,CAApB;IACA,MAAMw7E,WAAW,GAAG5f,MAAM,CAAC57D,CAAC,EAAF,CAA1B;IACA,MAAM8L,QAAQ,GAAG2sE,KAAK,CAAC5zE,KAAD,CAAtB;IACA2N,SAAS,IAAI86D,kBAAkB,CAACmL,KAAD,EAAQ5zE,KAAR,CAA/B;IACA,MAAM2e,GAAG,GAAG+sD,KAAK,CAAC14D,IAAN,CAAWhT,KAAX,CAAZ;;IACA,IAAI2e,GAAG,CAAC2wD,QAAJ,KAAiB,IAArB,EAA2B;MACvB3wD,GAAG,CAAC2wD,QAAJ,CAAaroE,QAAb,EAAuBvV,KAAvB,EAA8Bm/E,UAA9B,EAA0C8F,WAA1C;IACH,CAFD,MAGK;MACD1vE,QAAQ,CAAC0vE,WAAD,CAAR,GAAwBjlF,KAAxB;IACH;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAASs5H,mBAAT,CAA6Bp3C,KAA7B,EAAoC5zE,KAApC,EAA2CtO,KAA3C,EAAkD;EAC9Cic,SAAS,IAAIg6D,YAAY,CAACj2E,KAAD,EAAQ,0BAAR,CAAzB;EACAic,SAAS,IAAIs6D,aAAa,CAACv2E,KAAD,EAAQihH,SAAR,EAAmB,+BAAnB,CAA1B;EACAhlG,SAAS,IAAI86D,kBAAkB,CAACmL,KAAD,EAAQ5zE,KAAR,CAA/B;EACA,MAAMsR,OAAO,GAAGumE,gBAAgB,CAAC73E,KAAD,EAAQ4zE,KAAR,CAAhC;EACAjmE,SAAS,IAAI06D,aAAa,CAAC/2D,OAAD,EAAU,6BAAV,CAA1B;EACA44F,cAAc,CAACt2B,KAAK,CAACtB,QAAD,CAAN,EAAkBhhE,OAAlB,EAA2B5f,KAA3B,CAAd;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu5H,oBAAT,CAA8Bx/C,KAA9B,EAAqC4V,KAArC,EAA4C6pC,WAA5C,EAAyD;EACrDv9G,SAAS,IACLinE,qBAAqB,CAACiF,QAAQ,EAAT,EAAa,oDAAb,CADzB;EAEA,IAAI7wE,MAAM,GAAGkiH,WAAW,GAAGz/C,KAAK,CAACziE,MAAT,GAAkB,IAA1C;EACA,IAAIs7E,OAAO,GAAG4mC,WAAW,GAAGz/C,KAAK,CAAC6Y,OAAT,GAAmB,IAA5C;EACA,IAAIzJ,IAAI,GAAG,CAAX;;EACA,IAAIwG,KAAK,KAAK,IAAd,EAAoB;IAChB,KAAK,IAAIlmF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkmF,KAAK,CAAC1rF,MAA1B,EAAkCwF,CAAC,EAAnC,EAAuC;MACnC,MAAMzJ,KAAK,GAAG2vF,KAAK,CAAClmF,CAAD,CAAnB;;MACA,IAAI,OAAOzJ,KAAP,KAAiB,QAArB,EAA+B;QAC3BmpF,IAAI,GAAGnpF,KAAP;MACH,CAFD,MAGK,IAAImpF,IAAI,IAAI;MAAE;MAAd,EAA6C;QAC9CyJ,OAAO,GAAG7e,sBAAsB,CAAC6e,OAAD,EAAU5yF,KAAV,CAAhC;MACH,CAFI,MAGA,IAAImpF,IAAI,IAAI;MAAE;MAAd,EAA4C;QAC7C,MAAMzxE,KAAK,GAAG1X,KAAd;QACA,MAAMy5H,UAAU,GAAG9pC,KAAK,CAAC,EAAElmF,CAAH,CAAxB;QACA6N,MAAM,GAAGy8D,sBAAsB,CAACz8D,MAAD,EAASI,KAAK,GAAG,IAAR,GAAe+hH,UAAf,GAA4B,GAArC,CAA/B;MACH;IACJ;EACJ;;EACDD,WAAW,GAAGz/C,KAAK,CAACziE,MAAN,GAAeA,MAAlB,GAA2ByiE,KAAK,CAACyxC,iBAAN,GAA0Bl0G,MAAhE;EACAkiH,WAAW,GAAGz/C,KAAK,CAAC6Y,OAAN,GAAgBA,OAAnB,GAA6B7Y,KAAK,CAAC2xC,kBAAN,GAA2B94B,OAAnE;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8mC,kBAAT,CAA4B1/C,KAA5B,EAAmCkI,KAAnC,EAA0CnI,KAA1C,EAAiD7wE,MAAjD,EAAyDm0G,YAAY,GAAG,KAAxE,EAA+E;EAC3E,OAAOtjC,KAAK,KAAK,IAAjB,EAAuB;IACnB99D,SAAS,IACLqzE,eAAe,CAACvV,KAAD,EAAQ;IAAE;IAAF,EAA6B;IAAG;IAAhC,EAA+D;IAAG;IAAlE,EAA+F;IAAG;IAA1G,CADnB;IAEA,MAAM4/C,KAAK,GAAGz3C,KAAK,CAACnI,KAAK,CAACzrE,KAAP,CAAnB;;IACA,IAAIqrH,KAAK,KAAK,IAAd,EAAoB;MAChBzwH,MAAM,CAAC5E,IAAP,CAAY0hF,WAAW,CAAC2zC,KAAD,CAAvB;IACH,CANkB,CAOnB;IACA;IACA;;;IACA,IAAIh4C,YAAY,CAACg4C,KAAD,CAAhB,EAAyB;MACrB,KAAK,IAAIlwH,CAAC,GAAGs2E,uBAAb,EAAsCt2E,CAAC,GAAGkwH,KAAK,CAAC11H,MAAhD,EAAwDwF,CAAC,EAAzD,EAA6D;QACzD,MAAMmwH,iBAAiB,GAAGD,KAAK,CAAClwH,CAAD,CAA/B;QACA,MAAMowH,oBAAoB,GAAGD,iBAAiB,CAAC15C,KAAD,CAAjB,CAAyBgL,UAAtD;;QACA,IAAI2uC,oBAAoB,KAAK,IAA7B,EAAmC;UAC/BH,kBAAkB,CAACE,iBAAiB,CAAC15C,KAAD,CAAlB,EAA2B05C,iBAA3B,EAA8CC,oBAA9C,EAAoE3wH,MAApE,CAAlB;QACH;MACJ;IACJ;;IACD,MAAMgmF,SAAS,GAAGnV,KAAK,CAAC5iE,IAAxB;;IACA,IAAI+3E,SAAS,GAAG;IAAE;IAAlB,EAAoD;MAChDwqC,kBAAkB,CAAC1/C,KAAD,EAAQkI,KAAR,EAAenI,KAAK,CAACsR,KAArB,EAA4BniF,MAA5B,CAAlB;IACH,CAFD,MAGK,IAAIgmF,SAAS,GAAG;IAAG;IAAnB,EAAwC;MACzC,MAAMytB,SAAS,GAAG/F,mBAAmB,CAAC78B,KAAD,EAAQmI,KAAR,CAArC;MACA,IAAI81B,KAAJ;;MACA,OAAOA,KAAK,GAAG2E,SAAS,EAAxB,EAA4B;QACxBzzG,MAAM,CAAC5E,IAAP,CAAY0zG,KAAZ;MACH;IACJ,CANI,MAOA,IAAI9oB,SAAS,GAAG;IAAG;IAAnB,EAA+C;MAChD,MAAM4qC,WAAW,GAAGjd,kBAAkB,CAAC36B,KAAD,EAAQnI,KAAR,CAAtC;;MACA,IAAIj2E,KAAK,CAAC2C,OAAN,CAAcqzH,WAAd,CAAJ,EAAgC;QAC5B5wH,MAAM,CAAC5E,IAAP,CAAY,GAAGw1H,WAAf;MACH,CAFD,MAGK;QACD,MAAM7oC,UAAU,GAAGimB,cAAc,CAACh1B,KAAK,CAACjB,0BAAD,CAAN,CAAjC;QACAhlE,SAAS,IAAIgoE,gBAAgB,CAACgN,UAAD,CAA7B;QACAyoC,kBAAkB,CAACzoC,UAAU,CAAC/Q,KAAD,CAAX,EAAoB+Q,UAApB,EAAgC6oC,WAAhC,EAA6C5wH,MAA7C,EAAqD,IAArD,CAAlB;MACH;IACJ;;IACD6wE,KAAK,GAAGsjC,YAAY,GAAGtjC,KAAK,CAACyjC,cAAT,GAA0BzjC,KAAK,CAACz5E,IAApD;EACH;;EACD,OAAO4I,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM6wH,SAAN,CAAgB;EACZj6H,WAAW;EACX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIu1F,MAZW;EAaX;AACJ;AACA;AACA;AACA;AACA;EACI2kC,mBAnBW,EAmBU;IACjB,KAAK3kC,MAAL,GAAcA,MAAd;IACA,KAAK2kC,mBAAL,GAA2BA,mBAA3B;IACA,KAAKC,OAAL,GAAe,IAAf;IACA,KAAKC,wBAAL,GAAgC,KAAhC;EACH;;EACY,IAATC,SAAS,GAAG;IACZ,MAAMj4C,KAAK,GAAG,KAAKmT,MAAnB;IACA,MAAMrb,KAAK,GAAGkI,KAAK,CAAChC,KAAD,CAAnB;IACA,OAAOw5C,kBAAkB,CAAC1/C,KAAD,EAAQkI,KAAR,EAAelI,KAAK,CAACkR,UAArB,EAAiC,EAAjC,CAAzB;EACH;;EACU,IAAPtlF,OAAO,GAAG;IACV,OAAO,KAAKyvF,MAAL,CAAY5U,OAAZ,CAAP;EACH;;EACU,IAAP76E,OAAO,CAAC5F,KAAD,EAAQ;IACf,KAAKq1F,MAAL,CAAY5U,OAAZ,IAAuBzgF,KAAvB;EACH;;EACY,IAATkjC,SAAS,GAAG;IACZ,OAAO,CAAC,KAAKmyD,MAAL,CAAYlV,KAAZ,IAAqB;IAAI;IAA1B,MAA0D;IAAI;IAArE;EACH;;EACDpmE,OAAO,GAAG;IACN,IAAI,KAAKkgH,OAAT,EAAkB;MACd,KAAKA,OAAL,CAAa7f,UAAb,CAAwB,IAAxB;IACH,CAFD,MAGK,IAAI,KAAK8f,wBAAT,EAAmC;MACpC,MAAMxzH,MAAM,GAAG,KAAK2uF,MAAL,CAAYjV,MAAZ,CAAf;;MACA,IAAIuB,YAAY,CAACj7E,MAAD,CAAhB,EAA0B;QACtB,MAAM0zH,QAAQ,GAAG1zH,MAAM,CAACm5E,SAAD,CAAvB;QACA,MAAMvxE,KAAK,GAAG8rH,QAAQ,GAAGA,QAAQ,CAAChlH,OAAT,CAAiB,IAAjB,CAAH,GAA4B,CAAC,CAAnD;;QACA,IAAI9G,KAAK,GAAG,CAAC,CAAb,EAAgB;UACZ2N,SAAS,IACLk6D,WAAW,CAAC7nE,KAAD,EAAQ5H,MAAM,CAAC0O,OAAP,CAAe,KAAKigF,MAApB,IAA8BtV,uBAAtC,EAA+D,6GAA/D,CADf;UAEAq6B,UAAU,CAAC1zG,MAAD,EAAS4H,KAAT,CAAV;UACAsrF,eAAe,CAACwgC,QAAD,EAAW9rH,KAAX,CAAf;QACH;MACJ;;MACD,KAAK4rH,wBAAL,GAAgC,KAAhC;IACH;;IACD1f,YAAY,CAAC,KAAKnlB,MAAL,CAAYnV,KAAZ,CAAD,EAAqB,KAAKmV,MAA1B,CAAZ;EACH;;EACD97E,SAAS,CAAC/K,QAAD,EAAW;IAChBulH,uBAAuB,CAAC,KAAK1+B,MAAL,CAAYnV,KAAZ,CAAD,EAAqB,KAAKmV,MAA1B,EAAkC,IAAlC,EAAwC7mF,QAAxC,CAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIsoD,YAAY,GAAG;IACX2hE,aAAa,CAAC,KAAKuB,mBAAL,IAA4B,KAAK3kC,MAAlC,CAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIglC,MAAM,GAAG;IACL,KAAKhlC,MAAL,CAAYlV,KAAZ,KAAsB,CAAC;IAAG;IAA1B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIm6C,QAAQ,GAAG;IACP,KAAKjlC,MAAL,CAAYlV,KAAZ,KAAsB;IAAG;IAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AC3De,uBAAuB,CAACr1H,KAAD,EAAQq0H,UAAR,EAAoBC,cAApB,CAAvB;EACAgB,qBAAqB;EACrB,OAAOC,kBAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,gBAAT,GAA4B;EACxB,OAAO57C,QAAQ,EAAf;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,SAASz9E,SAAT,CAAmBa,GAAnB,EAAwB;EACpB;EACA;EACA,OAAO,CAAC,CAACA,GAAF,IAAS,OAAOA,GAAG,CAACK,IAAX,KAAoB,UAApC;AACH;AACD;AACA;AACA;;;AACA,SAASo4H,cAAT,CAAwBz4H,GAAxB,EAA6B;EACzB,OAAO,CAAC,CAACA,GAAF,IAAS,OAAOA,GAAG,CAAC3J,SAAX,KAAyB,UAAzC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqiI,YAAY,GAAGD,cAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,UAAT,CAAoBnjH,SAApB,EAA+BojH,UAA/B,EAA2CC,UAA3C,EAAuDC,mBAAvD,EAA4E;EACxE,MAAMliD,KAAK,GAAGgG,QAAQ,EAAtB;EACA,MAAMlO,KAAK,GAAGmO,QAAQ,EAAtB;EACA,MAAMpO,KAAK,GAAGyO,eAAe,EAA7B;EACA67C,gBAAgB,CAACrqD,KAAD,EAAQkI,KAAR,EAAeA,KAAK,CAACtB,QAAD,CAApB,EAAgC7G,KAAhC,EAAuCj5D,SAAvC,EAAkDojH,UAAlD,EAA8D,CAAC,CAACC,UAAhE,EAA4EC,mBAA5E,CAAhB;EACA,OAAOH,UAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASK,uBAAT,CAAiCxjH,SAAjC,EAA4CojH,UAA5C,EAAwD;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H,MAA3C,GAAoD,CAAlF,EAAqF,GAAGw+H,sBAAxF,CAA5B;IACH;EACJ;;EACD,OAAOyE,sBAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,mEAAJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAA+Bj9C,KAA/B,EAAsCpQ,KAAtC,EAA6CstD,qBAA7C,EAAoE/4H,KAApE,EAA2Eg5H,aAA3E,EAA0FC,cAA1F,EAA0G;EACtGtrH,SAAS,IAAImnE,qBAAqB,CAAC+E,QAAQ,EAAT,CAAlC;EACA,IAAIq/C,SAAS,GAAGD,cAAc,GAAGx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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmN,sBAAT,CAAgC9lI,MAAhC,EAAwC;EACpC,MAAM84E,KAAK,GAAGgG,QAAQ,EAAtB;EACA,MAAM65C,iBAAiB,GAAGzB,cAAc,CAACp+C,KAAD,EAAQ94E,MAAR,CAAxC;EACAkhI,UAAU,CAACvI,iBAAD,CAAV;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoN,uBAAT,CAAiCjyH,IAAjC,EAAuCq5F,MAAvC,EAA+CkqB,EAA/C,EAAmDC,MAAnD,EAA2D0O,WAA3D,EAAwE;EACpE,MAAMltD,KAAK,GAAGgG,QAAQ,EAAtB;EACA,MAAM65C,iBAAiB,GAAGvB,cAAc,CAACt+C,KAAD,EAAQq0B,MAAR,EAAgBkqB,EAAhB,EAAoBC,MAApB,CAAxC;EACA0J,oBAAoB,CAACltH,IAAD,EAAO6kH,iBAAP,EAA0BqN,WAA1B,EAAuC,KAAvC,CAApB;EACA,OAAOD,uBAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,uBAAT,CAAiCnyH,IAAjC,EAAuCq5F,MAAvC,EAA+CkqB,EAA/C,EAAmD9kH,EAAnD,EAAuDilH,EAAvD,EAA2DF,MAA3D,EAAmE0O,WAAnE,EAAgF;EAC5E,MAAMltD,KAAK,GAAGgG,QAAQ,EAAtB;EACA,MAAM65C,iBAAiB,GAAGpB,cAAc,CAACz+C,KAAD,EAAQq0B,MAAR,EAAgBkqB,EAAhB,EAAoB9kH,EAApB,EAAwBilH,EAAxB,EAA4BF,MAA5B,CAAxC;EACA0J,oBAAoB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KAAuB;EAAEA;AAAF,CAAvB,CAAhB,CAArC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAGp8D,iBAAiB,CAAC,cAAD,EAAiB,CAAC72E,SAAD,EAAYjY,IAAZ,MAAsB;EAAEiY,SAAF;EAAajY;AAAb,CAAtB,CAAjB,CAAtC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,MAAMgpC,QAAQ,GAAGukD,aAAa,CAAC,UAAD,EAAcnoC,QAAD,IAAcA,QAA3B,EAAqCrtD,SAArC,EAAgDA,SAAhD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAACuW,IAAD,EAAO4gF,IAAP,KAAgB21D,eAAe,CAACv2I,IAAD,EAAO4gF,IAAP,CAZD,CAA9B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASpzF,IAAT,CAAc,GAAGkE,IAAjB,EAAuB,CACnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMmrJ,gBAAgB,GAAG,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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MAAM,CAACO,SAAD,EAAYqnC,WAAW,CAAC3nC,QAAZ,GAAuB2nC,WAAW,CAACsS,QAA/C,CAAN,IAAkE+qE,eAAe;AAFnD,CAA/B,CAAlB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM5jH,qBAAqB,GAAG,IAAIxB,cAAJ,CAAmB,qBAAnB,EAA0C;EACpE4C,UAAU,EAAE,MADwD;EAEpEynB,OAAO,EAAE,MAAM22E;AAFqD,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMukB,YAAY,GAAG,IAAIvlH,cAAJ,CAAmB,cAAnB,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMwlH,mBAAmB,GAAG,IAAIxlH,cAAJ,CAAmB,oBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIylH,0BAAJ;;AACA,CAAC,UAAUA,0BAAV,EAAsC;EACnCA,0BAA0B,CAACA,0BAA0B,CAAC,OAAD,CAA1B,GAAsC,CAAvC,CAA1B,GAAsE,OAAtE;EACAA,0BAA0B,CAACA,0BAA0B,CAAC,SAAD,CAA1B,GAAwC,CAAzC,CAA1B,GAAwE,SAAxE;EACAA,0BAA0B,CAACA,0BAA0B,CAAC,QAAD,CAA1B,GAAuC,CAAxC,CAA1B,GAAuE,QAAvE;AACH,CAJD,EAIGA,0BAA0B,KAAKA,0BAA0B,GAAG,EAAlC,CAJ7B;AAMA;A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,KAAP,CAAclF,CAAD,IAAO;QACvBi9D,MAAM,CAACC,iBAAP,CAAyB,MAAMs1D,YAAY,CAACnnB,WAAb,CAAyBrrG,CAAzB,CAA/B,EADuB,CAEvB;;QACA,MAAMA,CAAN;MACH,CAJM,CAAP;IAKH;;IACD,OAAOqC,MAAP;EACH,CAVD,CAWA,OAAOrC,CAAP,EAAU;IACNi9D,MAAM,CAACC,iBAAP,CAAyB,MAAMs1D,YAAY,CAACnnB,WAAb,CAAyBrrG,CAAzB,CAA/B,EADM,CAEN;;IACA,MAAMA,CAAN;EACH;AACJ;;AACD,SAAS85J,cAAT,CAAwBvwE,GAAxB,EAA6By2B,IAA7B,EAAmC;EAC/B,IAAI/iH,KAAK,CAAC2C,OAAN,CAAcogH,IAAd,CAAJ,EAAyB;IACrBz2B,GAAG,GAAGy2B,IAAI,CAACnxG,MAAL,CAAYirJ,cAAZ,EAA4BvwE,GAA5B,CAAN;EACH,CAFD,MAGK;IACDA,GAAG,GAAGtqF,MAAM,CAAC+5D,MAAP,CAAc/5D,MAAM,CAAC+5D,MAAP,CAAc,EAAd,EAAkBuwB,GAAlB,CAAd,EAAsCy2B,IAAtC,CAAN;EACH;;EACD,OAAOz2B,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMuvE,cAAN,CAAqB;EACjB;EACA7/J,WAAW,CAACqhK,KAAD,EAAQtgB,SAAR,EAAmBugB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AAO8I,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/Co9D,OAAO,CAAC,WAAD,CAAP,GAAuB,KAAvB;EACH;;EACDmpF,QAAQ,GAAG,KAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,gBAAT,CAA0BnkJ,EAA1B,EAA8B;EAC1B,MAAMtH,IAAI,GAAG+pF,yBAAyB,CAACziF,EAAD,CAAtC;EACA,IAAI,CAACtH,IAAL,EACI,MAAM0rJ,aAAa,CAACpkJ,EAAD,CAAnB;EACJ,OAAO,IAAI8hI,eAAJ,CAAoBppI,IAApB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2rJ,eAAT,CAAyBrkJ,EAAzB,EAA6B;EACzB,MAAMtH,IAAI,GAAG+pF,yBAAyB,CAACziF,EAAD,CAAtC;EACA,IAAI,CAACtH,IAAL,EACI,MAAM0rJ,aAAa,CAACpkJ,EAAD,CAAnB;EACJ,OAAOtH,IAAP;AACH;;AACD,SAAS0rJ,aAAT,CAAuBpkJ,EAAvB,EAA2B;EACvB,OAAO,IAAItL,KAAJ,CAAW,qBAAoBsL,EAAG,SAAlC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMs4C,iBAAN,CAAwB;AAExB;AACA;AACA;AACA;;;AACAA,iBAAiB,CAACilB,iBAAlB,GAAsC+mF,uBAAtC;AACA;;AACA,SAASA,uBAAT,CAAiC/tG,KAAjC,EAAwC;EACpC,OAAOguG,aAAa,CAACx6E,eAAe,EAAhB,EAAoBN,QAAQ,EAA5B,EAAgC,CAAClzB,KAAK,GAAG;EAAG;EAAZ,MAAmD;EAAG;EAAtF,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASguG,aAAT,CAAuBjpF,KAAvB,EAA8BmI,KAA9B,EAAqC+gF,MAArC,EAA6C;EACzC,IAAIphF,eAAe,CAAC9H,KAAD,CAAf,IAA0B,CAACkpF,MAA/B,EAAuC;IACnC;IACA;IACA,MAAMxuD,aAAa,GAAGjuB,wBAAwB,CAACzM,KAAK,CAACzrE,KAAP,EAAc4zE,KAAd,CAA9C,CAHmC,CAGiC;;IACpE,OAAO,IAAI63C,SAAJ,CAActlB,aAAd,EAA6BA,aAA7B,CAAP;EACH,CALD,MAMK,IAAI16B,KAAK,CAAC5iE,IAAN,IAAc;EAAE;EAAF,EAA6B;EAAG;EAAhC,EAA+D;EAAG;EAAhF,CAAJ,EAA0G;IAC3G;IACA;IACA,MAAM+rJ,iBAAiB,GAAGhhF,KAAK,CAACjB,0BAAD,CAA/B,CAH2G,CAG9C;;IAC7D,OAAO,IAAI84C,SAAJ,CAAcmpC,iBAAd,EAAiChhF,KAAjC,CAAP;EACH;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMihF,OAAN,SAAsBpsG,iBAAtB,CAAwC;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqsG,eAAN,SAA8BD,OAA9B,CAAsC;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIE,6BAA6B,GAAG,EAApC;AAEA;AA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I,IAAvF,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS2e,eAAT,CAAyB3e,IAAzB,EAA+B;EAC3B,MAAMltC,QAAQ,GAAG7oB,iBAAiB,CAAC;IAAEG,KAAK,EAAE;IAAE;IAAX;IAAsDj4F,IAAI,EAAE,MAA5D;IAAoEmW,IAAI,EAAE03I,IAAI,CAAC13I;EAA/E,CAAD,CAAlC;EACA,OAAOwqG,QAAQ,CAAC8rD,sBAAT,CAAgChhB,cAAhC,EAAiD,SAAQoC,IAAI,CAAC13I,IAAL,CAAU9C,IAAK,WAAxE,EAAoFw6I,IAApF,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASngG,eAAT,CAAyBgxC,SAAzB,EAAoCvuF,OAApC,EAA6C;EACzC8K,SAAS,IAAI45F,kBAAkB,CAACnW,SAAD,CAA/B;EACA,MAAM8R,YAAY,GAAGlzB,eAAe,CAACohB,SAAD,CAApC;EACA,MAAMguE,eAAe,GAAGv8J,OAAO,CAACu8J,eAAR,IAA2BnhE,eAAe,EAAlE;EACA,MAAM9xC,OAAO,GAAG,IAAIsgE,gBAAJ,CAAqBvpB,YAArB,CAAhB;EACA,OAAO/2C,OAAO,CAACv3D,MAAR,CAAewqK,eAAf,EAAgCv8J,OAAO,CAACy9C,gBAAxC,EAA0Dz9C,OAAO,CAACwuB,WAAlE,EAA+ExuB,OAAO,CAACuqH,mBAAvF,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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F,CAAD,CAAxH,EAE4B,YAAY;IAChC,OAAO,CAAC;MAAE1E,IAAI,EAAEvW,SAAR;MAAmBq0C,UAAU,EAAE,CAAC;QACxB99B,IAAI,EAAEm5B,iDADkB;QAExBznC,IAAI,EAAE,CAAC8pC,qDAAD;MAFkB,CAAD;IAA/B,CAAD,CAAP;EAIH,CAPL;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM7oB,WAAW,GAAG,OAAO7N,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASwhK,oBAAT,CAA8B9oE,aAA9B,EAA6CxjG,OAA7C,EAAsD;EAClD,OAAOmgK,4EAA0B,CAACxrK,MAAM,CAAC+5D,MAAP,CAAc;IAAE80C;EAAF,CAAd,EAAiC+oE,qBAAqB,CAACvsK,OAAD,CAAtD,CAAD,CAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwsK,iBAAT,CAA2BxsK,OAA3B,EAAoC;EAChC,OAAOmgK,4EAA0B,CAACoM,qBAAqB,CAACvsK,OAAD,CAAtB,CAAjC;AACH;;AACD,SAASusK,qBAAT,CAA+BvsK,OAA/B,EAAwC;EACpC,IAAItO,EAAJ;;EACA,OAAO;IACHi8J,YAAY,EAAE,CACV,GAAG8e,wBADO,EAEV,IAAI,CAAC/6K,EAAE,GAAGsO,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,KAAK,CAArC,GAAyC,KAAK,CAA9C,GAAkDA,OAAO,CAAC2uD,SAAhE,MAA+E,IAA/E,IAAuFj9D,EAAE,KAAK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AA6H;MAAEh7B,IAAI,EAAEwE,mDAAWq6I;IAAnB,CAA7H,EAAoJ;MAAE7+I,IAAI,EAAEvW;IAAR,CAApJ,CAAP;EAAkL,CAN5N;AAAA;;AAOA,SAAS2sM,gBAAT,CAA0B5hB,QAA1B,EAAoC;EAChC,KAAK,IAAIliL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkiL,QAAQ,CAAC1nL,MAA7B,EAAqCwF,CAAC,EAAtC,EAA0C;IACtC,MAAM+kL,GAAG,GAAG7C,QAAQ,CAACliL,CAAD,CAApB;;IACA,IAAI+kL,GAAG,IAAI,IAAX,EAAiB;MACb,MAAM,IAAI5yK,2DAAJ,CAAkB;MAAK;MAAvB,EAA+DmsL,aAAa,IAAK,+BAA8BvZ,GAAI,qBAAoB/kL,CAAE,EAAzI,CAAN;IACH;EACJ;AACJ;;AACD,SAASshM,4BAAT,CAAsCjpM,MAAtC,EAA8C;EAC1C,OAAOA,MAAM,KAAK,YAAlB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqsM,UAAN,CAAiB;EACbruM,WAAW,CAACwmM,MAAD,EAASjhB,KAAT,EAAgB+oB,iBAAhB,EAAmChsI,QAAnC,EAA6C1G,EAA7C,EAAiD;IACxD,KAAK4qI,MAAL,GAAcA,MAAd;IACA,KAAKjhB,KAAL,GAAaA,KAAb;IACA,KAAK+oB,iBAAL,GAAyBA,iBAAzB;IACA,KAAKhsI,QAAL,GAAgBA,QAAhB;IACA,KAAK1G,EAAL,GAAUA,EAAV;IACA,KAAK2yI,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAK5iB,QAAL,GAAgB,IAAhB;IACA;;IACA,KAAK6iB,SAAL,GAAiB,IAAI5uM,0CAAJ,EAAjB;IACA,KAAK6uM,0BAAL,CAAgC,GAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBtB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKkB,iBAAL,GAAyBr+B,kEAAgB,CAACm9B,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKkB,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlBnD,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAKoD,mBAAL,GAA2Bt+B,kEAAgB,CAACk7B,kBAAD,CAA3C;EACH;;EACqB,IAAlBA,kBAAkB,GAAG;IACrB,OAAO,KAAKoD,mBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACkB,IAAV/C,UAAU,CAACA,UAAD,EAAa;IACvB,KAAKgD,WAAL,GAAmBv+B,kEAAgB,CAACu7B,UAAD,CAAnC;EACH;;EACa,IAAVA,UAAU,GAAG;IACb,OAAO,KAAKgD,WAAZ;EACH;EACD;AACJ;AACA;AACA;;;EACIE,0BAA0B,CAACC,WAAD,EAAc;IACpC,IAAI,KAAKN,iBAAL,IAA0B;IAAK;IAAnC,EAAsE;MAClE;IACH;;IACD,MAAMhsI,QAAQ,GAAG,KAAKA,QAAtB;IACA,MAAM9U,aAAa,GAAG,KAAKoO,EAAL,CAAQpO,aAA9B;;IACA,IAAIohJ,WAAW,KAAK,IAApB,EAA0B;MACtBtsI,QAAQ,CAACl7C,YAAT,CAAsBomC,aAAtB,EAAqC,UAArC,EAAiDohJ,WAAjD;IACH,CAFD,MAGK;MACDtsI,QAAQ,CAAC+iC,eAAT,CAAyB73C,aAAzB,EAAwC,UAAxC;IACH;EACJ;EACD;;;EACAQ,WAAW,CAACjB,OAAD,EAAU;IACjB;IACA;IACA,KAAK2hJ,SAAL,CAAeluM,IAAf,CAAoB,IAApB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,IAAVquM,UAAU,CAAChjB,QAAD,EAAW;IACrB,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;MAClB,KAAKA,QAAL,GAAgB7nL,KAAK,CAAC2C,OAAN,CAAcklL,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAArD;MACA,KAAK8iB,0BAAL,CAAgC,GAAhC;IACH,CAHD,MAIK;MACD,KAAK9iB,QAAL,GAAgB,IAAhB;MACA,KAAK8iB,0BAAL,CAAgC,IAAhC;IACH;EACJ;EACD;;;EACAG,OAAO,GAAG;IACN,IAAI,KAAK7hB,OAAL,KAAiB,IAArB,EAA2B;MACvB,OAAO,IAAP;IACH;;IACD,MAAMkd,MAAM,GAAG;MACXiB,kBAAkB,EAAE,KAAKA,kBADd;MAEXK,UAAU,EAAE,KAAKA,UAFN;MAGXt6L,KAAK,EAAE,KAAKA;IAHD,CAAf;IAKA,KAAKq1L,MAAL,CAAYsG,aAAZ,CAA0B,KAAK7f,OAA/B,EAAwCkd,MAAxC;IACA,OAAO,IAAP;EACH;;EACU,IAAPld,OAAO,GAAG;IACV,IAAI,KAAKpB,QAAL,KAAkB,IAAtB,EAA4B;MACxB,OAAO,IAAP;IACH;;IACD,OAAO,KAAK2a,MAAL,CAAYxZ,aAAZ,CAA0B,KAAKnB,QAA/B,EAAyC;MAC5C;MACA;MACAD,UAAU,EAAE,KAAKA,UAAL,KAAoB9qL,SAApB,GAAgC,KAAK8qL,UAArC,GAAkD,KAAKrG,KAHvB;MAI5C9uI,WAAW,EAAE,KAAKA,WAJ0B;MAK5C2wI,QAAQ,EAAE,KAAKA,QAL6B;MAM5CgmB,mBAAmB,EAAE,KAAKA,mBANkB;MAO5CC,gBAAgB,EAAE,KAAKA;IAPqB,CAAzC,CAAP;EASH;;AArHY;;AAuHjBgB,UAAU,CAAC5pL,IAAX;EAAA,iBAAuG4pL,UAAvG,EA9wKgGxyL,+DA8wKhG,CAAmIitL,MAAnI,GA9wKgGjtL,+DA8wKhG,CAAsJg3K,cAAtJ,GA9wKgGh3K,+DA8wKhG,CAAiL,UAAjL,GA9wKgGA,+DA8wKhG,CAAyNA,oDAAzN,GA9wKgGA,+DA8wKhG,CAAkPA,qDAAlP;AAAA;;AACAwyL,UAAU,CAAC1gJ,IAAX,kBA/wKgG9xC,+DA+wKhG;EAAA,MAA2FwyL,UAA3F;EAAA;EAAA;IAAA;MA/wKgGxyL,wDA+wKhG;QAAA,OAA2F,aAA3F;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WA/wKgGA,kEA+wKhG;AAAA;;AACA;EAAA,mDAhxKgGA,+DAgxKhG,CAA2FwyL,UAA3F,EAAmH,CAAC;IACxGh3L,IAAI,EAAE+5B,oDADkG;IAExGroC,IAAI,EAAE,CAAC;MACC6E,QAAQ,EAAE,+BADX;MAECggD,UAAU,EAAE;IAFb,CAAD;EAFkG,CAAD,CAAnH,EAM4B,YAAY;IAChC,OAAO,CAAC;MAAEv2C,IAAI,EAAEyxL;IAAR,CAAD,EAAmB;MAAEzxL,IAAI,EAAEw7K;IAAR,CAAnB,EAA6C;MAAEx7K,IAAI,EAAEvW,SAAR;MAAmBq0C,UAAU,EAAE,CAAC;QACpE99B,IAAI,EAAEo6B,oDAD8D;QAEpE1oC,IAAI,EAAE,CAAC,UAAD;MAF8D,CAAD;IAA/B,CAA7C,EAGW;MAAEsO,IAAI,EAAEwE,oDAAYs2B;IAApB,CAHX,EAGmC;MAAE96B,IAAI,EAAEwE,qDAAau2B;IAArB,CAHnC,CAAP;EAIH,CAXL,EAWuB;IAAEqE,WAAW,EAAE,CAAC;MACvBp/B,IAAI,EAAEg6B,gDAAKA;IADY,CAAD,CAAf;IAEP+1I,QAAQ,EAAE,CAAC;MACX/vK,IAAI,EAAEg6B,gDAAKA;IADA,CAAD,CAFH;IAIP+7J,mBAAmB,EAAE,CAAC;MACtB/1L,IAAI,EAAEg6B,gDAAKA;IADW,CAAD,CAJd;IAMPlgC,KAAK,EAAE,CAAC;MACRkG,IAAI,EAAEg6B,gDAAKA;IADH,CAAD,CANA;IAQPu6I,UAAU,EAAE,CAAC;MACbv0K,IAAI,EAAEg6B,gDAAKA;IADE,CAAD,CARL;IAUPg8J,gBAAgB,EAAE,CAAC;MACnBh2L,IAAI,EAAEg6B,gDAAKA;IADQ,CAAD,CAVX;IAYP+5J,kBAAkB,EAAE,CAAC;MACrB/zL,IAAI,EAAEg6B,gDAAKA;IADU,CAAD,CAZb;IAcPo6J,UAAU,EAAE,CAAC;MACbp0L,IAAI,EAAEg6B,gDAAKA;IADE,CAAD,CAdL;IAgBPw9J,UAAU,EAAE,CAAC;MACbx3L,IAAI,EAAEg6B,gDAAKA;IADE,CAAD,CAhBL;IAkBPy9J,OAAO,EAAE,CAAC;MACVz3L,IAAI,EAAE48I,uDADI;MAEVlrJ,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD;EAlBF,CAXvB;AAAA;AAiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgmM,kBAAN,CAAyB;EACrB/uM,WAAW,CAACwmM,MAAD,EAASjhB,KAAT,EAAgB1uI,gBAAhB,EAAkC;IACzC,KAAK2vJ,MAAL,GAAcA,MAAd;IACA,KAAKjhB,KAAL,GAAaA,KAAb;IACA,KAAK1uI,gBAAL,GAAwBA,gBAAxB;IACA,KAAK03J,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAK5iB,QAAL,GAAgB,IAAhB,CAPyC,CAQzC;IACA;IACA;;IACA,KAAK53I,IAAL,GAAY,IAAZ;IACA;;IACA,KAAKy6J,SAAL,GAAiB,IAAI5uM,0CAAJ,EAAjB;IACA,KAAKQ,YAAL,GAAoBkmM,MAAM,CAAC/jB,MAAP,CAAc5gL,SAAd,CAAyBgsB,CAAD,IAAO;MAC/C,IAAIA,CAAC,YAAYwiK,aAAjB,EAAgC;QAC5B,KAAK2e,sBAAL;MACH;IACJ,CAJmB,CAApB;EAKH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhB3B,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKkB,iBAAL,GAAyBr+B,kEAAgB,CAACm9B,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKkB,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlBnD,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAKoD,mBAAL,GAA2Bt+B,kEAAgB,CAACk7B,kBAAD,CAA3C;EACH;;EACqB,IAAlBA,kBAAkB,GAAG;IACrB,OAAO,KAAKoD,mBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACkB,IAAV/C,UAAU,CAACA,UAAD,EAAa;IACvB,KAAKgD,WAAL,GAAmBv+B,kEAAgB,CAACu7B,UAAD,CAAnC;EACH;;EACa,IAAVA,UAAU,GAAG;IACb,OAAO,KAAKgD,WAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,IAAVI,UAAU,CAAChjB,QAAD,EAAW;IACrB,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;MAClB,KAAKA,QAAL,GAAgB7nL,KAAK,CAAC2C,OAAN,CAAcklL,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAArD;IACH,CAFD,MAGK;MACD,KAAKA,QAAL,GAAgB,IAAhB;IACH;EACJ;EACD;;;EACA79H,WAAW,CAACjB,OAAD,EAAU;IACjB,KAAKiiJ,sBAAL;IACA,KAAKN,SAAL,CAAeluM,IAAf,CAAoB,IAApB;EACH;EACD;;;EACA41C,WAAW,GAAG;IACV,KAAK91C,YAAL,CAAkBwC,WAAlB;EACH;EACD;;;EACAgsM,OAAO,CAACG,MAAD,EAASxyB,OAAT,EAAkBE,QAAlB,EAA4BH,MAA5B,EAAoCE,OAApC,EAA6C;IAChD,IAAIuyB,MAAM,KAAK,CAAX,IAAgBxyB,OAAhB,IAA2BE,QAA3B,IAAuCH,MAAvC,IAAiDE,OAArD,EAA8D;MAC1D,OAAO,IAAP;IACH;;IACD,IAAI,OAAO,KAAKrmJ,MAAZ,KAAuB,QAAvB,IAAmC,KAAKA,MAAL,IAAe,OAAlD,IAA6D,KAAK42J,OAAL,KAAiB,IAAlF,EAAwF;MACpF,OAAO,IAAP;IACH;;IACD,MAAMkd,MAAM,GAAG;MACXiB,kBAAkB,EAAE,KAAKA,kBADd;MAEXK,UAAU,EAAE,KAAKA,UAFN;MAGXt6L,KAAK,EAAE,KAAKA;IAHD,CAAf;IAKA,KAAKq1L,MAAL,CAAYsG,aAAZ,CAA0B,KAAK7f,OAA/B,EAAwCkd,MAAxC;IACA,OAAO,KAAP;EACH;;EACD6E,sBAAsB,GAAG;IACrB,KAAK/6J,IAAL,GAAY,KAAKg5I,OAAL,KAAiB,IAAjB,GACR,KAAKp2I,gBAAL,CAAsBR,kBAAtB,CAAyC,KAAKmwJ,MAAL,CAAY0E,YAAZ,CAAyB,KAAKje,OAA9B,CAAzC,CADQ,GAER,IAFJ;EAGH;;EACU,IAAPA,OAAO,GAAG;IACV,IAAI,KAAKpB,QAAL,KAAkB,IAAtB,EAA4B;MACxB,OAAO,IAAP;IACH;;IACD,OAAO,KAAK2a,MAAL,CAAYxZ,aAAZ,CAA0B,KAAKnB,QAA/B,EAAyC;MAC5C;MACA;MACAD,UAAU,EAAE,KAAKA,UAAL,KAAoB9qL,SAApB,GAAgC,KAAK8qL,UAArC,GAAkD,KAAKrG,KAHvB;MAI5C9uI,WAAW,EAAE,KAAKA,WAJ0B;MAK5C2wI,QAAQ,EAAE,KAAKA,QAL6B;MAM5CgmB,mBAAmB,EAAE,KAAKA,mBANkB;MAO5CC,gBAAgB,EAAE,KAAKA;IAPqB,CAAzC,CAAP;EASH;;AAnHoB;;AAqHzB0B,kBAAkB,CAACtqL,IAAnB;EAAA,iBAA+GsqL,kBAA/G,EAj7KgGlzL,+DAi7KhG,CAAmJitL,MAAnJ,GAj7KgGjtL,+DAi7KhG,CAAsKg3K,cAAtK,GAj7KgGh3K,+DAi7KhG,CAAiMwlH,8DAAjM;AAAA;;AACA0tE,kBAAkB,CAACphJ,IAAnB,kBAl7KgG9xC,+DAk7KhG;EAAA,MAAmGkzL,kBAAnG;EAAA;EAAA;EAAA;IAAA;MAl7KgGlzL,wDAk7KhG;QAAA,OAAmG,0FAAnG;MAAA;IAAA;;IAAA;MAl7KgGA,yDAk7KhG,yCAl7KgGA,2DAk7KhG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WAl7KgGA,kEAk7KhG;AAAA;;AACA;EAAA,mDAn7KgGA,+DAm7KhG,CAA2FkzL,kBAA3F,EAA2H,CAAC;IAChH13L,IAAI,EAAE+5B,oDAD0G;IAEhHroC,IAAI,EAAE,CAAC;MAAE6E,QAAQ,EAAE,gCAAZ;MAA8CggD,UAAU,EAAE;IAA1D,CAAD;EAF0G,CAAD,CAA3H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEv2C,IAAI,EAAEyxL;IAAR,CAAD,EAAmB;MAAEzxL,IAAI,EAAEw7K;IAAR,CAAnB,EAA6C;MAAEx7K,IAAI,EAAEgqH,8DAAmBzrF;IAA3B,CAA7C,CAAP;EAAqF,CAH/H,EAGiJ;IAAEvf,MAAM,EAAE,CAAC;MAC5Ihf,IAAI,EAAE08I,sDADsI;MAE5IhrJ,IAAI,EAAE,CAAC,aAAD;IAFsI,CAAD,EAG5I;MACCsO,IAAI,EAAEg6B,gDAAKA;IADZ,CAH4I,CAAV;IAKjIoF,WAAW,EAAE,CAAC;MACdp/B,IAAI,EAAEg6B,gDAAKA;IADG,CAAD,CALoH;IAOjI+1I,QAAQ,EAAE,CAAC;MACX/vK,IAAI,EAAEg6B,gDAAKA;IADA,CAAD,CAPuH;IASjI+7J,mBAAmB,EAAE,CAAC;MACtB/1L,IAAI,EAAEg6B,gDAAKA;IADW,CAAD,CAT4G;IAWjIlgC,KAAK,EAAE,CAAC;MACRkG,IAAI,EAAEg6B,gDAAKA;IADH,CAAD,CAX0H;IAajIu6I,UAAU,EAAE,CAAC;MACbv0K,IAAI,EAAEg6B,gDAAKA;IADE,CAAD,CAbqH;IAejI4C,IAAI,EAAE,CAAC;MACP58B,IAAI,EAAE08I,sDADC;MAEPhrJ,IAAI,EAAE,CAAC,WAAD;IAFC,CAAD,CAf2H;IAkBjIskM,gBAAgB,EAAE,CAAC;MACnBh2L,IAAI,EAAEg6B,gDAAKA;IADQ,CAAD,CAlB+G;IAoBjI+5J,kBAAkB,EAAE,CAAC;MACrB/zL,IAAI,EAAEg6B,gDAAKA;IADU,CAAD,CApB6G;IAsBjIo6J,UAAU,EAAE,CAAC;MACbp0L,IAAI,EAAEg6B,gDAAKA;IADE,CAAD,CAtBqH;IAwBjIw9J,UAAU,EAAE,CAAC;MACbx3L,IAAI,EAAEg6B,gDAAKA;IADE,CAAD,CAxBqH;IA0BjIy9J,OAAO,EAAE,CAAC;MACVz3L,IAAI,EAAE48I,uDADI;MAEVlrJ,IAAI,EAAE,CAAC,OAAD,EACF,CAAC,eAAD,EAAkB,gBAAlB,EAAoC,iBAApC,EAAuD,eAAvD,EAAwE,gBAAxE,CADE;IAFI,CAAD;EA1BwH,CAHjJ;AAAA;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmmM,gBAAN,CAAuB;EACnBlvM,WAAW,CAACwmM,MAAD,EAAS1mL,OAAT,EAAkBwiD,QAAlB,EAA4B6sI,GAA5B,EAAiC/vI,IAAjC,EAAuCgwI,YAAvC,EAAqD;IAC5D,KAAK5I,MAAL,GAAcA,MAAd;IACA,KAAK1mL,OAAL,GAAeA,OAAf;IACA,KAAKwiD,QAAL,GAAgBA,QAAhB;IACA,KAAK6sI,GAAL,GAAWA,GAAX;IACA,KAAK/vI,IAAL,GAAYA,IAAZ;IACA,KAAKgwI,YAAL,GAAoBA,YAApB;IACA,KAAKt8G,OAAL,GAAe,EAAf;IACA,KAAK46G,QAAL,GAAgB,KAAhB;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAK2B,uBAAL,GAA+B;MAAEC,KAAK,EAAE;IAAT,CAA/B;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKC,cAAL,GAAsB,IAAI5+J,uDAAJ,EAAtB;IACA,KAAK6+J,wBAAL,GAAgChJ,MAAM,CAAC/jB,MAAP,CAAc5gL,SAAd,CAAyBgsB,CAAD,IAAO;MAC3D,IAAIA,CAAC,YAAYwiK,aAAjB,EAAgC;QAC5B,KAAKlnH,MAAL;MACH;IACJ,CAJ+B,CAAhC;EAKH;EACD;;;EACAgkB,kBAAkB,GAAG;IACjB;IACApgF,wCAAE,CAAC,KAAKoyD,KAAL,CAAWpS,OAAZ,EAAqB,KAAK0iJ,cAAL,CAAoB1iJ,OAAzC,EAAkDhgD,wCAAE,CAAC,IAAD,CAApD,CAAF,CAA8D/J,IAA9D,CAAmEyJ,yDAAQ,EAA3E,EAA+E5K,SAA/E,CAAyF4lB,CAAC,IAAI;MAC1F,KAAK0hD,MAAL;MACA,KAAKumI,4BAAL;IACH,CAHD;EAIH;;EACDA,4BAA4B,GAAG;IAC3B,IAAI3sM,EAAJ;;IACA,CAACA,EAAE,GAAG,KAAK4sM,4BAAX,MAA6C,IAA7C,IAAqD5sM,EAAE,KAAK,KAAK,CAAjE,GAAqE,KAAK,CAA1E,GAA8EA,EAAE,CAACD,WAAH,EAA9E;IACA,MAAM8sM,cAAc,GAAG,CAAC,GAAG,KAAKzwI,KAAL,CAAWsnF,OAAX,EAAJ,EAA0B,GAAG,KAAKgpD,cAAL,CAAoBhpD,OAApB,EAA7B,EAA4D,KAAKrnF,IAAjE,EAAuE,KAAKgwI,YAA5E,EAClB9gM,MADkB,CACV8wD,IAAD,IAAU,CAAC,CAACA,IADD,EAElBhwD,GAFkB,CAEdgwD,IAAI,IAAIA,IAAI,CAACsvI,SAFC,CAAvB;IAGA,KAAKiB,4BAAL,GAAoC1rM,0CAAI,CAAC2rM,cAAD,CAAJ,CAAqB5sM,IAArB,CAA0ByJ,yDAAQ,EAAlC,EAAsC5K,SAAtC,CAAgDu9D,IAAI,IAAI;MACxF,IAAI,KAAKsuI,QAAL,KAAkB,KAAKmC,YAAL,CAAkB,KAAKrJ,MAAvB,EAA+BpnI,IAA/B,CAAtB,EAA4D;QACxD,KAAK+J,MAAL;MACH;IACJ,CAJmC,CAApC;EAKH;;EACmB,IAAhB2mI,gBAAgB,CAACtuL,IAAD,EAAO;IACvB,MAAMsxE,OAAO,GAAG9uF,KAAK,CAAC2C,OAAN,CAAc6a,IAAd,IAAsBA,IAAtB,GAA6BA,IAAI,CAACyJ,KAAL,CAAW,GAAX,CAA7C;IACA,KAAK6nE,OAAL,GAAeA,OAAO,CAACxkF,MAAR,CAAeslJ,CAAC,IAAI,CAAC,CAACA,CAAtB,CAAf;EACH;EACD;;;EACA5lG,WAAW,CAACjB,OAAD,EAAU;IACjB,KAAKoc,MAAL;EACH;EACD;;;EACA/yB,WAAW,GAAG;IACV,IAAIrzC,EAAJ;;IACA,KAAKysM,wBAAL,CAA8B1sM,WAA9B;IACA,CAACC,EAAE,GAAG,KAAK4sM,4BAAX,MAA6C,IAA7C,IAAqD5sM,EAAE,KAAK,KAAK,CAAjE,GAAqE,KAAK,CAA1E,GAA8EA,EAAE,CAACD,WAAH,EAA9E;EACH;;EACDqmE,MAAM,GAAG;IACL,IAAI,CAAC,KAAKhK,KAAN,IAAe,CAAC,KAAKswI,cAArB,IAAuC,CAAC,KAAKjJ,MAAL,CAAY6C,SAAxD,EACI;IACJhmM,OAAO,CAACT,OAAR,GAAkBiJ,IAAlB,CAAuB,MAAM;MACzB,MAAMkkM,cAAc,GAAG,KAAKA,cAAL,EAAvB;;MACA,IAAI,KAAKrC,QAAL,KAAkBqC,cAAtB,EAAsC;QAClC,KAAKrC,QAAL,GAAgBqC,cAAhB;QACA,KAAKZ,GAAL,CAASn4I,YAAT;QACA,KAAK87B,OAAL,CAAarwF,OAAb,CAAsBmxJ,CAAD,IAAO;UACxB,IAAIm8C,cAAJ,EAAoB;YAChB,KAAKztI,QAAL,CAAcniC,QAAd,CAAuB,KAAKrgB,OAAL,CAAa0tC,aAApC,EAAmDomG,CAAnD;UACH,CAFD,MAGK;YACD,KAAKtxF,QAAL,CAAcnhC,WAAd,CAA0B,KAAKrhB,OAAL,CAAa0tC,aAAvC,EAAsDomG,CAAtD;UACH;QACJ,CAPD;;QAQA,IAAIm8C,cAAc,IAAI,KAAKC,qBAAL,KAA+BlvM,SAArD,EAAgE;UAC5D,KAAKwhE,QAAL,CAAcl7C,YAAd,CAA2B,KAAKtH,OAAL,CAAa0tC,aAAxC,EAAuD,cAAvD,EAAuE,KAAKwiJ,qBAAL,CAA2Br7L,QAA3B,EAAvE;QACH,CAFD,MAGK;UACD,KAAK2tD,QAAL,CAAc+iC,eAAd,CAA8B,KAAKvlF,OAAL,CAAa0tC,aAA3C,EAA0D,cAA1D;QACH,CAhBiC,CAiBlC;;;QACA,KAAK+hJ,cAAL,CAAoBn4J,IAApB,CAAyB24J,cAAzB;MACH;IACJ,CAtBD;EAuBH;;EACDF,YAAY,CAACrJ,MAAD,EAAS;IACjB,MAAMn1L,OAAO,GAAG4+L,oBAAoB,CAAC,KAAKZ,uBAAN,CAApB,GACZ,KAAKA,uBADO,GAEZ;IACC,KAAKA,uBAAL,CAA6BC,KAA7B,IAAsC,KAH3C;IAIA,OAAQlwI,IAAD,IAAUA,IAAI,CAAC6tH,OAAL,GAAeuZ,MAAM,CAACkH,QAAP,CAAgBtuI,IAAI,CAAC6tH,OAArB,EAA8B57K,OAA9B,CAAf,GAAwD,KAAzE;EACH;;EACD0+L,cAAc,GAAG;IACb,MAAMG,eAAe,GAAG,KAAKL,YAAL,CAAkB,KAAKrJ,MAAvB,CAAxB;IACA,OAAO,KAAKpnI,IAAL,IAAa8wI,eAAe,CAAC,KAAK9wI,IAAN,CAA5B,IACH,KAAKgwI,YAAL,IAAqBc,eAAe,CAAC,KAAKd,YAAN,CADjC,IAEH,KAAKjwI,KAAL,CAAWruC,IAAX,CAAgBo/K,eAAhB,CAFG,IAEiC,KAAKT,cAAL,CAAoB3+K,IAApB,CAAyBo/K,eAAzB,CAFxC;EAGH;;AAlHkB;;AAoHvBhB,gBAAgB,CAACzqL,IAAjB;EAAA,iBAA6GyqL,gBAA7G,EAtpLgGrzL,+DAspLhG,CAA+IitL,MAA/I,GAtpLgGjtL,+DAspLhG,CAAkKA,qDAAlK,GAtpLgGA,+DAspLhG,CAA4LA,oDAA5L,GAtpLgGA,+DAspLhG,CAAqNA,4DAArN,GAtpLgGA,+DAspLhG,CAAsPwyL,UAAtP,MAtpLgGxyL,+DAspLhG,CAA6RkzL,kBAA7R;AAAA;;AACAG,gBAAgB,CAACvhJ,IAAjB,kBAvpLgG9xC,+DAupLhG;EAAA,MAAiGqzL,gBAAjG;EAAA;EAAA;IAAA;MAvpLgGrzL,4DAupLhG,WAA0ZwyL,UAA1Z;MAvpLgGxyL,4DAupLhG,WAAwekzL,kBAAxe;IAAA;;IAAA;MAAA;;MAvpLgGlzL,4DAupLhG,MAvpLgGA,yDAupLhG;MAvpLgGA,4DAupLhG,MAvpLgGA,yDAupLhG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA;EAAA,WAvpLgGA,kEAupLhG;AAAA;;AACA;EAAA,mDAxpLgGA,+DAwpLhG,CAA2FqzL,gBAA3F,EAAyH,CAAC;IAC9G73L,IAAI,EAAE+5B,oDADwG;IAE9GroC,IAAI,EAAE,CAAC;MACC6E,QAAQ,EAAE,oBADX;MAECqvE,QAAQ,EAAE,kBAFX;MAGCrvB,UAAU,EAAE;IAHb,CAAD;EAFwG,CAAD,CAAzH,EAO4B,YAAY;IAChC,OAAO,CAAC;MAAEv2C,IAAI,EAAEyxL;IAAR,CAAD,EAAmB;MAAEzxL,IAAI,EAAEwE,qDAAau2B;IAArB,CAAnB,EAA4C;MAAE/6B,IAAI,EAAEwE,oDAAYs2B;IAApB,CAA5C,EAAoE;MAAE96B,IAAI,EAAEwE,4DAAoBo7C;IAA5B,CAApE,EAAoG;MAAE5/C,IAAI,EAAEg3L,UAAR;MAAoBl5J,UAAU,EAAE,CAAC;QAC5H99B,IAAI,EAAEq5B,mDAAQA;MAD8G,CAAD;IAAhC,CAApG,EAEW;MAAEr5B,IAAI,EAAE03L,kBAAR;MAA4B55J,UAAU,EAAE,CAAC;QAC3C99B,IAAI,EAAEq5B,mDAAQA;MAD6B,CAAD;IAAxC,CAFX,CAAP;EAKH,CAbL,EAauB;IAAEyuB,KAAK,EAAE,CAAC;MACjB9nD,IAAI,EAAEkhF,0DADW;MAEjBxvF,IAAI,EAAE,CAACslM,UAAD,EAAa;QAAE51G,WAAW,EAAE;MAAf,CAAb;IAFW,CAAD,CAAT;IAGPg3G,cAAc,EAAE,CAAC;MACjBp4L,IAAI,EAAEkhF,0DADW;MAEjBxvF,IAAI,EAAE,CAACgmM,kBAAD,EAAqB;QAAEt2G,WAAW,EAAE;MAAf,CAArB;IAFW,CAAD,CAHT;IAMP42G,uBAAuB,EAAE,CAAC;MAC1Bh4L,IAAI,EAAEg6B,gDAAKA;IADe,CAAD,CANlB;IAQP2+J,qBAAqB,EAAE,CAAC;MACxB34L,IAAI,EAAEg6B,gDAAKA;IADa,CAAD,CARhB;IAUPk+J,cAAc,EAAE,CAAC;MACjBl4L,IAAI,EAAEy8I,iDAAMA;IADK,CAAD,CAVT;IAYPg8C,gBAAgB,EAAE,CAAC;MACnBz4L,IAAI,EAAEg6B,gDAAKA;IADQ,CAAD;EAZX,CAbvB;AAAA;AA4BA;AACA;AACA;;;AACA,SAAS4+J,oBAAT,CAA8B5+L,OAA9B,EAAuC;EACnC,OAAO,CAAC,CAACA,OAAO,CAAC61K,KAAjB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMipB,kBAAN,CAAyB;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,iBAAN,CAAwB;EACpBC,OAAO,CAAC9qB,KAAD,EAAQ9/K,EAAR,EAAY;IACf,OAAOA,EAAE,GAAGzC,IAAL,CAAU2K,2DAAU,CAAC,MAAMZ,wCAAE,CAAC,IAAD,CAAT,CAApB,CAAP;EACH;;AAHmB;;AAKxBqjM,iBAAiB,CAAC3rL,IAAlB;EAAA,iBAA8G2rL,iBAA9G;AAAA;;AACAA,iBAAiB,CAAC1rL,KAAlB,kBA5tLgG7I,gEA4tLhG;EAAA,OAAkHu0L,iBAAlH;EAAA,SAAkHA,iBAAlH;EAAA,YAAiJ;AAAjJ;;AACA;EAAA,mDA7tLgGv0L,+DA6tLhG,CAA2Fu0L,iBAA3F,EAA0H,CAAC;IAC/G/4L,IAAI,EAAE0E,qDADyG;IAE/GhT,IAAI,EAAE,CAAC;MAAEmqC,UAAU,EAAE;IAAd,CAAD;EAFyG,CAAD,CAA1H;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo9J,YAAN,CAAmB;EACfD,OAAO,CAAC9qB,KAAD,EAAQ9/K,EAAR,EAAY;IACf,OAAOsH,wCAAE,CAAC,IAAD,CAAT;EACH;;AAHc;;AAKnBujM,YAAY,CAAC7rL,IAAb;EAAA,iBAAyG6rL,YAAzG;AAAA;;AACAA,YAAY,CAAC5rL,KAAb,kBAhvLgG7I,gEAgvLhG;EAAA,OAA6Gy0L,YAA7G;EAAA,SAA6GA,YAA7G;EAAA,YAAuI;AAAvI;;AACA;EAAA,mDAjvLgGz0L,+DAivLhG,CAA2Fy0L,YAA3F,EAAqH,CAAC;IAC1Gj5L,IAAI,EAAE0E,qDADoG;IAE1GhT,IAAI,EAAE,CAAC;MAAEmqC,UAAU,EAAE;IAAd,CAAD;EAFoG,CAAD,CAArH;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMq9J,eAAN,CAAsB;EAClBvwM,WAAW,CAACwmM,MAAD,EAAS3kF,QAAT,EAAmBtzD,QAAnB,EAA6BiiJ,kBAA7B,EAAiDv5F,MAAjD,EAAyD;IAChE,KAAKuvF,MAAL,GAAcA,MAAd;IACA,KAAKj4I,QAAL,GAAgBA,QAAhB;IACA,KAAKiiJ,kBAAL,GAA0BA,kBAA1B;IACA,KAAKv5F,MAAL,GAAcA,MAAd;EACH;;EACDw5F,eAAe,GAAG;IACd,KAAKnwM,YAAL,GACI,KAAKkmM,MAAL,CAAY/jB,MAAZ,CACKz/K,IADL,CACUsL,uDAAM,CAAEvH,CAAD,IAAOA,CAAC,YAAYspL,aAArB,CADhB,EACqDpiL,0DAAS,CAAC,MAAM,KAAKoiM,OAAL,EAAP,CAD9D,EAEKxuM,SAFL,CAEe,MAAM,CAAG,CAFxB,CADJ;EAIH;;EACDwuM,OAAO,GAAG;IACN,OAAO,KAAKK,aAAL,CAAmB,KAAKniJ,QAAxB,EAAkC,KAAKi4I,MAAL,CAAY/kM,MAA9C,CAAP;EACH;EACD;;;EACA20C,WAAW,GAAG;IACV,IAAI,KAAK91C,YAAT,EAAuB;MACnB,KAAKA,YAAL,CAAkBwC,WAAlB;IACH;EACJ;;EACD4tM,aAAa,CAACniJ,QAAD,EAAWuqI,MAAX,EAAmB;IAC5B,IAAI/1L,EAAJ,EAAQ4B,EAAR,EAAYqxC,EAAZ;;IACA,MAAM4E,GAAG,GAAG,EAAZ;;IACA,KAAK,MAAM2qI,KAAX,IAAoBuT,MAApB,EAA4B;MACxB,IAAIvT,KAAK,CAACvlH,SAAN,IAAmB,CAACulH,KAAK,CAACxkC,SAA9B,EAAyC;QACrCwkC,KAAK,CAACxkC,SAAN,GACIH,wEAAyB,CAAC2kC,KAAK,CAACvlH,SAAP,EAAkBzR,QAAlB,EAA6B,UAASg3H,KAAK,CAAChvI,IAAK,EAAjD,CAD7B;MAEH;;MACD,MAAMo6J,uBAAuB,GAAG,CAAC5tM,EAAE,GAAGwiL,KAAK,CAACxkC,SAAZ,MAA2B,IAA3B,IAAmCh+I,EAAE,KAAK,KAAK,CAA/C,GAAmDA,EAAnD,GAAwDwrD,QAAxF;MACA,MAAMqiJ,mBAAmB,GAAG,CAACjsM,EAAE,GAAG4gL,KAAK,CAACqS,eAAZ,MAAiC,IAAjC,IAAyCjzL,EAAE,KAAK,KAAK,CAArD,GAAyDA,EAAzD,GAA8DgsM,uBAA1F,CANwB,CAOxB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MACA,IAAKprB,KAAK,CAACiT,YAAN,IAAsB,CAACjT,KAAK,CAACmS,aAA7B,IAA8CnS,KAAK,CAACwW,OAAN,KAAkBj7L,SAAjE,IACCykL,KAAK,CAACgT,aAAN,IAAuB,CAAChT,KAAK,CAACuS,gBADnC,EACsD;QAClDl9I,GAAG,CAACp2C,IAAJ,CAAS,KAAKqsM,aAAL,CAAmBF,uBAAnB,EAA4CprB,KAA5C,CAAT;MACH,CAHD,MAIK,IAAIA,KAAK,CAAC91D,QAAN,IAAkB81D,KAAK,CAACmS,aAA5B,EAA2C;QAC5C98I,GAAG,CAACp2C,IAAJ,CAAS,KAAKksM,aAAL,CAAmBE,mBAAnB,EAAyC,CAAC56J,EAAE,GAAGuvI,KAAK,CAAC91D,QAAZ,MAA0B,IAA1B,IAAkCz5E,EAAE,KAAK,KAAK,CAA9C,GAAkDA,EAAlD,GAAuDuvI,KAAK,CAACmS,aAAtG,CAAT;MACH;IACJ;;IACD,OAAOzzL,0CAAI,CAAC22C,GAAD,CAAJ,CAAU53C,IAAV,CAAeyJ,yDAAQ,EAAvB,CAAP;EACH;;EACDokM,aAAa,CAACtiJ,QAAD,EAAWg3H,KAAX,EAAkB;IAC3B,OAAO,KAAKirB,kBAAL,CAAwBH,OAAxB,CAAgC9qB,KAAhC,EAAuC,MAAM;MAChD,IAAIurB,eAAJ;;MACA,IAAIvrB,KAAK,CAACiT,YAAN,IAAsBjT,KAAK,CAACwW,OAAN,KAAkBj7L,SAA5C,EAAuD;QACnDgwM,eAAe,GAAG,KAAK75F,MAAL,CAAYuhF,YAAZ,CAAyBjqI,QAAzB,EAAmCg3H,KAAnC,CAAlB;MACH,CAFD,MAGK;QACDurB,eAAe,GAAG/jM,wCAAE,CAAC,IAAD,CAApB;MACH;;MACD,MAAMgkM,sBAAsB,GAAGD,eAAe,CAAC9tM,IAAhB,CAAqBgL,yDAAQ,CAAEvM,MAAD,IAAY;QACrE,IAAIsB,EAAJ;;QACA,IAAItB,MAAM,KAAK,IAAf,EAAqB;UACjB,OAAOsL,wCAAE,CAAC,KAAK,CAAN,CAAT;QACH;;QACDw4K,KAAK,CAACmS,aAAN,GAAsBj2L,MAAM,CAACq3L,MAA7B;QACAvT,KAAK,CAACqS,eAAN,GAAwBn2L,MAAM,CAAC8sD,QAA/B,CANqE,CAOrE;QACA;;QACA,OAAO,KAAKmiJ,aAAL,CAAmB,CAAC3tM,EAAE,GAAGtB,MAAM,CAAC8sD,QAAb,MAA2B,IAA3B,IAAmCxrD,EAAE,KAAK,KAAK,CAA/C,GAAmDA,EAAnD,GAAwDwrD,QAA3E,EAAqF9sD,MAAM,CAACq3L,MAA5F,CAAP;MACH,CAV2D,CAA7B,CAA/B;;MAWA,IAAIvT,KAAK,CAACgT,aAAN,IAAuB,CAAChT,KAAK,CAACuS,gBAAlC,EAAoD;QAChD,MAAMkZ,cAAc,GAAG,KAAK/5F,MAAL,CAAYshF,aAAZ,CAA0BhT,KAA1B,CAAvB;QACA,OAAOthL,0CAAI,CAAC,CAAC8sM,sBAAD,EAAyBC,cAAzB,CAAD,CAAJ,CAA+ChuM,IAA/C,CAAoDyJ,yDAAQ,EAA5D,CAAP;MACH,CAHD,MAIK;QACD,OAAOskM,sBAAP;MACH;IACJ,CA1BM,CAAP;EA2BH;;AA9EiB;;AAgFtBR,eAAe,CAAC9rL,IAAhB;EAAA,iBAA4G8rL,eAA5G,EAj1LgG10L,sDAi1LhG,CAA6IitL,MAA7I,GAj1LgGjtL,sDAi1LhG,CAAgKA,mDAAhK,GAj1LgGA,sDAi1LhG,CAAwLA,8DAAxL,GAj1LgGA,sDAi1LhG,CAA2Ns0L,kBAA3N,GAj1LgGt0L,sDAi1LhG,CAA0PorL,kBAA1P;AAAA;;AACAsJ,eAAe,CAAC7rL,KAAhB,kBAl1LgG7I,gEAk1LhG;EAAA,OAAgH00L,eAAhH;EAAA,SAAgHA,eAAhH;EAAA,YAA6I;AAA7I;;AACA;EAAA,mDAn1LgG10L,+DAm1LhG,CAA2F00L,eAA3F,EAAwH,CAAC;IAC7Gl5L,IAAI,EAAE0E,qDADuG;IAE7GhT,IAAI,EAAE,CAAC;MAAEmqC,UAAU,EAAE;IAAd,CAAD;EAFuG,CAAD,CAAxH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE77B,IAAI,EAAEyxL;IAAR,CAAD,EAAmB;MAAEzxL,IAAI,EAAEwE,mDAAWq6I;IAAnB,CAAnB,EAA0C;MAAE7+I,IAAI,EAAEwE,8DAAsB6wF;IAA9B,CAA1C,EAA4E;MAAEr1F,IAAI,EAAE84L;IAAR,CAA5E,EAA0G;MAAE94L,IAAI,EAAE4vL;IAAR,CAA1G,CAAP;EAAiJ,CAH3L;AAAA;;AAKA,MAAMgK,eAAe,GAAG,IAAI3gK,yDAAJ,CAAmB,EAAnB,CAAxB;;AACA,MAAM4gK,cAAN,CAAqB;EACjBlxM,WAAW,CAACwmM,MAAD;EACX;EAAwB2K,gBADb,EAC+B9/L,OAAO,GAAG,EADzC,EAC6C;IACpD,KAAKm1L,MAAL,GAAcA,MAAd;IACA,KAAK2K,gBAAL,GAAwBA,gBAAxB;IACA,KAAK9/L,OAAL,GAAeA,OAAf;IACA,KAAK+/L,MAAL,GAAc,CAAd;IACA,KAAKC,UAAL,GAAkB,YAAlB;IACA,KAAKC,UAAL,GAAkB,CAAlB;IACA,KAAK/rH,KAAL,GAAa,EAAb,CAPoD,CAQpD;;IACAl0E,OAAO,CAACkgM,yBAAR,GAAoClgM,OAAO,CAACkgM,yBAAR,IAAqC,UAAzE;IACAlgM,OAAO,CAACmgM,eAAR,GAA0BngM,OAAO,CAACmgM,eAAR,IAA2B,UAArD;EACH;;EACDrkM,IAAI,GAAG;IACH;IACA;IACA;IACA,IAAI,KAAKkE,OAAL,CAAakgM,yBAAb,KAA2C,UAA/C,EAA2D;MACvD,KAAKJ,gBAAL,CAAsB11I,2BAAtB,CAAkD,QAAlD;IACH;;IACD,KAAK+zI,wBAAL,GAAgC,KAAKiC,kBAAL,EAAhC;IACA,KAAKC,wBAAL,GAAgC,KAAKC,mBAAL,EAAhC;EACH;;EACDF,kBAAkB,GAAG;IACjB,OAAO,KAAKjL,MAAL,CAAY/jB,MAAZ,CAAmB5gL,SAAnB,CAA6BkF,CAAC,IAAI;MACrC,IAAIA,CAAC,YAAYmpL,eAAjB,EAAkC;QAC9B;QACA,KAAK3qG,KAAL,CAAW,KAAK6rH,MAAhB,IAA0B,KAAKD,gBAAL,CAAsBr2I,iBAAtB,EAA1B;QACA,KAAKu2I,UAAL,GAAkBtqM,CAAC,CAACopL,iBAApB;QACA,KAAKmhB,UAAL,GAAkBvqM,CAAC,CAACqpL,aAAF,GAAkBrpL,CAAC,CAACqpL,aAAF,CAAgB8Y,YAAlC,GAAiD,CAAnE;MACH,CALD,MAMK,IAAIniM,CAAC,YAAYspL,aAAjB,EAAgC;QACjC,KAAK+gB,MAAL,GAAcrqM,CAAC,CAAC4X,EAAhB;QACA,KAAKizL,mBAAL,CAAyB7qM,CAAzB,EAA4B,KAAKy/L,MAAL,CAAYyG,QAAZ,CAAqBlmM,CAAC,CAACupL,iBAAvB,EAA0ClJ,QAAtE;MACH;IACJ,CAXM,CAAP;EAYH;;EACDuqB,mBAAmB,GAAG;IAClB,OAAO,KAAKnL,MAAL,CAAY/jB,MAAZ,CAAmB5gL,SAAnB,CAA6BkF,CAAC,IAAI;MACrC,IAAI,EAAEA,CAAC,YAAYwqL,MAAf,CAAJ,EACI,OAFiC,CAGrC;;MACA,IAAIxqL,CAAC,CAACoT,QAAN,EAAgB;QACZ,IAAI,KAAK9I,OAAL,CAAakgM,yBAAb,KAA2C,KAA/C,EAAsD;UAClD,KAAKJ,gBAAL,CAAsBj2I,gBAAtB,CAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC;QACH,CAFD,MAGK,IAAI,KAAK7pD,OAAL,CAAakgM,yBAAb,KAA2C,SAA/C,EAA0D;UAC3D,KAAKJ,gBAAL,CAAsBj2I,gBAAtB,CAAuCn0D,CAAC,CAACoT,QAAzC;QACH,CANW,CAOZ;;MACH,CARD,MASK;QACD,IAAIpT,CAAC,CAACm2D,MAAF,IAAY,KAAK7rD,OAAL,CAAamgM,eAAb,KAAiC,SAAjD,EAA4D;UACxD,KAAKL,gBAAL,CAAsB/1I,cAAtB,CAAqCr0D,CAAC,CAACm2D,MAAvC;QACH,CAFD,MAGK,IAAI,KAAK7rD,OAAL,CAAakgM,yBAAb,KAA2C,UAA/C,EAA2D;UAC5D,KAAKJ,gBAAL,CAAsBj2I,gBAAtB,CAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC;QACH;MACJ;IACJ,CArBM,CAAP;EAsBH;;EACD02I,mBAAmB,CAACpgB,WAAD,EAAct0H,MAAd,EAAsB;IACrC,KAAKspI,MAAL,CAAYiD,YAAZ,CAAyB,IAAIlY,MAAJ,CAAWC,WAAX,EAAwB,KAAK6f,UAAL,KAAoB,UAApB,GAAiC,KAAK9rH,KAAL,CAAW,KAAK+rH,UAAhB,CAAjC,GAA+D,IAAvF,EAA6Fp0I,MAA7F,CAAzB;EACH;EACD;;;EACA9mB,WAAW,GAAG;IACV,IAAI,KAAKo5J,wBAAT,EAAmC;MAC/B,KAAKA,wBAAL,CAA8B1sM,WAA9B;IACH;;IACD,IAAI,KAAK4uM,wBAAT,EAAmC;MAC/B,KAAKA,wBAAL,CAA8B5uM,WAA9B;IACH;EACJ;;AAzEgB;;AA2ErBouM,cAAc,CAACzsL,IAAf;EAp6LgG5I,8DAo6LhG;AAAA;;AACAq1L,cAAc,CAACxsL,KAAf,kBAr6LgG7I,gEAq6LhG;EAAA,OAA+Gq1L,cAA/G;EAAA,SAA+GA,cAA/G;AAAA;;AACA;EAAA,mDAt6LgGr1L,+DAs6LhG,CAA2Fq1L,cAA3F,EAAuH,CAAC;IAC5G75L,IAAI,EAAE0E,qDAAUA;EAD4F,CAAD,CAAvH,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAE1E,IAAI,EAAEyxL;IAAR,CAAD,EAAmB;MAAEzxL,IAAI,EAAEgqH,8DAAmB3mE;IAA3B,CAAnB,EAAkD;MAAErjD,IAAI,EAAEvW;IAAR,CAAlD,CAAP;EAAgF,CAF1H;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMm5K,aAAa,GAAG,OAAO99J,SAAP,KAAqB,WAArB,IAAoCA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS01L,aAAT,CAAuB/Y,MAAvB,EAA+B,GAAGn7G,QAAlC,EAA4C;EACxC,OAAO,CACHm0H,aAAa,CAAChZ,MAAD,CADV,EACoB;IAAE74H,OAAO,EAAE4yH,cAAX;IAA2B1/I,UAAU,EAAE4+J,SAAvC;IAAkDtnJ,IAAI,EAAE,CAACq+I,MAAD;EAAxD,CADpB,EAEH;IAAE7oI,OAAO,EAAEm1F,iEAAX;IAAmCjzI,KAAK,EAAE,IAA1C;IAAgDgxB,UAAU,EAAE6+J;EAA5D,CAFG,EAGHr0H,QAAQ,CAACvuE,GAAT,CAAa4uE,OAAO,IAAIA,OAAO,CAACzI,UAAhC,CAHG,CAIH;EACA;EACA;EACA;EAPG,CAAP;AASH;;AACD,SAASw8H,SAAT,CAAmBvL,MAAnB,EAA2B;EACvB,OAAOA,MAAM,CAACuD,WAAP,CAAmB/iK,IAA1B;AACH;AACD;AACA;AACA;;;AACA,SAASirK,aAAT,CAAuB/wM,IAAvB,EAA6B8+D,SAA7B,EAAwC;EACpC,OAAO;IAAEkyI,KAAK,EAAEhxM,IAAT;IAAeq0E,UAAU,EAAEvV;EAA3B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8xI,aAAT,CAAuBhZ,MAAvB,EAA+B;EAC3B,OAAO,CACH;IAAE74H,OAAO,EAAE+mI,MAAX;IAAmB7kL,KAAK,EAAE,IAA1B;IAAgC+9C,QAAQ,EAAE44H;EAA1C,CADG,CAAP;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqZ,qBAAT,CAA+B9gM,OAAO,GAAG,EAAzC,EAA6C;EACzC,MAAM2uD,SAAS,GAAG,CAAC;IACXC,OAAO,EAAEgxI,eADE;IAEX99J,UAAU,EAAE,MAAM;MACd,MAAMqzJ,MAAM,GAAG/1J,qDAAM,CAACq4J,MAAD,CAArB;MACA,MAAMqI,gBAAgB,GAAG1gK,qDAAM,CAACiqB,8DAAD,CAA/B;MACA,OAAO,IAAIw2I,cAAJ,CAAmB1K,MAAnB,EAA2B2K,gBAA3B,EAA6C9/L,OAA7C,CAAP;IACH;EANU,CAAD,CAAlB;EAQA,OAAO4gM,aAAa,CAAC;EAAE;EAAH,EAAqDjyI,SAArD,CAApB;AACH;;AACD,SAASgyI,oBAAT,GAAgC;EAC5B,MAAMzjJ,QAAQ,GAAG9d,qDAAM,CAAC4B,mDAAD,CAAvB;EACA,OAAQ+/J,wBAAD,IAA8B;IACjC,IAAIrvM,EAAJ,EAAQ4B,EAAR;;IACA,MAAM2xD,GAAG,GAAG/H,QAAQ,CAACjuC,GAAT,CAAau/I,yDAAb,CAAZ;;IACA,IAAIuyC,wBAAwB,KAAK97I,GAAG,CAACm+C,UAAJ,CAAe,CAAf,CAAjC,EAAoD;MAChD;IACH;;IACD,MAAM+xF,MAAM,GAAGj4I,QAAQ,CAACjuC,GAAT,CAAawoL,MAAb,CAAf;IACA,MAAMuJ,aAAa,GAAG9jJ,QAAQ,CAACjuC,GAAT,CAAagyL,cAAb,CAAtB;;IACA,IAAI/jJ,QAAQ,CAACjuC,GAAT,CAAaiyL,kBAAb,MAAqC;IAAE;IAA3C,EAAuF;MACnF/L,MAAM,CAACoG,iBAAP;IACH;;IACD,CAAC7pM,EAAE,GAAGwrD,QAAQ,CAACjuC,GAAT,CAAakyL,gBAAb,EAA+B,IAA/B,EAAqCn6H,+DAArC,CAAN,MAAsE,IAAtE,IAA8Et1E,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAAC0tM,eAAH,EAAvG;IACA,CAAC9rM,EAAE,GAAG4pD,QAAQ,CAACjuC,GAAT,CAAa2wL,eAAb,EAA8B,IAA9B,EAAoC54H,+DAApC,CAAN,MAAqE,IAArE,IAA6E1zE,EAAE,KAAK,KAAK,CAAzF,GAA6F,KAAK,CAAlG,GAAsGA,EAAE,CAACwI,IAAH,EAAtG;IACAq5L,MAAM,CAACkG,sBAAP,CAA8Bp2I,GAAG,CAACqrG,cAAJ,CAAmB,CAAnB,CAA9B;IACA0wC,aAAa,CAAC7xM,IAAd;IACA6xM,aAAa,CAACnwM,QAAd;EACH,CAhBD;AAiBH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAMowM,cAAc,GAAG,IAAIhiK,yDAAJ,CAAmB2pI,aAAa,GAAG,0BAAH,GAAgC,EAAhE,EAAoE;EACvFt/G,OAAO,EAAE,MAAM;IACX,OAAO,IAAI76D,0CAAJ,EAAP;EACH;AAHsF,CAApE,CAAvB;AAKA,MAAMyyM,kBAAkB,GAAG,IAAIjiK,yDAAJ,CAAmB2pI,aAAa,GAAG,oBAAH,GAA0B,EAA1D,EAA8D;EAAE/mI,UAAU,EAAE,MAAd;EAAsBynB,OAAO,EAAE,MAAM;EAAE;;AAAvC,CAA9D,CAA3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS83I,oCAAT,GAAgD;EAC5C,MAAMzyI,SAAS,GAAG,CACd;IAAEC,OAAO,EAAEsyI,kBAAX;IAA+BryI,QAAQ,EAAE;IAAE;;EAA3C,CADc,EAEd;IACID,OAAO,EAAEk0F,0DADb;IAEIhyI,KAAK,EAAE,IAFX;IAGIsoC,IAAI,EAAE,CAACpY,mDAAD,CAHV;IAIIc,UAAU,EAAGob,QAAD,IAAc;MACtB,MAAMmkJ,mBAAmB,GAAGnkJ,QAAQ,CAACjuC,GAAT,CAAa+yB,kEAAb,EAAmChwC,OAAO,CAACT,OAAR,EAAnC,CAA5B;MACA,IAAI+vM,cAAc,GAAG,KAArB;MACA;AAChB;AACA;AACA;AACA;AACA;;MACgB,SAASC,mBAAT,CAA6B9wL,MAA7B,EAAqC;QACjC,MAAM0kL,MAAM,GAAGj4I,QAAQ,CAACjuC,GAAT,CAAawoL,MAAb,CAAf;QACAtC,MAAM,CAAC/jB,MAAP,CACKz/K,IADL,CACUsL,uDAAM,CAAEvH,CAAD,IAAOA,CAAC,YAAYspL,aAAb,IAA8BtpL,CAAC,YAAYwpL,gBAA3C,IACpBxpL,CAAC,YAAY0pL,eADD,CADhB,EAEmCrhL,mDAAG,CAACrI,CAAC,IAAI;UACxC,IAAIA,CAAC,YAAYspL,aAAjB,EAAgC;YAC5B;YACA,OAAO,IAAP;UACH;;UACD,MAAMwiB,WAAW,GAAG9rM,CAAC,YAAYwpL,gBAAb,GACfxpL,CAAC,CAAC41C,IAAF,KAAW;UAAE;UAAb,GACG51C,CAAC,CAAC41C,IAAF,KAAW;UAAE;UAFD,EAGhB,KAHJ;UAIA,OAAOk2J,WAAW,GAAG,IAAH,GAAU,KAA5B;QACH,CAVqC,CAFtC,EAYIvkM,uDAAM,CAAElF,MAAD,IAAYA,MAAM,KAAK,IAAxB,CAZV,EAYyCwF,oDAAI,CAAC,CAAD,CAZ7C,EAaK/M,SAbL,CAae,MAAM;UACjBigB,MAAM;QACT,CAfD;MAgBH;;MACD,OAAO,MAAM;QACT,OAAO4wL,mBAAmB,CAAC7mM,IAApB,CAAyB,MAAM;UAClC,OAAO,IAAIxI,OAAJ,CAAYT,OAAO,IAAI;YAC1B,MAAM4jM,MAAM,GAAGj4I,QAAQ,CAACjuC,GAAT,CAAawoL,MAAb,CAAf;YACA,MAAMuJ,aAAa,GAAG9jJ,QAAQ,CAACjuC,GAAT,CAAagyL,cAAb,CAAtB;YACAM,mBAAmB,CAAC,MAAM;cACtB;cACA;cACAhwM,OAAO,CAAC,IAAD,CAAP;cACA+vM,cAAc,GAAG,IAAjB;YACH,CALkB,CAAnB;;YAMAnM,MAAM,CAAC+C,kBAAP,GAA4B,MAAM;cAC9B;cACA;cACA;cACA3mM,OAAO,CAAC,IAAD,CAAP,CAJ8B,CAK9B;;cACA,IAAI,CAAC+vM,cAAL,EAAqB;gBACjB,OAAON,aAAa,CAAC9xM,MAAd,GAAuBwM,wCAAE,CAAC,KAAK,CAAN,CAAzB,GAAoCslM,aAA3C,CADiB,CAEjB;cACH,CAHD,MAIK;gBACD,OAAOtlM,wCAAE,CAAC,KAAK,CAAN,CAAT;cACH;YACJ,CAbD;;YAcAy5L,MAAM,CAACoG,iBAAP;UACH,CAxBM,CAAP;QAyBH,CA1BM,CAAP;MA2BH,CA5BD;IA6BH;EA7DL,CAFc,CAAlB;EAkEA,OAAOqF,aAAa,CAAC;EAAE;EAAH,EAAoEjyI,SAApE,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8yI,6BAAT,GAAyC;EACrC,MAAM9yI,SAAS,GAAG,CACd;IACIC,OAAO,EAAEk0F,0DADb;IAEIhyI,KAAK,EAAE,IAFX;IAGIgxB,UAAU,EAAE,MAAM;MACd,MAAMqzJ,MAAM,GAAG/1J,qDAAM,CAACq4J,MAAD,CAArB;MACA,OAAO,MAAM;QACTtC,MAAM,CAACqG,2BAAP;MACH,CAFD;IAGH;EARL,CADc,EAWd;IAAE5sI,OAAO,EAAEsyI,kBAAX;IAA+BryI,QAAQ,EAAE;IAAE;;EAA3C,CAXc,CAAlB;EAaA,OAAO+xI,aAAa,CAAC;EAAE;EAAH,EAA6DjyI,SAA7D,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+yI,gBAAT,GAA4B;EACxB,IAAI/yI,SAAS,GAAG,EAAhB;;EACA,IAAIi6G,aAAJ,EAAmB;IACfj6G,SAAS,GAAG,CAAC;MACLC,OAAO,EAAEkqC,kEADJ;MAELhoF,KAAK,EAAE,IAFF;MAGLgxB,UAAU,EAAE,MAAM;QACd,MAAMqzJ,MAAM,GAAG/1J,qDAAM,CAACq4J,MAAD,CAArB;QACA,OAAO,MAAMtC,MAAM,CAAC/jB,MAAP,CAAc5gL,SAAd,CAAyBkF,CAAD,IAAO;UACxC,IAAIhE,EAAJ,EAAQ4B,EAAR,CADwC,CAExC;;;UACA,CAAC5B,EAAE,GAAGunB,OAAO,CAAC7S,KAAd,MAAyB,IAAzB,IAAiC1U,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAACV,IAAH,CAAQioB,OAAR,EAAkB,iBAAgBvjB,CAAC,CAAC/G,WAAF,CAAcuU,IAAK,EAArD,CAA1D;UACA+V,OAAO,CAACkrI,GAAR,CAAYi8B,cAAc,CAAC1qL,CAAD,CAA1B;UACAujB,OAAO,CAACkrI,GAAR,CAAYzuJ,CAAZ;UACA,CAACpC,EAAE,GAAG2lB,OAAO,CAAC0oL,QAAd,MAA4B,IAA5B,IAAoCruM,EAAE,KAAK,KAAK,CAAhD,GAAoD,KAAK,CAAzD,GAA6DA,EAAE,CAACtC,IAAH,CAAQioB,OAAR,CAA7D,CANwC,CAOxC;QACH,CARY,CAAb;MASH;IAdI,CAAD,CAAZ;EAgBH,CAjBD,MAkBK;IACD01C,SAAS,GAAG,EAAZ;EACH;;EACD,OAAOiyI,aAAa,CAAC;EAAE;EAAH,EAAgDjyI,SAAhD,CAApB;AACH;;AACD,MAAMwyI,gBAAgB,GAAG,IAAIliK,yDAAJ,CAAmB2pI,aAAa,GAAG,kBAAH,GAAwB,EAAxD,CAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASg5B,cAAT,CAAwBzC,kBAAxB,EAA4C;EACxC,MAAMxwI,SAAS,GAAG,CACd;IAAEC,OAAO,EAAEuyI,gBAAX;IAA6Bj/H,WAAW,EAAEg9H;EAA1C,CADc,EAEd;IAAEtwI,OAAO,EAAEkwI,kBAAX;IAA+B58H,WAAW,EAAEi9H;EAA5C,CAFc,CAAlB;EAIA,OAAOyB,aAAa,CAAC;EAAE;EAAH,EAA8CjyI,SAA9C,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkzI,gBAAT,CAA0B7hM,OAA1B,EAAmC;EAC/B,MAAM2uD,SAAS,GAAG,CACd;IAAEC,OAAO,EAAE6mI,oBAAX;IAAiC5mI,QAAQ,EAAE7uD;EAA3C,CADc,CAAlB;EAGA,OAAO4gM,aAAa,CAAC;EAAE;EAAH,EAAuDjyI,SAAvD,CAApB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMh2C,WAAW,GAAG,OAAO7N,SAAP,KAAqB,WAArB,IAAoCA,SAAxD;AACA;AACA;AACA;;AACA,MAAMg3L,iBAAiB,GAAG,CAAChd,YAAD,EAAekY,UAAf,EAA2BU,kBAA3B,EAA+CG,gBAA/C,EAAiE5X,qBAAjE,CAA1B;AACA;AACA;AACA;;AACA,MAAM8b,oBAAoB,GAAG,IAAI9iK,yDAAJ,CAAmBtmB,WAAW,GAAG,gCAAH,GAAsC,sBAApE,CAA7B,EACA;AACA;AACA;AACA;;AACA,MAAMqpL,gBAAgB,GAAG,CACrBz8J,sDADqB,EAErB;EAAEqpB,OAAO,EAAEyoH,aAAX;EAA0Br1G,QAAQ,EAAEs1G;AAApC,CAFqB,EAGrB;EAAE1oH,OAAO,EAAE6oI,MAAX;EAAmB31J,UAAU,EAAEu1J;AAA/B,CAHqB,EAIrBjT,sBAJqB,EAKrB;EAAEx1H,OAAO,EAAE4yH,cAAX;EAA2B1/I,UAAU,EAAE4+J,SAAvC;EAAkDtnJ,IAAI,EAAE,CAACq+I,MAAD;AAAxD,CALqB,EAMrB7B,kBANqB,CAAzB;;AAQA,SAASqM,kBAAT,GAA8B;EAC1B,OAAO,IAAI90C,uDAAJ,CAAiB,QAAjB,EAA2BsqC,MAA3B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyK,YAAN,CAAmB;EACfvzM,WAAW,CAAC87L,KAAD,EAAQ,CAAG;EACtB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACkB,OAAP0X,OAAO,CAAC1a,MAAD,EAASr3L,MAAT,EAAiB;IAC3B,OAAO;MACH0sD,QAAQ,EAAEolJ,YADP;MAEHvzI,SAAS,EAAE,CACPqzI,gBADO,EAEPrpL,WAAW,GAAI,CAACvoB,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACgyM,aAAxD,IAAyEV,gBAAgB,GAAGx9H,UAA5F,GAAyG,EAA7G,GAAmH,EAFvH,EAGPu8H,aAAa,CAAChZ,MAAD,CAHN,EAIP;QACI74H,OAAO,EAAEmzI,oBADb;QAEIjgK,UAAU,EAAEugK,mBAFhB;QAGIjpJ,IAAI,EAAE,CAAC,CAACq+I,MAAD,EAAS,IAAIp4J,mDAAJ,EAAT,EAAyB,IAAIi6C,mDAAJ,EAAzB,CAAD;MAHV,CAJO,EASP;QAAE1qB,OAAO,EAAE6mI,oBAAX;QAAiC5mI,QAAQ,EAAEz+D,MAAM,GAAGA,MAAH,GAAY;MAA7D,CATO,EAUP,CAACA,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACkyM,OAAxD,IAAmEC,2BAA2B,EAA9F,GAAmGC,2BAA2B,EAVvH,EAWPC,qBAAqB,EAXd,EAYP,CAACryM,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAAC+uM,kBAAxD,IAA8EyC,cAAc,CAACxxM,MAAM,CAAC+uM,kBAAR,CAAd,CAA0Cj7H,UAAxH,GAAqI,EAZ9H,EAaP;QAAEtV,OAAO,EAAEu+F,uDAAX;QAAyBr8I,KAAK,EAAE,IAAhC;QAAsCgxB,UAAU,EAAEmgK;MAAlD,CAbO,EAcP,CAAC7xM,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACmrM,iBAAxD,IAA6EmH,wBAAwB,CAACtyM,MAAD,CAArG,GAAgH,EAdzG,EAePuyM,wBAAwB,EAfjB;IAFR,CAAP;EAoBH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,OAARC,QAAQ,CAACnb,MAAD,EAAS;IACpB,OAAO;MAAE3qI,QAAQ,EAAEolJ,YAAZ;MAA0BvzI,SAAS,EAAE,CAAC8xI,aAAa,CAAChZ,MAAD,CAAd;IAArC,CAAP;EACH;;AA5Dc;;AA8DnBya,YAAY,CAAC9uL,IAAb;EAAA,iBAAyG8uL,YAAzG,EAv7MgG13L,sDAu7MhG,CAAuIu3L,oBAAvI;AAAA;;AACAG,YAAY,CAAC35I,IAAb,kBAx7MgG/9C,8DAw7MhG;EAAA,MAA0G03L;AAA1G;AACAA,YAAY,CAAC15I,IAAb,kBAz7MgGh+C,8DAy7MhG;EAAA,UAAkIy7K,qBAAlI;AAAA;;AACA;EAAA,mDA17MgGz7K,+DA07MhG,CAA2F03L,YAA3F,EAAqH,CAAC;IAC1Gl8L,IAAI,EAAE06B,mDADoG;IAE1GhpC,IAAI,EAAE,CAAC;MACC+wD,OAAO,EAAEq5I,iBADV;MAECp5I,OAAO,EAAEo5I;IAFV,CAAD;EAFoG,CAAD,CAArH,EAM4B,YAAY;IAChC,OAAO,CAAC;MAAE97L,IAAI,EAAEvW,SAAR;MAAmBq0C,UAAU,EAAE,CAAC;QACxB99B,IAAI,EAAEq5B,mDAAQA;MADU,CAAD,EAExB;QACCr5B,IAAI,EAAEm5B,iDADP;QAECznC,IAAI,EAAE,CAACqqM,oBAAD;MAFP,CAFwB;IAA/B,CAAD,CAAP;EAMH,CAbL;AAAA;AAcA;AACA;AACA;AACA;;;AACA,SAASU,qBAAT,GAAiC;EAC7B,OAAO;IACH7zI,OAAO,EAAEgxI,eADN;IAEH99J,UAAU,EAAE,MAAM;MACd,MAAMqzJ,MAAM,GAAG/1J,qDAAM,CAACq4J,MAAD,CAArB;MACA,MAAMqI,gBAAgB,GAAG1gK,qDAAM,CAACiqB,8DAAD,CAA/B;MACA,MAAMj5D,MAAM,GAAGgvC,qDAAM,CAACq2J,oBAAD,CAArB;;MACA,IAAIrlM,MAAM,CAACyyM,YAAX,EAAyB;QACrB/C,gBAAgB,CAACt2I,SAAjB,CAA2Bp5D,MAAM,CAACyyM,YAAlC;MACH;;MACD,OAAO,IAAIhD,cAAJ,CAAmB1K,MAAnB,EAA2B2K,gBAA3B,EAA6C1vM,MAA7C,CAAP;IACH;EAVE,CAAP;AAYH,EACD;AACA;;;AACA,SAASmyM,2BAAT,GAAuC;EACnC,OAAO;IAAE3zI,OAAO,EAAErqB,8DAAX;IAA6By9B,QAAQ,EAAE18B,kEAAoBA;EAA3D,CAAP;AACH,EACD;AACA;;;AACA,SAASk9J,2BAAT,GAAuC;EACnC,OAAO;IAAE5zI,OAAO,EAAErqB,8DAAX;IAA6By9B,QAAQ,EAAEx9B,kEAAoBA;EAA3D,CAAP;AACH;;AACD,SAAS69J,mBAAT,CAA6BlN,MAA7B,EAAqC;EACjC,IAAIx8K,WAAW,IAAIw8K,MAAnB,EAA2B;IACvB,MAAM,IAAI1qL,2DAAJ,CAAkB;IAAK;IAAvB,EAAsE,4GAAD,GACtE,kEADC,CAAN;EAEH;;EACD,OAAO,SAAP;AACH,EACD;AACA;;;AACA,SAASi4L,wBAAT,CAAkCtyM,MAAlC,EAA0C;EACtC,OAAO,CACHA,MAAM,CAACmrM,iBAAP,KAA6B,UAA7B,GAA0CkG,6BAA6B,GAAGv9H,UAA1E,GAAuF,EADpF,EAEH9zE,MAAM,CAACmrM,iBAAP,KAA6B,iBAA7B,GACI6F,oCAAoC,GAAGl9H,UAD3C,GAEI,EAJD,CAAP;AAMH,EACD;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4+H,kBAAkB,GAAG,IAAI7jK,yDAAJ,CAAmBtmB,WAAW,GAAG,oBAAH,GAA0B,EAAxD,CAA3B;;AACA,SAASgqL,wBAAT,GAAoC;EAChC,OAAO,CACH;EACA;EACA;IAAE/zI,OAAO,EAAEk0I,kBAAX;IAA+BhhK,UAAU,EAAE6+J;EAA3C,CAHG,EAIH;IAAE/xI,OAAO,EAAEm1F,iEAAX;IAAmCjzI,KAAK,EAAE,IAA1C;IAAgDoxD,WAAW,EAAE4gI;EAA7D,CAJG,CAAP;AAMH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAM15I,OAAO,GAAG,IAAIzoB,kDAAJ,CAAY,QAAZ,CAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA","sources":["./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2015/animations.mjs","./node_modules/@angular/animations/fesm2015/browser.mjs","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/platform-browser/fesm2015/animations.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs"],"sourcesContent":["import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._subject = null;\n this._refCount = 0;\n this._connection = null;\n if (hasLift(source)) {\n this.lift = source.lift;\n }\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n _teardown() {\n this._refCount = 0;\n const { _connection } = this;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n const subject = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject, undefined, () => {\n this._teardown();\n subject.complete();\n }, (err) => {\n this._teardown();\n subject.error(err);\n }, () => this._teardown())));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory;\n const init = (subscriber) => subscriber.error(errorFactory());\n return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init);\n}\n","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate((source, subscriber) => {\n let innerSub = null;\n let syncUnsub = false;\n let handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","import { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate((source, subscriber) => {\n let connection = null;\n source._refCount++;\n const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n const sharedConnection = source._connection;\n const conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return (source, subscriber) => {\n let hasState = hasSeed;\n let state = seed;\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (() => {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return on(...args).subscribe(onSubscriber);\n}\n","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? () => EMPTY\n : operate((source, subscriber) => {\n let buffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, () => {\n for (const value of buffer) {\n subscriber.next(value);\n }\n subscriber.complete();\n }, undefined, () => {\n buffer = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n","export function identity(x) {\n return x;\n}\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @license Angular v14.2.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n}\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* AnimationMetadataType.Trigger */, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: 4 /* AnimationMetadataType.Animate */, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: 3 /* AnimationMetadataType.Group */, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: 2 /* AnimationMetadataType.Sequence */, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* AnimationMetadataType.Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* AnimationMetadataType.State */, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* AnimationMetadataType.Keyframes */, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: 1 /* AnimationMetadataType.Transition */, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: 8 /* AnimationMetadataType.Reference */, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: 9 /* AnimationMetadataType.AnimateChild */, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: 10 /* AnimationMetadataType.AnimateRef */, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
\n *\n *
\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: 11 /* AnimationMetadataType.Query */, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* AnimationMetadataType.Stagger */, timings, animation };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n scheduleMicroTask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(() => this._onFinish());\n }\n else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ɵPRE_STYLE = '!';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","/**\n * @license Angular v14.2.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n var _a;\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions === null || animationRefOptions === void 0 ? void 0 : animationRefOptions.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, (_a = animationRefOptions === null || animationRefOptions === void 0 ? void 0 : animationRefOptions.params) !== null && _a !== void 0 ? _a : {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n var _a;\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, (_a = this._globalTimelineStyles.get(prop)) !== null && _a !== void 0 ? _a : AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName === null || stateName === void 0 ? void 0 : stateName.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n var _a;\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: (_a = this.ast.options) === null || _a === void 0 ? void 0 : _a.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n for (const [prop, value] of keyframe.entries()) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(normalizedProp, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n var _a;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if ((_a = element.classList) === null || _a === void 0 ? void 0 : _a.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n var _a, _b;\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from((_a = post === null || post === void 0 ? void 0 : post.entries()) !== null && _a !== void 0 ? _a : []), ...Array.from((_b = pre === null || pre === void 0 ? void 0 : pre.entries()) !== null && _b !== void 0 ? _b : [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n var _a;\n (_a = element.classList) === null || _a === void 0 ? void 0 : _a.add(className);\n}\nfunction removeClass(element, className) {\n var _a;\n (_a = element.classList) === null || _a === void 0 ? void 0 : _a.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v14.2.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, NgZone } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]\n }] });\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you may provide a {@link APP_BASE_HREF}\n * or add a `` element to the document to override the default.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n var _a, _b, _c;\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n this._baseHref = (_c = (_a = href !== null && href !== void 0 ? href : this._platformLocation.getBaseHrefFromDOM()) !== null && _a !== void 0 ? _a : (_b = inject(DOCUMENT).location) === null || _b === void 0 ? void 0 : _b.origin) !== null && _c !== void 0 ? _c : '';\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(locationStrategy) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n /** @internal */\n this._urlChangeSubscription = null;\n this._locationStrategy = locationStrategy;\n const browserBaseHref = this._locationStrategy.getBaseHref();\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._locationStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n var _a;\n (_a = this._urlChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._urlChangeListeners = [];\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._locationStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._locationStrategy.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._locationStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._locationStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._locationStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._locationStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._locationStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._locationStrategy).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n * @returns A function that, when executed, unregisters a URL change listener.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n return () => {\n var _a;\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n if (this._urlChangeListeners.length === 0) {\n (_a = this._urlChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, undefined, 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLE\": [undefined, undefined, 2], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ɵExtraLocaleDataIndex.ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ɵExtraLocaleDataIndex.ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ɵExtraLocaleDataIndex.ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* ɵCurrencyIndex.SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* ɵCurrencyIndex.Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* ɵCurrencyIndex.NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ISO8601_DATE_REGEX = /^(\\d{4,})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\n value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.slice(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substring(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is suppressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substring(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substring(0, pos).replace(/'/g, '');\n p.negSuf = negative.slice(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModule`: Optional NgModule class reference to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * * `ngComponentOutletNgModuleFactory`: Deprecated config option that allows providing optional\n * NgModule factory to allow loading another module dynamically, then loading a component from that\n * module. Use `ngComponentOutletNgModule` instead.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized NgModule reference\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this.ngComponentOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n const { _viewContainerRef: viewContainerRef, ngComponentOutletNgModule: ngModule, ngComponentOutletNgModuleFactory: ngModuleFactory, } = this;\n viewContainerRef.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModule'] || changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (ngModule) {\n this._moduleRef = createNgModule(ngModule, getParentInjector(injector));\n }\n else if (ngModuleFactory) {\n this._moduleRef = ngModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = viewContainerRef.createComponent(this.ngComponentOutlet, {\n index: viewContainerRef.length,\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModule: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n// Helper function that returns an Injector instance of a parent NgModule.\nfunction getParentInjector(injector) {\n const parentNgModule = injector.get(NgModuleRef);\n return parentNgModule.injector;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For further discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (NG_DEV_MODE) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch (_a) {\n let errorMessage = `Cannot find a differ supporting object '${value}' of type '` +\n `${getTypeName(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;\n if (typeof value === 'object') {\n errorMessage += ' Did you mean to use the keyvalue pipe?';\n }\n throw new ɵRuntimeError(-2200 /* RuntimeErrorCode.NG_FOR_MISSING_DIFFER */, errorMessage);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitch]',\n standalone: true,\n }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* RuntimeErrorCode.PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n const flags = name.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, unit ? `${value}${unit}` : value, flags);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name, flags);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n /** Injector to be used within the embedded view. */\n this.ngTemplateOutletInjector = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet'] || changes['ngTemplateOutletInjector']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n if (this.ngTemplateOutlet) {\n const { ngTemplateOutlet: template, ngTemplateOutletContext: context, ngTemplateOutletInjector: injector } = this;\n this._viewRef = viewContainerRef.createEmbeddedView(template, context, injector ? { injector } : undefined);\n }\n else {\n this._viewRef = null;\n }\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }], ngTemplateOutletInjector: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(ref) {\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n // Assign `ref` into `this._ref` manually instead of declaring `_ref` in the constructor\n // parameter list, as the type of `this._ref` includes `null` unlike the type of `ref`.\n this._ref = ref;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n // Clear the `ChangeDetectorRef` and its association with the view data, to mitigate\n // potential memory leaks in Observables that could otherwise cause the view data to\n // be retained.\n // https://github.com/angular/angular/issues/17624\n this._ref = null;\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n // Note: `dispose` is only called if a subscription has been initialized before, indicating\n // that `this._strategy` is also available.\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n // Note: `this._ref` is only cleared in `ngOnDestroy` so is known to be available when a\n // value is being updated.\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'lowercase',\n standalone: true,\n }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'titlecase',\n standalone: true,\n }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n var _a;\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, (_a = timezone !== null && timezone !== void 0 ? timezone : this.defaultTimezone) !== null && _a !== void 0 ? _a : undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * https://unicode-org.github.io/icu/userguide/format_parse/messages/.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }];\n } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return value;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('14.2.5');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch (_a) {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch (_a) {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Asserts that the application is in development mode. Throws an error if the application is in\n * production mode. This assert can be used to make sure that there is no dev-mode code invoked in\n * the prod mode accidentally.\n */\nfunction assertDevMode(checkName) {\n if (!ngDevMode) {\n throw new ɵRuntimeError(2958 /* RuntimeErrorCode.UNEXPECTED_DEV_MODE_CHECK_IN_PROD_MODE */, `Unexpected invocation of the ${checkName} in the prod mode. ` +\n `Please make sure that the prod mode is enabled for production builds.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) ` : '';\n return `The NgOptimizedImage directive ${ngSrcInfo}has detected that`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Converts a string that represents a URL into a URL class instance.\nfunction getUrl(src, win) {\n // Don't use a base URL is the URL is absolute.\n return isAbsoluteUrl(src) ? new URL(src) : new URL(src, win.location.href);\n}\n// Checks whether a URL is absolute (i.e. starts with `http://` or `https://`).\nfunction isAbsoluteUrl(src) {\n return /^https?:\\/\\//.test(src);\n}\n// Given a URL, extract the hostname part.\n// If a URL is a relative one - the URL is returned as is.\nfunction extractHostname(url) {\n return isAbsoluteUrl(url) ? (new URL(url)).hostname : url;\n}\nfunction isValidPath(path) {\n const isString = typeof path === 'string';\n if (!isString || path.trim() === '') {\n return false;\n }\n // Calling new URL() will throw if the path string is malformed\n try {\n const url = new URL(path);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction normalizePath(path) {\n return path.endsWith('/') ? path.slice(0, -1) : path;\n}\nfunction normalizeSrc(src) {\n return src.startsWith('/') ? src.slice(1) : src;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Set of origins that are always excluded from the preconnect checks.\nconst INTERNAL_PRECONNECT_CHECK_BLOCKLIST = new Set(['localhost', '127.0.0.1', '0.0.0.0']);\n/**\n * Multi-provider injection token to configure which origins should be excluded\n * from the preconnect checks. It can either be a single string or an array of strings\n * to represent a group of origins, for example:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, multi: true, useValue: 'https://your-domain.com'}\n * ```\n *\n * or:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, multi: true,\n * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}\n * ```\n *\n * @publicApi\n * @developerPreview\n */\nconst PRECONNECT_CHECK_BLOCKLIST = new InjectionToken('PRECONNECT_CHECK_BLOCKLIST');\n/**\n * Contains the logic to detect whether an image, marked with the \"priority\" attribute\n * has a corresponding `` tag in the `document.head`.\n *\n * Note: this is a dev-mode only class, which should not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n */\nclass PreconnectLinkChecker {\n constructor() {\n this.document = inject(DOCUMENT);\n /**\n * Set of tags found on this page.\n * The `null` value indicates that there was no DOM query operation performed.\n */\n this.preconnectLinks = null;\n /*\n * Keep track of all already seen origin URLs to avoid repeating the same check.\n */\n this.alreadySeen = new Set();\n this.window = null;\n this.blocklist = new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST);\n assertDevMode('preconnect link checker');\n const win = this.document.defaultView;\n if (typeof win !== 'undefined') {\n this.window = win;\n }\n const blocklist = inject(PRECONNECT_CHECK_BLOCKLIST, { optional: true });\n if (blocklist) {\n this.populateBlocklist(blocklist);\n }\n }\n populateBlocklist(origins) {\n if (Array.isArray(origins)) {\n deepForEach(origins, origin => {\n this.blocklist.add(extractHostname(origin));\n });\n }\n else {\n throw new ɵRuntimeError(2957 /* RuntimeErrorCode.INVALID_PRECONNECT_CHECK_BLOCKLIST */, `The blocklist for the preconnect check was not provided as an array. ` +\n `Check that the \\`PRECONNECT_CHECK_BLOCKLIST\\` token is configured as a \\`multi: true\\` provider.`);\n }\n }\n /**\n * Checks that a preconnect resource hint exists in the head fo rthe\n * given src.\n *\n * @param rewrittenSrc src formatted with loader\n * @param originalNgSrc ngSrc value\n */\n assertPreconnect(rewrittenSrc, originalNgSrc) {\n if (!this.window)\n return;\n const imgUrl = getUrl(rewrittenSrc, this.window);\n if (this.blocklist.has(imgUrl.hostname) || this.alreadySeen.has(imgUrl.origin))\n return;\n // Register this origin as seen, so we don't check it again later.\n this.alreadySeen.add(imgUrl.origin);\n if (!this.preconnectLinks) {\n // Note: we query for preconnect links only *once* and cache the results\n // for the entire lifespan of an application, since it's unlikely that the\n // list would change frequently. This allows to make sure there are no\n // performance implications of making extra DOM lookups for each image.\n this.preconnectLinks = this.queryPreconnectLinks();\n }\n if (!this.preconnectLinks.has(imgUrl.origin)) {\n console.warn(ɵformatRuntimeError(2956 /* RuntimeErrorCode.PRIORITY_IMG_MISSING_PRECONNECT_TAG */, `${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this ` +\n `image. Preconnecting to the origin(s) that serve priority images ensures that these ` +\n `images are delivered as soon as possible. To fix this, please add the following ` +\n `element into the of the document:\\n` +\n ` `));\n }\n }\n queryPreconnectLinks() {\n const preconnectUrls = new Set();\n const selector = 'link[rel=preconnect]';\n const links = Array.from(this.document.querySelectorAll(selector));\n for (let link of links) {\n const url = getUrl(link.href, this.window);\n preconnectUrls.add(url.origin);\n }\n return preconnectUrls;\n }\n ngOnDestroy() {\n var _a;\n (_a = this.preconnectLinks) === null || _a === void 0 ? void 0 : _a.clear();\n this.alreadySeen.clear();\n }\n}\nPreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\n/**\n * Invokes a callback for each element in the array. Also invokes a callback\n * recursively for each nested array.\n */\nfunction deepForEach(input, fn) {\n for (let value of input) {\n Array.isArray(value) ? deepForEach(value, fn) : fn(value);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Noop image loader that does no transformation to the original src and just returns it as is.\n * This loader is used as a default one if more specific logic is not provided in an app config.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n * @publicApi\n * @developerPreview\n */\nconst IMAGE_LOADER = new InjectionToken('ImageLoader', {\n providedIn: 'root',\n factory: () => noopImageLoader,\n});\n/**\n * Internal helper function that makes it easier to introduce custom image loaders for the\n * `NgOptimizedImage` directive. It is enough to specify a URL builder function to obtain full DI\n * configuration for a given loader: a DI token corresponding to the actual loader function, plus DI\n * tokens managing preconnect check functionality.\n * @param buildUrlFn a function returning a full URL based on loader's configuration\n * @param exampleUrls example of full URLs for a given loader (used in error messages)\n * @returns a set of DI providers corresponding to the configured image loader\n */\nfunction createImageLoader(buildUrlFn, exampleUrls) {\n return function provideImageLoader(path, options = { ensurePreconnect: true }) {\n if (!isValidPath(path)) {\n throwInvalidPathError(path, exampleUrls || []);\n }\n // The trailing / is stripped (if provided) to make URL construction (concatenation) easier in\n // the individual loader functions.\n path = normalizePath(path);\n const loaderFn = (config) => {\n if (isAbsoluteUrl(config.src)) {\n // Image loader functions expect an image file name (e.g. `my-image.png`)\n // or a relative path + a file name (e.g. `/a/b/c/my-image.png`) as an input,\n // so the final absolute URL can be constructed.\n // When an absolute URL is provided instead - the loader can not\n // build a final URL, thus the error is thrown to indicate that.\n throwUnexpectedAbsoluteUrlError(path, config.src);\n }\n return buildUrlFn(path, Object.assign(Object.assign({}, config), { src: normalizeSrc(config.src) }));\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n if (ngDevMode && options.ensurePreconnect === false) {\n providers.push({ provide: PRECONNECT_CHECK_BLOCKLIST, useValue: [path], multi: true });\n }\n return providers;\n };\n}\nfunction throwInvalidPathError(path, exampleUrls) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply a path using one of the following formats: ${exampleUrls.join(' or ')}`);\n}\nfunction throwUnexpectedAbsoluteUrlError(path, url) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected a \\`\\` tag with an invalid \\`ngSrc\\` attribute: ${url}. ` +\n `This image loader expects \\`ngSrc\\` to be a relative URL - ` +\n `however the provided value is an absolute URL. ` +\n `To fix this, provide \\`ngSrc\\` as a path relative to the base URL ` +\n `configured for this loader (\\`${path}\\`).`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for [Cloudflare Image\n * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular\n * provider. Note: Cloudflare has multiple image products - this provider is specifically for\n * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.\n *\n * @param path Your domain name, e.g. https://mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Provider that provides an ImageLoader function\n *\n * @publicApi\n * @developerPreview\n */\nconst provideCloudflareLoader = createImageLoader(createCloudflareUrl, ngDevMode ? ['https:///cdn-cgi/image//'] : undefined);\nfunction createCloudflareUrl(path, config) {\n let params = `format=auto`;\n if (config.width) {\n params += `,width=${config.width}`;\n }\n // Cloudflare image URLs format:\n // https://developers.cloudflare.com/images/image-resizing/url-format/\n return `${path}/cdn-cgi/image/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.\n *\n * @param path Base URL of your Cloudinary images\n * This URL should match one of the following formats:\n * https://res.cloudinary.com/mysite\n * https://mysite.cloudinary.com\n * https://subdomain.mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Set of providers to configure the Cloudinary loader.\n *\n * @publicApi\n * @developerPreview\n */\nconst provideCloudinaryLoader = createImageLoader(createCloudinaryUrl, ngDevMode ?\n [\n 'https://res.cloudinary.com/mysite', 'https://mysite.cloudinary.com',\n 'https://subdomain.mysite.com'\n ] :\n undefined);\nfunction createCloudinaryUrl(path, config) {\n // Cloudinary image URLformat:\n // https://cloudinary.com/documentation/image_transformations#transformation_url_structure\n // Example of a Cloudinary image URL:\n // https://res.cloudinary.com/mysite/image/upload/c_scale,f_auto,q_auto,w_600/marketing/tile-topics-m.png\n let params = `f_auto,q_auto`; // sets image format and quality to \"auto\"\n if (config.width) {\n params += `,w_${config.width}`;\n }\n return `${path}/image/upload/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.\n *\n * @param path Base URL of your ImageKit images\n * This URL should match one of the following formats:\n * https://ik.imagekit.io/myaccount\n * https://subdomain.mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Set of providers to configure the ImageKit loader.\n *\n * @publicApi\n * @developerPreview\n */\nconst provideImageKitLoader = createImageLoader(createImagekitUrl, ngDevMode ? ['https://ik.imagekit.io/mysite', 'https://subdomain.mysite.com'] : undefined);\nfunction createImagekitUrl(path, config) {\n // Example of an ImageKit image URL:\n // https://ik.imagekit.io/demo/tr:w-300,h-300/medium_cafe_B1iTdD0C.jpg\n let params = `tr:q-auto`; // applies the \"auto quality\" transformation\n if (config.width) {\n params += `,w-${config.width}`;\n }\n return `${path}/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.\n *\n * @param path path to the desired Imgix origin,\n * e.g. https://somepath.imgix.net or https://images.mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Set of providers to configure the Imgix loader.\n *\n * @publicApi\n * @developerPreview\n */\nconst provideImgixLoader = createImageLoader(createImgixUrl, ngDevMode ? ['https://somepath.imgix.net/'] : undefined);\nfunction createImgixUrl(path, config) {\n const url = new URL(`${path}/${config.src}`);\n // This setting ensures the smallest allowable format is set.\n url.searchParams.set('auto', 'format');\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n return url.href;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Observer that detects whether an image with `NgOptimizedImage`\n * is treated as a Largest Contentful Paint (LCP) element. If so,\n * asserts that the image has the `priority` attribute.\n *\n * Note: this is a dev-mode only class and it does not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n *\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript.\n */\nclass LCPImageObserver {\n constructor() {\n // Map of full image URLs -> original `ngSrc` values.\n this.images = new Map();\n // Keep track of images for which `console.warn` was produced.\n this.alreadyWarned = new Set();\n this.window = null;\n this.observer = null;\n assertDevMode('LCP checker');\n const win = inject(DOCUMENT).defaultView;\n if (typeof win !== 'undefined' && typeof PerformanceObserver !== 'undefined') {\n this.window = win;\n this.observer = this.initPerformanceObserver();\n }\n }\n /**\n * Inits PerformanceObserver and subscribes to LCP events.\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript\n */\n initPerformanceObserver() {\n const observer = new PerformanceObserver((entryList) => {\n var _a, _b;\n const entries = entryList.getEntries();\n if (entries.length === 0)\n return;\n // We use the latest entry produced by the `PerformanceObserver` as the best\n // signal on which element is actually an LCP one. As an example, the first image to load on\n // a page, by virtue of being the only thing on the page so far, is often a LCP candidate\n // and gets reported by PerformanceObserver, but isn't necessarily the LCP element.\n const lcpElement = entries[entries.length - 1];\n // Cast to `any` due to missing `element` on the `LargestContentfulPaint` type of entry.\n // See https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint\n const imgSrc = (_b = (_a = lcpElement.element) === null || _a === void 0 ? void 0 : _a.src) !== null && _b !== void 0 ? _b : '';\n // Exclude `data:` and `blob:` URLs, since they are not supported by the directive.\n if (imgSrc.startsWith('data:') || imgSrc.startsWith('blob:'))\n return;\n const imgNgSrc = this.images.get(imgSrc);\n if (imgNgSrc && !this.alreadyWarned.has(imgSrc)) {\n this.alreadyWarned.add(imgSrc);\n logMissingPriorityWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc) {\n if (!this.observer)\n return;\n this.images.set(getUrl(rewrittenSrc, this.window).href, originalNgSrc);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n this.alreadyWarned.clear();\n }\n}\nLCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction logMissingPriorityWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵformatRuntimeError(2955 /* RuntimeErrorCode.LCP_IMG_MISSING_PRIORITY */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element but was not marked \"priority\". This image should be marked ` +\n `\"priority\" in order to prioritize its loading. ` +\n `To fix this, add the \"priority\" attribute.`));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * When a Base64-encoded image is passed as an input to the `NgOptimizedImage` directive,\n * an error is thrown. The image content (as a string) might be very long, thus making\n * it hard to read an error message if the entire string is included. This const defines\n * the number of characters that should be included into the error message. The rest\n * of the content is truncated.\n */\nconst BASE64_IMG_MAX_LENGTH_IN_ERROR = 50;\n/**\n * RegExpr to determine whether a src in a srcset is using width descriptors.\n * Should match something like: \"100w, 200w\".\n */\nconst VALID_WIDTH_DESCRIPTOR_SRCSET = /^((\\s*\\d+w\\s*(,|$)){1,})$/;\n/**\n * RegExpr to determine whether a src in a srcset is using density descriptors.\n * Should match something like: \"1x, 2x, 50x\". Also supports decimals like \"1.5x, 1.50x\".\n */\nconst VALID_DENSITY_DESCRIPTOR_SRCSET = /^((\\s*\\d+(\\.\\d+)?x\\s*(,|$)){1,})$/;\n/**\n * Srcset values with a density descriptor higher than this value will actively\n * throw an error. Such densities are not permitted as they cause image sizes\n * to be unreasonably large and slow down LCP.\n */\nconst ABSOLUTE_SRCSET_DENSITY_CAP = 3;\n/**\n * Used only in error message text to communicate best practices, as we will\n * only throw based on the slightly more conservative ABSOLUTE_SRCSET_DENSITY_CAP.\n */\nconst RECOMMENDED_SRCSET_DENSITY_CAP = 2;\n/**\n * Used to determine whether two aspect ratios are similar in value.\n */\nconst ASPECT_RATIO_TOLERANCE = .1;\n/**\n * Used to determine whether the image has been requested at an overly\n * large size compared to the actual rendered image size (after taking\n * into account a typical device pixel ratio). In pixels.\n */\nconst OVERSIZED_IMAGE_TOLERANCE = 1000;\n/**\n * Directive that improves image loading performance by enforcing best practices.\n *\n * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is\n * prioritized by:\n * - Automatically setting the `fetchpriority` attribute on the `` tag\n * - Lazy loading non-priority images by default\n * - Asserting that there is a corresponding preconnect link tag in the document head\n *\n * In addition, the directive:\n * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided\n * - Requires that `width` and `height` are set\n * - Warns if `width` or `height` have been set incorrectly\n * - Warns if the image will be visually distorted when rendered\n *\n * @usageNotes\n * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can\n * be imported directly.\n *\n * Follow the steps below to enable and use the directive:\n * 1. Import it into the necessary NgModule or a standalone Component.\n * 2. Optionally provide an `ImageLoader` if you use an image hosting service.\n * 3. Update the necessary `` tags in templates and replace `src` attributes with `ngSrc`.\n * Using a `ngSrc` allows the directive to control when the `src` gets set, which triggers an image\n * download.\n *\n * Step 1: import the `NgOptimizedImage` directive.\n *\n * ```typescript\n * import { NgOptimizedImage } from '@angular/common';\n *\n * // Include it into the necessary NgModule\n * @NgModule({\n * imports: [NgOptimizedImage],\n * })\n * class AppModule {}\n *\n * // ... or a standalone Component\n * @Component({\n * standalone: true\n * imports: [NgOptimizedImage],\n * })\n * class MyStandaloneComponent {}\n * ```\n *\n * Step 2: configure a loader.\n *\n * To use the **default loader**: no additional code changes are necessary. The URL returned by the\n * generic loader will always match the value of \"src\". In other words, this loader applies no\n * transformations to the resource URL and the value of the `ngSrc` attribute will be used as is.\n *\n * To use an existing loader for a **third-party image service**: add the provider factory for your\n * chosen service to the `providers` array. In the example below, the Imgix loader is used:\n *\n * ```typescript\n * import {provideImgixLoader} from '@angular/common';\n *\n * // Call the function and add the result to the `providers` array:\n * providers: [\n * provideImgixLoader(\"https://my.base.url/\"),\n * ],\n * ```\n *\n * The `NgOptimizedImage` directive provides the following functions:\n * - `provideCloudflareLoader`\n * - `provideCloudinaryLoader`\n * - `provideImageKitLoader`\n * - `provideImgixLoader`\n *\n * If you use a different image provider, you can create a custom loader function as described\n * below.\n *\n * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI\n * token.\n *\n * ```typescript\n * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';\n *\n * // Configure the loader using the `IMAGE_LOADER` token.\n * providers: [\n * {\n * provide: IMAGE_LOADER,\n * useValue: (config: ImageLoaderConfig) => {\n * return `https://example.com/${config.src}-${config.width}.jpg}`;\n * }\n * },\n * ],\n * ```\n *\n * Step 3: update `` tags in templates to use `ngSrc` instead of `src`.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n * @developerPreview\n */\nclass NgOptimizedImage {\n constructor() {\n this.imageLoader = inject(IMAGE_LOADER);\n this.renderer = inject(Renderer2);\n this.imgElement = inject(ElementRef).nativeElement;\n this.injector = inject(Injector);\n // a LCP image observer - should be injected only in the dev mode\n this.lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;\n /**\n * Calculate the rewritten `src` once and store it.\n * This is needed to avoid repetitive calculations and make sure the directive cleanup in the\n * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other\n * instance that might be already destroyed).\n */\n this._renderedSrc = null;\n this._priority = false;\n }\n /**\n * Previously, the `rawSrc` attribute was used to activate the directive.\n * The attribute was renamed to `ngSrc` and this input just produces an error,\n * suggesting to switch to `ngSrc` instead.\n *\n * This error should be removed in v15.\n *\n * @nodoc\n * @deprecated Use `ngSrc` instead.\n */\n set rawSrc(value) {\n if (ngDevMode) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(value, false)} the \\`rawSrc\\` attribute was used ` +\n `to activate the directive. Newer version of the directive uses the \\`ngSrc\\` ` +\n `attribute instead. Please replace \\`rawSrc\\` with \\`ngSrc\\` and ` +\n `\\`rawSrcset\\` with \\`ngSrcset\\` attributes in the template to ` +\n `enable image optimizations.`);\n }\n }\n /**\n * The intrinsic width of the image in pixels.\n */\n set width(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'width');\n this._width = inputToInteger(value);\n }\n get width() {\n return this._width;\n }\n /**\n * The intrinsic height of the image in pixels.\n */\n set height(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'height');\n this._height = inputToInteger(value);\n }\n get height() {\n return this._height;\n }\n /**\n * Indicates whether this image should have a high priority.\n */\n set priority(value) {\n this._priority = inputToBoolean(value);\n }\n get priority() {\n return this._priority;\n }\n ngOnInit() {\n if (ngDevMode) {\n assertNonEmptyInput(this, 'ngSrc', this.ngSrc);\n assertValidNgSrcset(this, this.ngSrcset);\n assertNoConflictingSrc(this);\n assertNoConflictingSrcset(this);\n assertNotBase64Image(this);\n assertNotBlobUrl(this);\n assertNonEmptyWidthAndHeight(this);\n assertValidLoadingInput(this);\n assertNoImageDistortion(this, this.imgElement, this.renderer);\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n else {\n // Monitor whether an image is an LCP element only in case\n // the `priority` attribute is missing. Otherwise, an image\n // has the necessary settings and no extra checks are required.\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc);\n });\n }\n }\n }\n this.setHostAttributes();\n }\n setHostAttributes() {\n // Must set width/height explicitly in case they are bound (in which case they will\n // only be reflected and not found by the browser)\n this.setHostAttribute('width', this.width.toString());\n this.setHostAttribute('height', this.height.toString());\n this.setHostAttribute('loading', this.getLoadingBehavior());\n this.setHostAttribute('fetchpriority', this.getFetchPriority());\n // The `src` and `srcset` attributes should be set last since other attributes\n // could affect the image's loading behavior.\n this.setHostAttribute('src', this.getRewrittenSrc());\n if (this.ngSrcset) {\n this.setHostAttribute('srcset', this.getRewrittenSrcset());\n }\n }\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, ['ngSrc', 'ngSrcset', 'width', 'height', 'priority']);\n }\n }\n getLoadingBehavior() {\n if (!this.priority && this.loading !== undefined) {\n return this.loading;\n }\n return this.priority ? 'eager' : 'lazy';\n }\n getFetchPriority() {\n return this.priority ? 'high' : 'auto';\n }\n getRewrittenSrc() {\n // ImageLoaderConfig supports setting a width property. However, we're not setting width here\n // because if the developer uses rendered width instead of intrinsic width in the HTML width\n // attribute, the image requested may be too small for 2x+ screens.\n if (!this._renderedSrc) {\n const imgConfig = { src: this.ngSrc };\n // Cache calculated image src to reuse it later in the code.\n this._renderedSrc = this.imageLoader(imgConfig);\n }\n return this._renderedSrc;\n }\n getRewrittenSrcset() {\n const widthSrcSet = VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);\n const finalSrcs = this.ngSrcset.split(',').filter(src => src !== '').map(srcStr => {\n srcStr = srcStr.trim();\n const width = widthSrcSet ? parseFloat(srcStr) : parseFloat(srcStr) * this.width;\n return `${this.imageLoader({ src: this.ngSrc, width })} ${srcStr}`;\n });\n return finalSrcs.join(', ');\n }\n ngOnDestroy() {\n if (ngDevMode) {\n if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {\n this.lcpObserver.unregisterImage(this._renderedSrc);\n }\n }\n }\n setHostAttribute(name, value) {\n this.renderer.setAttribute(this.imgElement, name, value);\n }\n}\nNgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc],img[rawSrc]\", inputs: { rawSrc: \"rawSrc\", ngSrc: \"ngSrc\", ngSrcset: \"ngSrcset\", width: \"width\", height: \"height\", loading: \"loading\", priority: \"priority\", src: \"src\", srcset: \"srcset\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgOptimizedImage, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'img[ngSrc],img[rawSrc]',\n }]\n }], propDecorators: { rawSrc: [{\n type: Input\n }], ngSrc: [{\n type: Input\n }], ngSrcset: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Convert input value to integer.\n */\nfunction inputToInteger(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n/**\n * Convert input value to boolean.\n */\nfunction inputToBoolean(value) {\n return value != null && `${value}` !== 'false';\n}\n/***** Assert functions *****/\n/**\n * Verifies that there is no `src` set on a host element.\n */\nfunction assertNoConflictingSrc(dir) {\n if (dir.src) {\n throw new ɵRuntimeError(2950 /* RuntimeErrorCode.UNEXPECTED_SRC_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`src\\` and \\`ngSrc\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`src\\` itself based on the value of \\`ngSrc\\`. ` +\n `To fix this, please remove the \\`src\\` attribute.`);\n }\n}\n/**\n * Verifies that there is no `srcset` set on a host element.\n */\nfunction assertNoConflictingSrcset(dir) {\n if (dir.srcset) {\n throw new ɵRuntimeError(2951 /* RuntimeErrorCode.UNEXPECTED_SRCSET_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`srcset\\` and \\`ngSrcset\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`srcset\\` itself based on the value of ` +\n `\\`ngSrcset\\`. To fix this, please remove the \\`srcset\\` attribute.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Base64-encoded image.\n */\nfunction assertNotBase64Image(dir) {\n let ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('data:')) {\n if (ngSrc.length > BASE64_IMG_MAX_LENGTH_IN_ERROR) {\n ngSrc = ngSrc.substring(0, BASE64_IMG_MAX_LENGTH_IN_ERROR) + '...';\n }\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`ngSrc\\` is a Base64-encoded string ` +\n `(${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a standard \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Blob URL.\n */\nfunction assertNotBlobUrl(dir) {\n const ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('blob:')) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrc\\` was set to a blob URL (${ngSrc}). ` +\n `Blob URLs are not supported by the NgOptimizedImage directive. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a regular \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the input is set to a non-empty string.\n */\nfunction assertNonEmptyInput(dir, name, value) {\n const isString = typeof value === 'string';\n const isEmptyString = isString && value.trim() === '';\n if (!isString || isEmptyString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${name}\\` has an invalid value ` +\n `(\\`${value}\\`). To fix this, change the value to a non-empty string.`);\n }\n}\n/**\n * Verifies that the `ngSrcset` is in a valid format, e.g. \"100w, 200w\" or \"1x, 2x\".\n */\nfunction assertValidNgSrcset(dir, value) {\n if (value == null)\n return;\n assertNonEmptyInput(dir, 'ngSrcset', value);\n const stringVal = value;\n const isValidWidthDescriptor = VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal);\n const isValidDensityDescriptor = VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);\n if (isValidDensityDescriptor) {\n assertUnderDensityCap(dir, stringVal);\n }\n const isValidSrcset = isValidWidthDescriptor || isValidDensityDescriptor;\n if (!isValidSrcset) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrcset\\` has an invalid value (\\`${value}\\`). ` +\n `To fix this, supply \\`ngSrcset\\` using a comma-separated list of one or more width ` +\n `descriptors (e.g. \"100w, 200w\") or density descriptors (e.g. \"1x, 2x\").`);\n }\n}\nfunction assertUnderDensityCap(dir, value) {\n const underDensityCap = value.split(',').every(num => num === '' || parseFloat(num) <= ABSOLUTE_SRCSET_DENSITY_CAP);\n if (!underDensityCap) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` contains an unsupported image density:` +\n `\\`${value}\\`. NgOptimizedImage generally recommends a max image density of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities ` +\n `greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for ` +\n `most use cases. Images that will be pinch-zoomed are typically the primary use case for ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`);\n }\n}\n/**\n * Creates a `RuntimeError` instance to represent a situation when an input is set after\n * the directive has initialized.\n */\nfunction postInitInputChangeError(dir, inputName) {\n return new ɵRuntimeError(2953 /* RuntimeErrorCode.UNEXPECTED_INPUT_CHANGE */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` was updated after initialization. ` +\n `The NgOptimizedImage directive will not react to this input change. ` +\n `To fix this, switch \\`${inputName}\\` a static value or wrap the image element ` +\n `in an *ngIf that is gated on the necessary value.`);\n}\n/**\n * Verify that none of the listed inputs has changed.\n */\nfunction assertNoPostInitInputChange(dir, changes, inputs) {\n inputs.forEach(input => {\n const isUpdated = changes.hasOwnProperty(input);\n if (isUpdated && !changes[input].isFirstChange()) {\n if (input === 'ngSrc') {\n // When the `ngSrc` input changes, we detect that only in the\n // `ngOnChanges` hook, thus the `ngSrc` is already set. We use\n // `ngSrc` in the error message, so we use a previous value, but\n // not the updated one in it.\n dir = { ngSrc: changes[input].previousValue };\n }\n throw postInitInputChangeError(dir, input);\n }\n });\n}\n/**\n * Verifies that a specified input is a number greater than 0.\n */\nfunction assertGreaterThanZero(dir, inputValue, inputName) {\n const validNumber = typeof inputValue === 'number' && inputValue > 0;\n const validString = typeof inputValue === 'string' && /^\\d+$/.test(inputValue.trim()) && parseInt(inputValue) > 0;\n if (!validNumber && !validString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` has an invalid value ` +\n `(\\`${inputValue}\\`). To fix this, provide \\`${inputName}\\` ` +\n `as a number greater than 0.`);\n }\n}\n/**\n * Verifies that the rendered image is not visually distorted. Effectively this is checking:\n * - Whether the \"width\" and \"height\" attributes reflect the actual dimensions of the image.\n * - Whether image styling is \"correct\" (see below for a longer explanation).\n */\nfunction assertNoImageDistortion(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n // TODO: `clientWidth`, `clientHeight`, `naturalWidth` and `naturalHeight`\n // are typed as number, but we run `parseFloat` (which accepts strings only).\n // Verify whether `parseFloat` is needed in the cases below.\n const renderedWidth = parseFloat(img.clientWidth);\n const renderedHeight = parseFloat(img.clientHeight);\n const renderedAspectRatio = renderedWidth / renderedHeight;\n const nonZeroRenderedDimensions = renderedWidth !== 0 && renderedHeight !== 0;\n const intrinsicWidth = parseFloat(img.naturalWidth);\n const intrinsicHeight = parseFloat(img.naturalHeight);\n const intrinsicAspectRatio = intrinsicWidth / intrinsicHeight;\n const suppliedWidth = dir.width;\n const suppliedHeight = dir.height;\n const suppliedAspectRatio = suppliedWidth / suppliedHeight;\n // Tolerance is used to account for the impact of subpixel rendering.\n // Due to subpixel rendering, the rendered, intrinsic, and supplied\n // aspect ratios of a correctly configured image may not exactly match.\n // For example, a `width=4030 height=3020` image might have a rendered\n // size of \"1062w, 796.48h\". (An aspect ratio of 1.334... vs. 1.333...)\n const inaccurateDimensions = Math.abs(suppliedAspectRatio - intrinsicAspectRatio) > ASPECT_RATIO_TOLERANCE;\n const stylingDistortion = nonZeroRenderedDimensions &&\n Math.abs(intrinsicAspectRatio - renderedAspectRatio) > ASPECT_RATIO_TOLERANCE;\n if (inaccurateDimensions) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match ` +\n `the aspect ratio indicated by the width and height attributes. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${suppliedAspectRatio}). ` +\n `\\nTo fix this, update the width and height attributes.`));\n }\n else if (stylingDistortion) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image ` +\n `does not match the image's intrinsic aspect ratio. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${renderedAspectRatio}). \\nThis issue can occur if \"width\" and \"height\" ` +\n `attributes are added to an image without updating the corresponding ` +\n `image styling. To fix this, adjust image styling. In most cases, ` +\n `adding \"height: auto\" or \"width: auto\" to the image styling will fix ` +\n `this issue.`));\n }\n else if (!dir.ngSrcset && nonZeroRenderedDimensions) {\n // If `ngSrcset` hasn't been set, sanity check the intrinsic size.\n const recommendedWidth = RECOMMENDED_SRCSET_DENSITY_CAP * renderedWidth;\n const recommendedHeight = RECOMMENDED_SRCSET_DENSITY_CAP * renderedHeight;\n const oversizedWidth = (intrinsicWidth - recommendedWidth) >= OVERSIZED_IMAGE_TOLERANCE;\n const oversizedHeight = (intrinsicHeight - recommendedHeight) >= OVERSIZED_IMAGE_TOLERANCE;\n if (oversizedWidth || oversizedHeight) {\n console.warn(ɵformatRuntimeError(2960 /* RuntimeErrorCode.OVERSIZED_IMAGE */, `${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly ` +\n `larger than necessary. ` +\n `\\nRendered image size: ${renderedWidth}w x ${renderedHeight}h. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. ` +\n `\\nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. ` +\n `\\nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image ` +\n `or consider using the \"ngSrcset\" and \"sizes\" attributes.`));\n }\n }\n });\n}\n/**\n * Verifies that a specified input is set.\n */\nfunction assertNonEmptyWidthAndHeight(dir) {\n let missingAttributes = [];\n if (dir.width === undefined)\n missingAttributes.push('width');\n if (dir.height === undefined)\n missingAttributes.push('height');\n if (missingAttributes.length > 0) {\n throw new ɵRuntimeError(2954 /* RuntimeErrorCode.REQUIRED_INPUT_MISSING */, `${imgDirectiveDetails(dir.ngSrc)} these required attributes ` +\n `are missing: ${missingAttributes.map(attr => `\"${attr}\"`).join(', ')}. ` +\n `Including \"width\" and \"height\" attributes will prevent image-related layout shifts. ` +\n `To fix this, include \"width\" and \"height\" attributes on the image tag.`);\n }\n}\n/**\n * Verifies that the `loading` attribute is set to a valid input &\n * is not used on priority images.\n */\nfunction assertValidLoadingInput(dir) {\n if (dir.loading && dir.priority) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `was used on an image that was marked \"priority\". ` +\n `Setting \\`loading\\` on priority images is not allowed ` +\n `because these images will always be eagerly loaded. ` +\n `To fix this, remove the “loading” attribute from the priority image.`);\n }\n const validInputs = ['auto', 'eager', 'lazy'];\n if (typeof dir.loading === 'string' && !validInputs.includes(dir.loading)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `has an invalid value (\\`${dir.loading}\\`). ` +\n `To fix this, provide a valid value (\"lazy\", \"eager\", or \"auto\").`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_LOADER, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf as NgFor, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgOptimizedImage, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PRECONNECT_CHECK_BLOCKLIST, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, provideCloudflareLoader, provideCloudinaryLoader, provideImageKitLoader, provideImgixLoader, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v14.2.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertValidHeaders(headers);\n }\n this.headers = new Map();\n Object.keys(headers).forEach(name => {\n let values = headers[name];\n const key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n this.headers.set(key, values);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or override for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n/**\n * Verifies that the headers object has the right shape: the values\n * must be either strings or arrays. Throws an error if an invalid\n * header value is present.\n */\nfunction assertValidHeaders(headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (typeof value !== 'string' && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string or an array, but got: \\`${value}\\`.`);\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => { var _a; return (_a = STANDARD_ENCODING_REPLACEMENTS[t]) !== null && _a !== void 0 ? _a : s; });\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n // convert the values to strings\n const values = Array.isArray(value) ? value.map(valueToString) : [valueToString(value)];\n this.map.set(key, values);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest, delegate: HttpHandler): Observable> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n var _a;\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = (_a = update.context) !== null && _a !== void 0 ? _a : this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* HttpStatusCode.Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nclass HttpInterceptorHandler {\n constructor(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n handle(req) {\n return this.interceptor.intercept(req, this.next);\n }\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nclass NoopInterceptor {\n intercept(req, next) {\n return next.handle(req);\n }\n}\nNoopInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NoopInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NoopInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NoopInterceptor, decorators: [{\n type: Injectable\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending