{"mappings":"ICkII,EAjFE,EACA,EACA,E,S,E,C,E,O,G,E,U,C,E,O,C,C,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,IkBgiBA,EEiKA,ESvuBA,EF6mBA,EACA,EACA,EAuCA,EACA,ECvpBA,E,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,I,E,C,E1BbN,EAAiB,KAAK,KAAA,CAAM,sqQ,I,E,C,ECA5B,EAAiB,6l4gB,I,E,C,ECAjB,EAAiB,KAAK,KAAA,CAAM,6uP,I,E,C,EHqC5B,eAAe,EACb,CAA0B,CAC1B,CAAW,CACX,CAAiC,EAEjC,IAAM,EAAQ,IAAI,KAClB,CAAA,EAAM,GAAA,CAAM,EACZ,MAAM,EAAM,MAAZ,GAEA,IAAM,EAAU,EAAG,aAAnB,GAEA,GAAI,CAAC,EACH,MAAM,AAAI,MAAM,4BAmBlB,OAhBA,EAAG,WAAA,CAAY,EAAG,UAAA,CAAY,GAC9B,EAAG,WAAA,CAAY,EAAG,gBAAA,CAAkB,GACpC,EAAG,WAAA,CAAY,EAAG,kCAAA,CAAoC,EAAG,IAAzD,EAEI,GAAU,WACZ,QAAQ;AACR,EAAG,aAAA,CAAc,EAAG,UAAA,CAAY,EAAG,cAAA,CAAgB,EAAG,aAAtD,EACA,EAAG,aAAA,CAAc,EAAG,UAAA,CAAY,EAAG,cAAA,CAAgB,EAAG,aAAtD,GAGF,SAAS;AACT,EAAG,WAAA,CAAY,EAAG,mBAAA,CAAqB,GAEvC,EAAG,UAAA,CAAW,EAAG,UAAA,CAAY,EAAG,EAAG,IAAA,CAAM,EAAG,IAAA,CAAM,EAAG,aAAA,CAAe,GACpE,EAAG,cAAA,CAAe,EAAG,UAArB,EAEO,CACT,CAEA,eAAe,EAAS,CAAA,GACtB,CAAE,CAAA,YACF,CAAW,CAAA,WACX,CAAU,CAAA,GACV,CAAE,CAAA,MACF,CAAK,CAON,EACC,aAAa;AACb,IAAM,EAAQ,IAAI,KAClB,CAAA,EAAM,GAAA,CAAM,EACZ,MAAM,EAAM,MAAZ,GAEA,IAAM,EAAU,EAAG,aAAnB,GAEA,GAAI,CAAC,EACH,MAAM,AAAI,MAAM,4BAalB,mCAAmC;AAEnC,OAZA,EAAG,WAAA,CAAY,EAAG,UAAA,CAAY,GAC9B,QAAQ;AACR,EAAG,aAAA,CAAc,EAAG,UAAA,CAAY,EAAG,cAAA,CAAgB,EAAG,aAAtD,EACA,EAAG,aAAA,CAAc,EAAG,UAAA,CAAY,EAAG,cAAA,CAAgB,EAAG,aAAtD,EACA,wBAAwB;AACxB,EAAG,aAAA,CAAc,EAAG,UAAA,CAAY,EAAG,kBAAA,CAAoB,EAAG,MAA1D,EACA,EAAG,aAAA,CAAc,EAAG,UAAA,CAAY,EAAG,kBAAA,CAAoB,EAAG,MAA1D,EACA,EAAG,WAAA,CAAY,EAAG,gBAAA,CAAkB,GACpC,EAAG,WAAA,CAAY,EAAG,kCAAA,CAAoC,EAAG,IAAzD,EACA,EAAG,UAAA,CAAW,EAAG,UAAA,CAAY,EAAG,EAAG,IAAA,CAAM,EAAG,IAAA,CAAM,EAAG,aAAA,CAAe,GAG7D,CACL,YAAA,EACA,QAAA,EACA,GAAA,EACA,MAAA,CACF,CACF,CA2EA,SAAS,EAAW,CAAA,GAClB,CAAE,CACF,KAAM,CAAQ,CAAA,YACd,CAAW,CAAA,WACX,CAAU,CAAA,MACV,CAAK,CAON,EACC,OAAO,MAAO,EAAO,KACnB,IAAM,EAAO,MAAM,EAAS,CAAE,GAAA,EAAI,YAAA,EAAa,WAAA,EAAY,GAAA,EAAI,MAAA,CAAM,EACrE,CAAA,EAAM,KAAA,CAAQ,EAAM,KAAA,EAAS,CAAC,EAC9B,EAAM,KAAK,CAAC,EAAS,CAAG,CAC1B,CACF,CAEA,SAAS,EACP,CAA0C,CAC1C,CAAQ,CACR,CAAiC,EAEjC,OAAO,MAAO,EAAO,KACnB,IAAM,EAAU,MAAM,EAAY,EAAW,EAAI,IAAA,CAAM,EACvD,CAAA,EAAM,QAAA,CAAW,EAAM,QAAA,EAAY,CAAC,EACpC,EAAM,QAAQ,CAAC,EAAY,CAAG,CAChC,CACF,CAEA,eAAe,EACb,CAA+B,CAC/B,CAAiC,EAEjC,IAAM,EAAQ,AA7GT,SACL,CAAiC,MKpHN,EAAW,EAAW,EAAW,ELuH5D,IAAM,EAAO,IAAI,WAAW,QAEtB,GKzHqB,ELyHF,WKzHa,ELyHD,WKzHY,ELyHA,WKzHW,ELyHC,UKxHtD,KACL,IAAI,EAAI,GAAK,EACX,EAAI,AAAI,EAAJ,EAQN,OAPA,EAAK,AAAC,CAAA,GAAK,EAAM,IAAM,EAAA,EAAO,EAC9B,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,EAAI,GAAM,GAAO,IAAM,GAChB,AAAC,CAAA,IAAM,CAAA,EAAK,UACrB,GL+GA,IAAK,IAAI,EAAI,EAAG,EAAI,OAAiB,IACnC,CAAI,CAAC,EAAE,CAAG,KAAK,KAAA,CAAM,AAAQ,IAAR,KAGvB,IAAM,EAAU,EAAU,aAA1B,GAEA,GAAI,CAAC,EACH,MAAM,AAAI,MAAM,4BA8ClB,OA3CA,EAAU,WAAA,CAAY,EAAU,UAAA,CAAY,GAC5C,SAAS;AACT,EAAU,aAAA,CACR,EAAU,UAAA,CACV,EAAU,cAAA,CACV,EAAU,MAHZ,EAKA,EAAU,aAAA,CACR,EAAU,UAAA,CACV,EAAU,cAAA,CACV,EAAU,MAHZ,EAKA,uBAAuB;AACvB,EAAU,aAAA,CACR,EAAU,UAAA,CACV,EAAU,kBAAA,CACV,EAAU,MAHZ,EAKA,EAAU,aAAA,CACR,EAAU,UAAA,CACV,EAAU,kBAAA,CACV,EAAU,oBAHZ,EAMA,EAAU,WAAA,CAAY,EAAU,gBAAA,CAAkB,GAClD,EAAU,WAAA,CACR,EAAU,kCAAA,CACV,EAAU,IAFZ,EAIA,EAAU,UAAA,CACR,EAAU,UAAA,CACV,EACA,EAAU,IAAA,CA/CC,IAAA,IAkDX,EACA,EAAU,IAAA,CACV,EAAU,aAAA,CACV,GAGF,EAAU,cAAA,CAAe,EAAU,UAAnC,EAEO,CACT,EA+C2C,EACzC,CAAA,EAAM,QAAA,CAAW,EAAM,QAAA,EAAY,CAAC,EACpC,EAAM,QAAA,CAAS,KAAA,CAAQ,CACzB,CInOA,EAAiB,+ppF,I,E,C,EEAjB,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,G,I,E,C,ECAA,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,G,I,E,C,ECAA,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,G,I,E,C,ECAA,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,G,I,E,C,ECAA,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,G,I,E,C,ECAA,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,G,I,E,C,ECAA,EAAiB,IAAA,IAAoB,AAAA,EAAA,SAAA,OAAA,CAA6C,SAAA,YAAA,GAAA,EAAU,QAA5F,GZqOA,MAAM,EAAS,CACb,EAAW,CACT,GAAI,EACJ,KAAM,QACN,YAAa,EACb,WAAY,WAAA,EAAA,EAAA,GACZ,MAAO,IACT,GACA,EAAW,CACT,GAAI,EACJ,KAAM,WACN,YAAa,EACb,WAAY,WAAA,EAAA,EAAA,GACZ,MAAO,IACT,GACA,EAAc,QAAd,IAAA,IAAA,IACA,EACE,cADF,IAAA,IAAA,IAIA,EACE,WADF,IAAA,IAAA,IAIA,EACE,WADF,IAAA,IAAA,IAIA,EACE,aADF,IAAA,IAAA,IAIA,EAAc,UAAd,IAAA,IAAA,IACA,EAAc,MAAA,IAAA,IAAA,GAAqD,CACjE,SAAU,CAAA,CACZ,GACA,EACD,CAEY,EAAe,EAAO,MAA5B,CAEA,eAAe,EACpB,CAAiC,CACjC,CAAuD,EAEvD,IAAI,EAAY,EAEV,EAAkB,AAAI,IAE1B,EACE,EAAA,EAAY,EACZ,CAAC,aAAa,EAAE,EAAU,CAAC,EAAE,EAAa,CAAC,EAEtC,GAGL,EAAkC,CAAC,EACjC,EAAW,EAAO,GAAA,CAAI,AAAC,GAC3B,EAAO,EAAO,GAAW,IAAA,CAAK,IAKhC,OAFA,MAAM,QAAQ,GAAA,CAAI,GAEX,CACT,CcnSO,SAAS,EACd,CAA0B,CAC1B,CAA0B,CAC1B,CAA4B,CAC5B,CAAY,EAEZ,IAAM,EAAe,EAAG,YAAA,CAAa,EAAG,aAAxC,EACM,EAAiB,EAAG,YAAA,CAAa,EAAG,eAA1C,EAEA,GAAI,CAAC,GAAgB,CAAC,EACpB,MAAM,AAAI,MAAM,4BAGlB,EAAG,YAAA,CAAa,EAAc,GAE9B,EAAG,YAAA,CAAa,EAAgB,GAEhC,EAAG,aAAA,CAAc,GACjB,EAAG,aAAA,CAAc,EAEjB;;;;;;;;;;;;;;;;;;;;;;GAsBC,EAED,IAAM,EAAU,EAAG,aAFlB,GAID,GAAI,CAAC,EACH,MAAM,AAAI,MAAM,CAAC,6BAA6B,EAAE,EAAK,CAAC,EAQxD,GALA,EAAG,YAAA,CAAa,EAAS,GACzB,EAAG,YAAA,CAAa,EAAS,GAEzB,EAAG,WAAA,CAAY,GAEX,CAAC,EAAG,mBAAA,CAAoB,EAAS,EAAG,WAAA,EAAc,CACpD,IAAM,EAAM,EAAG,iBAAA,CAAkB,GAE3B,EAAkB,EAAG,gBAAA,CAAiB,GACtC,EAAoB,EAAG,gBAAA,CAAiB,EAQ9C,OANA,QAAQ,IAAA,CAAK,CACX,IAAA,EACA,gBAAA,EACA,kBAAA,CACF,GAEM,AAAI,MACR,CAAC,2BAA2B,EAAE,EAAK,EAAE,EAAE,EAAG,iBAAA,CAAkB,GAAS,CAAC,CAE1E,CAEA,OAAO,CACT,CAEO,SAAS,EAAmB,CAA0B,EAC3D,IAAM,EAAiB,EAAG,YAA1B,GAEA,GAAI,CAAC,EACH,MAAM,AAAI,MAAM,kCAGlB,EAAG,UAAA,CAAW,EAAG,YAAA,CAAc,GAI/B,EAAG,UAAA,CAAW,EAAG,YAAA,CAAc,IAAI,aAFjB,CAAC,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAE,EAEc,EAAG,WAA/D,EAEO,CACT,CAEO,SAAS,EACd,CAA0B,CAC1B,CAA8B,CAC9B,CAAW,EAEX,EAAG,SAAA,CAAU,EAAU,CAAK,CAAC,EAAE,CAAE,CAAK,CAAC,EAAE,CAAE,CAAK,CAAC,EAAE,CACrD,CD9FO,MAAM,EACX,YACkB,CAAA,CACC,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACjB,CAXgB,IAAA,CAAA,EAAA,CAAA,EACC,IAAA,CAAA,OAAA,CAAA,EACA,IAAA,CAAA,kBAAA,CAAA,EACA,IAAA,CAAA,eAAA,CAAA,EACA,IAAA,CAAA,iBAAA,CAAA,EACA,IAAA,CAAA,WAAA,CAAA,EACA,IAAA,CAAA,eAAA,CAAA,EACA,IAAA,CAAA,gBAAA,CAAA,EACA,IAAA,CAAA,kBAAA,CAAA,EACA,IAAA,CAAA,gBAAA,CAAA,EACA,IAAA,CAAA,iBAAA,CAAA,CAChB,CAEH,OAAc,OAAO,CAA0B,CAAc,CAC3D,IAAM,EAAiB,AAAA,EACrB,EAAA,oaAAA,i4DAGA,YAEI,EAAkB,EAAG,kBAAA,CAAmB,EAAgB,WACxD,EAAyB,EAAG,kBAAA,CAChC,EACA,cAEI,EAAwB,EAAG,kBAAA,CAC/B,EACA,aAEI,EAAkB,EAAG,kBAAA,CAAmB,EAAgB,OAExD,EAAkB,EAAG,kBAAA,CAAmB,EAAgB,WAExD,EAAmB,EAAG,kBAAA,CAAmB,EAAgB,YAEzD,EAAqB,EAAG,kBAAA,CAC5B,EACA,cAGI,EAAmB,EAAG,kBAAA,CAAmB,EAAgB,YAEzD,EAAoB,EAAG,kBAAA,CAC3B,EACA,aAGF,OAAO,IAAI,EACT,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEJ,CAEO,IAAI,CAAA,IACT,CAAG,CAAA,WACH,CAAU,CAAA,UACV,CAAS,CAAA,QACT,CAAO,CAAA,SACP,EAAW,CAAA,CAAA,WACX,EAAa,CAAA,CAAA,KACb,CAAI,CAAA,MACJ,EAAQ,CAAC,EAAG,EAAG,EAAE,CAUlB,CAAE,CACD,IAAI,CAAC,EAAA,CAAG,UAAA,CAAW,IAAI,CAAC,OAAxB,EACA,IAAI,CAAC,EAAA,CAAG,aAAA,CAAc,IAAI,CAAC,EAAA,CAAG,QAA9B,EAEA,IAAI,CAAC,EAAA,CAAG,SAAA,CAAU,IAAI,CAAC,eAAA,CAAiB,GACxC,IAAI,CAAC,EAAA,CAAG,UAAA,CAAW,IAAI,CAAC,kBAAA,CAAoB,GAC5C,IAAI,CAAC,EAAA,CAAG,gBAAA,CAAiB,IAAI,CAAC,iBAAA,CAAmB,CAAA,EAAO,GACxD,IAAI,CAAC,EAAA,CAAG,SAAA,CAAU,IAAI,CAAC,WAAA,CAAa,GACpC,IAAI,CAAC,EAAA,CAAG,SAAA,CAAU,IAAI,CAAC,eAAA,CAAiB,GACxC,IAAI,CAAC,EAAA,CAAG,SAAA,CAAU,IAAI,CAAC,gBAAA,CAAkB,GACzC,IAAI,CAAC,EAAA,CAAG,SAAA,CAAU,IAAI,CAAC,kBAAA,CAAoB,GAC3C,IAAI,CAAC,EAAA,CAAG,UAAA,CAAW,IAAI,CAAC,gBAAA,CAAkB,EAAK,EAA/C,EACA,IAAI,CAAC,EAAA,CAAG,UAAA,CAAW,IAAI,CAAC,iBAAA,CAAmB,EAC7C,CAEO,SAAU,CACf,IAAI,CAAC,EAAA,CAAG,aAAA,CAAc,IAAI,CAAC,OAA3B,CACF,CACF,C,I,E,C,E,E,E,S,I,G,E,E,Q,I,G,E,E,a,I,G,E,E,O,I,G,E,E,M,I,G,E,E,M,I,G,E,E,W,I,G,E,E,W,I,G,E,E,S,I,G,E,E,O,I,I,E,E,Q,I,I,E,E,M,I,I,E,E,M,I,I,E,E,Q,I,I,E,E,Q,I,I,E,E,c,I,I,E,E,W,I,I,E,E,kB,I,I,E,E,S,I,I,E,E,gB,I,I,E,E,S,I,I,E,E,U,I,I,E,E,Y,I,I,E,E,M,I,I,E,E,Q,I,I,E,E,O,I,I,E,E,S,I,I,E,E,gB,I,I,E,E,iB,I,I,E,E,gB,I,I,E,E,gB,I,I,E,E,S,I,I,E,E,Q,I,I,E,E,O,I,I,E,E,M,I,I,E,E,c,I,I,E,E,S,I,I,E,E,M,I,I,E,E,M,I,I,E,E,M,I,I,E,E,M,I,I,E,E,O,I,I,E,E,U,I,I,E,E,S,I,I,E,E,U,I,IKnGO,IAAI,EAAa,AAAwB,aAAxB,OAAO,aAA+B,aAAe,MAClE,EAAS,KAAK,MAAlB,CDKA,SAAS,IACd,IAAI,EAAM,IAAI,EAAoB,GAOlC,OALI,GAAuB,eACzB,CAAG,CAAC,EAAE,CAAG,EACT,CAAG,CAAC,EAAE,CAAG,GAGJ,CACT,CA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CAAC,EAAE,CACT,EAAK,CAAC,CAAC,EAAE,CACT,EAAK,CAAC,CAAC,EAAE,CACT,EAAK,CAAC,CAAC,EAAE,CACT,EAAK,CAAC,CAAC,EAAE,CACT,EAAK,CAAC,CAAC,EAAE,CACb,OAAO,KAAK,GAAA,CAAI,EAAK,IAAO,ADrrBT,KCqrB4B,KAAK,GAAA,CAAI,EAAK,KAAK,GAAA,CAAI,GAAK,KAAK,GAAA,CAAI,KAAQ,KAAK,GAAA,CAAI,EAAK,IAAO,ADrrB9F,KCqrBiH,KAAK,GAAA,CAAI,EAAK,KAAK,GAAA,CAAI,GAAK,KAAK,GAAA,CAAI,KAAQ,KAAK,GAAA,CAAI,EAAK,IAAO,ADrrBnL,KCqrBsM,KAAK,GAAA,CAAI,EAAK,KAAK,GAAA,CAAI,GAAK,KAAK,GAAA,CAAI,GAChQ,C,E,G,S,I,I,E,G,Q,I,I,E,G,S,I,I,E,G,a,I,I,E,G,O,I,I,E,G,M,I,I,E,G,M,I,I,E,G,W,I,I,E,G,W,I,I,E,G,S,I,I,E,G,O,I,I,E,G,Q,I,I,E,G,M,I,I,E,G,M,I,I,E,G,Q,I,I,E,G,Q,I,I,E,G,c,I,I,E,G,W,I,I,E,G,kB,I,I,E,G,gB,I,I,E,G,S,I,I,E,G,U,I,I,E,G,Y,I,I,E,G,M,I,I,E,G,Q,I,I,E,G,O,I,I,E,G,U,I,I,E,G,S,I,I,E,G,S,I,I,E,G,gB,I,I,E,G,gB,I,I,E,G,gB,I,I,E,G,U,I,I,E,G,U,I,I,E,G,U,I,I,E,G,Q,I,I,E,G,O,I,I,E,G,M,I,I,E,G,c,I,I,E,G,S,I,I,E,G,M,I,I,E,G,M,I,I,E,G,M,I,I,E,G,O,I,I,E,G,U,I,I,E,G,M,I,I,E,G,S,I,I,E,G,U,I,IAMO,IAAI,GAAM,GAMN,GAAM,GAMN,GAAM,GAMN,GAAO,GAMP,GAAU,GAMV,GAAM,GAMN,GAAS,GAcT,IACL,EAAM,KACH,SAAU,CAAC,CAAE,CAAM,CAAE,CAAM,CAAE,CAAK,CAAE,CAAE,CAAE,CAAG,EAChD,IAAI,EAAG,EAgBP,IAdK,GACH,CAAA,EAAS,CAAA,EAGN,GACH,CAAA,EAAS,CAAA,EAIT,EADE,EACE,KAAK,GAAA,CAAI,EAAQ,EAAS,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","sources":["","src/index.ts","src/loader.ts","src/armonela72.json","node_modules/@parcel/runtime-js/lib/bundles/runtime-eaa8e0c2de6a14d0.js","src/novarese.json","node_modules/@parcel/runtime-js/lib/bundles/runtime-8387266160571923.js","src/random.ts","node_modules/@parcel/runtime-js/lib/runtime-5b1a31af6ca9529d.js","node_modules/@parcel/runtime-js/lib/runtime-e443d6d4acefdf5d.js","node_modules/@parcel/runtime-js/lib/runtime-9d5d485f6afb42da.js","node_modules/@parcel/runtime-js/lib/runtime-f8d134658c95a27a.js","node_modules/@parcel/runtime-js/lib/runtime-acb4c169cb9c24b2.js","node_modules/@parcel/runtime-js/lib/runtime-3b3c0d4bdf281102.js","node_modules/@parcel/runtime-js/lib/runtime-f68c9e00987cccba.js","src/rendering/TextShader.ts","src/gl.ts","node_modules/@parcel/node-resolver-core/lib/_empty.js","src/sequencer.ts","node_modules/gl-matrix/esm/vec2.js","node_modules/gl-matrix/esm/common.js","node_modules/gl-matrix/esm/vec3.js","src/interpolation.ts","src/Text.ts","src/sdfText.ts","src/generateTextMesh.ts","src/Transformation.ts","node_modules/gl-matrix/esm/mat4.js","node_modules/gl-matrix/esm/quat.js","node_modules/gl-matrix/esm/mat3.js","node_modules/gl-matrix/esm/vec4.js","src/vector.ts","src/math.ts","src/util.ts","src/rendering/createPostEffectsPipeline.ts","src/rendering/PostEffectsPipeline.ts","src/rendering/PostEffect.ts","src/rendering/Quad.ts","src/rendering/FadePostEffect.ts","src/rendering/BloomAddPostEffect.ts","src/rendering/scenes/MainShader.ts","src/rendering/scenes/SDFQuad.ts","src/rendering/TextureUniform.ts","src/rendering/Uniform.ts","src/rendering/scenes/IntroShader.ts","src/scenes/timeline.ts","src/scenes/introScene.ts","src/PieceFn.ts","src/scenes/mainScene.ts","src/CameraPath.ts","src/catmullRom.ts","src/scenes/outroScene.ts","src/rendering/scenes/MacaroniFactoryShader.ts","src/rendering/scenes/OutroShader.ts","src/rendering/scenes/MachineShader.ts","src/rendering/scenes/MacaroniBoxShader.ts","src/rendering/scenes/TesseractShader.ts","src/rendering/scenes/LasagaShader.ts","node_modules/@parcel/runtime-js/lib/runtime-f7e99829550307f2.js"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $parcel$global =\ntypeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirebdaf\"];\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirebdaf\"] = parcelRequire;\n}\nvar $3a5376079691bbe6$exports = {};\n$3a5376079691bbe6$exports = JSON.parse('{\"name\":\"Armonela Black\",\"size\":256,\"bold\":false,\"italic\":false,\"width\":3068,\"height\":927,\"characters\":{\"0\":{\"x\":1345,\"y\":662,\"width\":131,\"height\":186,\"originX\":4,\"originY\":166,\"advance\":129},\"1\":{\"x\":1855,\"y\":662,\"width\":96,\"height\":186,\"originX\":5,\"originY\":166,\"advance\":92},\"2\":{\"x\":1079,\"y\":662,\"width\":134,\"height\":186,\"originX\":8,\"originY\":166,\"advance\":130},\"3\":{\"x\":689,\"y\":662,\"width\":124,\"height\":188,\"originX\":4,\"originY\":166,\"advance\":122},\"4\":{\"x\":934,\"y\":662,\"width\":145,\"height\":186,\"originX\":7,\"originY\":166,\"advance\":136},\"5\":{\"x\":813,\"y\":662,\"width\":121,\"height\":188,\"originX\":5,\"originY\":167,\"advance\":123},\"6\":{\"x\":1476,\"y\":662,\"width\":129,\"height\":186,\"originX\":4,\"originY\":166,\"advance\":131},\"7\":{\"x\":1605,\"y\":662,\"width\":125,\"height\":186,\"originX\":4,\"originY\":166,\"advance\":125},\"8\":{\"x\":1213,\"y\":662,\"width\":132,\"height\":186,\"originX\":10,\"originY\":166,\"advance\":123},\"9\":{\"x\":1730,\"y\":662,\"width\":125,\"height\":186,\"originX\":5,\"originY\":166,\"advance\":120},\" \":{\"x\":479,\"y\":864,\"width\":12,\"height\":12,\"originX\":6,\"originY\":6,\"advance\":68},\"!\":{\"x\":577,\"y\":0,\"width\":81,\"height\":242,\"originX\":-7,\"originY\":204,\"advance\":80},\"\\\\\"\":{\"x\":2816,\"y\":662,\"width\":83,\"height\":85,\"originX\":-11,\"originY\":179,\"advance\":104},\"#\":{\"x\":558,\"y\":662,\"width\":131,\"height\":189,\"originX\":1,\"originY\":179,\"advance\":128},\"$\":{\"x\":1105,\"y\":0,\"width\":114,\"height\":215,\"originX\":-8,\"originY\":190,\"advance\":128},\"%\":{\"x\":351,\"y\":662,\"width\":207,\"height\":192,\"originX\":-3,\"originY\":179,\"advance\":213},\"&\":{\"x\":933,\"y\":0,\"width\":172,\"height\":215,\"originX\":4,\"originY\":191,\"advance\":159},\"\\'\":{\"x\":2708,\"y\":662,\"width\":54,\"height\":87,\"originX\":-7,\"originY\":196,\"advance\":67},\"(\":{\"x\":393,\"y\":0,\"width\":81,\"height\":245,\"originX\":-5,\"originY\":184,\"advance\":85},\")\":{\"x\":474,\"y\":0,\"width\":81,\"height\":245,\"originX\":0,\"originY\":184,\"advance\":85},\"*\":{\"x\":2481,\"y\":662,\"width\":104,\"height\":116,\"originX\":-12,\"originY\":184,\"advance\":128},\"+\":{\"x\":2000,\"y\":662,\"width\":147,\"height\":147,\"originX\":1,\"originY\":158,\"advance\":144},\",\":{\"x\":2762,\"y\":662,\"width\":54,\"height\":87,\"originX\":-7,\"originY\":50,\"advance\":67},\"-\":{\"x\":257,\"y\":864,\"width\":77,\"height\":31,\"originX\":-4,\"originY\":73,\"advance\":85},\".\":{\"x\":0,\"y\":864,\"width\":59,\"height\":63,\"originX\":-7,\"originY\":33,\"advance\":72},\"/\":{\"x\":183,\"y\":662,\"width\":84,\"height\":193,\"originX\":6,\"originY\":184,\"advance\":71},\":\":{\"x\":2441,\"y\":662,\"width\":40,\"height\":133,\"originX\":-16,\"originY\":124,\"advance\":71},\";\":{\"x\":1951,\"y\":662,\"width\":49,\"height\":173,\"originX\":-12,\"originY\":124,\"advance\":71},\"<\":{\"x\":2147,\"y\":662,\"width\":147,\"height\":135,\"originX\":1,\"originY\":152,\"advance\":144},\"=\":{\"x\":2899,\"y\":662,\"width\":147,\"height\":63,\"originX\":1,\"originY\":116,\"advance\":144},\">\":{\"x\":2294,\"y\":662,\"width\":147,\"height\":135,\"originX\":1,\"originY\":152,\"advance\":144},\"?\":{\"x\":658,\"y\":0,\"width\":141,\"height\":237,\"originX\":-7,\"originY\":200,\"advance\":145},\"@\":{\"x\":0,\"y\":0,\"width\":229,\"height\":245,\"originX\":-6,\"originY\":184,\"advance\":236},\"A\":{\"x\":1868,\"y\":454,\"width\":148,\"height\":205,\"originX\":4,\"originY\":186,\"advance\":142},\"B\":{\"x\":548,\"y\":454,\"width\":154,\"height\":207,\"originX\":8,\"originY\":187,\"advance\":147},\"C\":{\"x\":2741,\"y\":0,\"width\":141,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":126},\"D\":{\"x\":2164,\"y\":454,\"width\":152,\"height\":204,\"originX\":10,\"originY\":183,\"advance\":144},\"E\":{\"x\":2468,\"y\":454,\"width\":151,\"height\":203,\"originX\":10,\"originY\":182,\"advance\":130},\"F\":{\"x\":1650,\"y\":245,\"width\":151,\"height\":208,\"originX\":-2,\"originY\":185,\"advance\":130},\"G\":{\"x\":2153,\"y\":0,\"width\":150,\"height\":210,\"originX\":1,\"originY\":190,\"advance\":146},\"H\":{\"x\":2453,\"y\":0,\"width\":144,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":123},\"I\":{\"x\":0,\"y\":454,\"width\":110,\"height\":208,\"originX\":5,\"originY\":186,\"advance\":97},\"J\":{\"x\":968,\"y\":245,\"width\":171,\"height\":208,\"originX\":6,\"originY\":187,\"advance\":141},\"K\":{\"x\":2250,\"y\":245,\"width\":147,\"height\":208,\"originX\":6,\"originY\":185,\"advance\":130},\"L\":{\"x\":2832,\"y\":245,\"width\":118,\"height\":208,\"originX\":4,\"originY\":188,\"advance\":113},\"M\":{\"x\":360,\"y\":245,\"width\":170,\"height\":209,\"originX\":5,\"originY\":189,\"advance\":154},\"N\":{\"x\":856,\"y\":454,\"width\":154,\"height\":206,\"originX\":5,\"originY\":184,\"advance\":140},\"O\":{\"x\":1859,\"y\":0,\"width\":147,\"height\":211,\"originX\":2,\"originY\":189,\"advance\":137},\"P\":{\"x\":1219,\"y\":0,\"width\":160,\"height\":214,\"originX\":6,\"originY\":192,\"advance\":137},\"Q\":{\"x\":220,\"y\":454,\"width\":164,\"height\":207,\"originX\":0,\"originY\":188,\"advance\":163},\"R\":{\"x\":1379,\"y\":0,\"width\":160,\"height\":214,\"originX\":3,\"originY\":192,\"advance\":153},\"S\":{\"x\":2544,\"y\":245,\"width\":144,\"height\":208,\"originX\":5,\"originY\":189,\"advance\":135},\"T\":{\"x\":1310,\"y\":245,\"width\":170,\"height\":208,\"originX\":5,\"originY\":187,\"advance\":144},\"U\":{\"x\":1952,\"y\":245,\"width\":149,\"height\":208,\"originX\":3,\"originY\":186,\"advance\":132},\"V\":{\"x\":700,\"y\":245,\"width\":134,\"height\":209,\"originX\":-7,\"originY\":187,\"advance\":120},\"W\":{\"x\":1460,\"y\":454,\"width\":204,\"height\":205,\"originX\":2,\"originY\":185,\"advance\":194},\"X\":{\"x\":0,\"y\":245,\"width\":180,\"height\":209,\"originX\":3,\"originY\":187,\"advance\":155},\"Y\":{\"x\":1164,\"y\":454,\"width\":148,\"height\":206,\"originX\":3,\"originY\":186,\"advance\":137},\"Z\":{\"x\":2770,\"y\":454,\"width\":183,\"height\":202,\"originX\":9,\"originY\":184,\"advance\":168},\"[\":{\"x\":799,\"y\":0,\"width\":67,\"height\":236,\"originX\":-15,\"originY\":179,\"advance\":85},\"\\\\\\\\\":{\"x\":267,\"y\":662,\"width\":84,\"height\":193,\"originX\":6,\"originY\":184,\"advance\":71},\"]\":{\"x\":866,\"y\":0,\"width\":67,\"height\":236,\"originX\":-3,\"originY\":179,\"advance\":85},\"^\":{\"x\":2585,\"y\":662,\"width\":123,\"height\":102,\"originX\":1,\"originY\":179,\"advance\":120},\"_\":{\"x\":334,\"y\":864,\"width\":145,\"height\":23,\"originX\":8,\"originY\":-39,\"advance\":128},\"`\":{\"x\":59,\"y\":864,\"width\":53,\"height\":55,\"originX\":-9,\"originY\":180,\"advance\":85},\"a\":{\"x\":2016,\"y\":454,\"width\":148,\"height\":205,\"originX\":4,\"originY\":186,\"advance\":142},\"b\":{\"x\":702,\"y\":454,\"width\":154,\"height\":207,\"originX\":8,\"originY\":187,\"advance\":142},\"c\":{\"x\":2882,\"y\":0,\"width\":141,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":126},\"d\":{\"x\":2316,\"y\":454,\"width\":152,\"height\":204,\"originX\":10,\"originY\":183,\"advance\":148},\"e\":{\"x\":2619,\"y\":454,\"width\":151,\"height\":203,\"originX\":10,\"originY\":182,\"advance\":131},\"f\":{\"x\":1801,\"y\":245,\"width\":151,\"height\":208,\"originX\":9,\"originY\":185,\"advance\":119},\"g\":{\"x\":2303,\"y\":0,\"width\":150,\"height\":210,\"originX\":1,\"originY\":190,\"advance\":147},\"h\":{\"x\":2597,\"y\":0,\"width\":144,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":123},\"i\":{\"x\":110,\"y\":454,\"width\":110,\"height\":208,\"originX\":5,\"originY\":186,\"advance\":97},\"j\":{\"x\":1139,\"y\":245,\"width\":171,\"height\":208,\"originX\":6,\"originY\":187,\"advance\":141},\"k\":{\"x\":2397,\"y\":245,\"width\":147,\"height\":208,\"originX\":6,\"originY\":185,\"advance\":131},\"l\":{\"x\":2950,\"y\":245,\"width\":118,\"height\":208,\"originX\":4,\"originY\":188,\"advance\":110},\"m\":{\"x\":530,\"y\":245,\"width\":170,\"height\":209,\"originX\":5,\"originY\":189,\"advance\":154},\"n\":{\"x\":1010,\"y\":454,\"width\":154,\"height\":206,\"originX\":5,\"originY\":184,\"advance\":140},\"o\":{\"x\":2006,\"y\":0,\"width\":147,\"height\":211,\"originX\":2,\"originY\":189,\"advance\":137},\"p\":{\"x\":1539,\"y\":0,\"width\":160,\"height\":214,\"originX\":6,\"originY\":192,\"advance\":137},\"q\":{\"x\":384,\"y\":454,\"width\":164,\"height\":207,\"originX\":0,\"originY\":188,\"advance\":163},\"r\":{\"x\":1699,\"y\":0,\"width\":160,\"height\":214,\"originX\":3,\"originY\":192,\"advance\":153},\"s\":{\"x\":2688,\"y\":245,\"width\":144,\"height\":208,\"originX\":5,\"originY\":189,\"advance\":135},\"t\":{\"x\":1480,\"y\":245,\"width\":170,\"height\":208,\"originX\":5,\"originY\":187,\"advance\":145},\"u\":{\"x\":2101,\"y\":245,\"width\":149,\"height\":208,\"originX\":3,\"originY\":186,\"advance\":133},\"v\":{\"x\":834,\"y\":245,\"width\":134,\"height\":209,\"originX\":-7,\"originY\":187,\"advance\":121},\"w\":{\"x\":1664,\"y\":454,\"width\":204,\"height\":205,\"originX\":2,\"originY\":185,\"advance\":194},\"x\":{\"x\":180,\"y\":245,\"width\":180,\"height\":209,\"originX\":3,\"originY\":187,\"advance\":155},\"y\":{\"x\":1312,\"y\":454,\"width\":148,\"height\":206,\"originX\":3,\"originY\":186,\"advance\":137},\"z\":{\"x\":0,\"y\":662,\"width\":183,\"height\":202,\"originX\":9,\"originY\":184,\"advance\":169},\"{\":{\"x\":229,\"y\":0,\"width\":82,\"height\":245,\"originX\":-29,\"originY\":184,\"advance\":123},\"|\":{\"x\":555,\"y\":0,\"width\":22,\"height\":245,\"originX\":-14,\"originY\":184,\"advance\":51},\"}\":{\"x\":311,\"y\":0,\"width\":82,\"height\":245,\"originX\":-16,\"originY\":184,\"advance\":123},\"~\":{\"x\":112,\"y\":864,\"width\":145,\"height\":47,\"originX\":3,\"originY\":91,\"advance\":138}}}');\n\n\nvar $7f7c1492fb383103$exports = {};\n$7f7c1492fb383103$exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAC%2FwAAAOfCAAAAADqaXaWAAAAAXNSR0IArs4c6QAFtLtJREFUeNrsmE1r4zAQhh1VUkA1ojZRQMQR%2BGBqEkN8MG4OOZgU9lLY%2Ff%2F%2FZpGV7BCvofFHytDqudmnJ%2B9oRhMHHo%2FH4%2FF4PB6Px%2FMQCOO90ABA7c5I5xGd5I3izIJcxoDkwTAo5yKKLZHg9CHlmf9UEas8ikgQiG0kks%2BUDdJmg2ggrsdDR0bh%2FbzfrBB2nS5ySb3SXAOOEW91JxSBHwIfKBWCMIbJ4Icwt%2FepxPSi22GD91fSpXTuiRIL%2B2IhLo%2BoZuTTs0puFRP1%2FBTMxCLcZDsg24SLQQFqY9J8Z8lTo2PJyVwDYyl7j5Z2d9iUFYCtrPIo8nTFILahQMYTG%2B%2F%2FbDSKmx2igbi%2BaLPREAWCID7xG9IlPj%2FE%2BXUhXKrkOl0yoyPBGenc%2FYxgVMIE5SLqDrhE2QHHyI%2BxoiNKQ5fStQr4RYJ%2BA58xFySUCooViR5%2F%2FDL4ulMlbu8rqrc%2B6rIdNm6XZgTdkI61yZx7tTehfRmafftY2BkZR4KiWP3X6b66Vaz26Xqu9T80h9P5%2Fcr5dDDiTjER2QDL%2Bu3YvFuaY13usq2aaAZ%2FKrK%2Bo1WX7g6bUCCyeq2t8hia%2BnVlj7KA2AYAGU8KRyWQzU2zYdiL3ImCuNaP7aJ%2Fm01ZQxSZ0S88QEG%2F31bJ%2B%2F18fojz636n2WZFdWwujV6XeWr3HQl3P3xcwqeEZrPQJs27w78q7ICD5fGbWsG2qIeWhvAXbTLXKuCXp9DLOH3m%2F1bgLkgoFRQrTxPVvSLRyOCHsGsfFNVl7%2Fv408fvX3bYuF26PTKcIPo8s7V76%2Bncun80hw3%2Fy54ZtCYMBFF4DdZDoBKhHiRS8BARDFQhpDnksFYIyIqS00L0sgUR9BT8%2F9DM1CyspDSsDSnBuXlIfLzZmXwzS0jHfqP4E3tklpoBlHT96O8vmCqRLfw%2Fwn98YZzs8khiOu2XFTYBA6PNdsvxWZ5l%2FCPEweSeRLflUAEIyQpOFR4rTJAe65ojf8V3esFX%2FsgkxOhPwTaNUDzWNMf1pDdqsSEX1dtP1BPFV4FjVflnlp2TTbSRVoARY1v%2FE1O9Ps91yut7%2BKfhXw3RMmFPE2Z1ya%2BFvoloALyjjOr5cgkXfw2VpL%2F0QbKY%2BQG95QoGDQ6U42e5sarwnkYis0yN9WtPN7Ipb4xIg6Ui9dH3rJZ7ptEAPaVvufADmadKSRYNPLdgddAUMdUPMrIO2JX7xLEoDntoNsjSUB6AJf%2FingPJ3%2FWAW%2BMEtYs4dLqEdJ0wxp%2FYI%2BGU4pRaO%2FqvuVAlCr5G%2FDdb5M7AF36mlzxSwbxhyW%2BKT8HA%2FeF4POOz5yzjScxA2UvnDriVQwUgpCg4VXisMEF6rNubUH666MWJ00mPkKehx0Sq8Xx5j4s3KWjOkklv1GL75iK4faltaFVP1CmJZoPKtLQtezzPyWZ%2FkFaAEeG8fnw1nn%2FSx5aor6QzD%2F80%2FKthUHmFPU2ciGtDTDOpHHlHGdXz5RIu%2FoAYGylJf%2BkTUKBFfssVAhrcF%2FtmzNo2EMXxxLE1GFKIKc5Q0OY4OIMplDqDBzcBQzDUuIvB7uKhyaBJ5DYPXrREHF40WMHENEGDl0I%2FYvXe6V59VVw3F9wjIm9LBvPXe%2Ffu%2Fd67u26HynIue6ronKYhkZlCc7TpRN16C10eIg2mCunrQy4fQ0nOgJ4NwaJTLiiQMlRKsPqxfhwdHBQV%2BRkRs%2F1GhvJglHAfmzxmY9hs8CsxPQBL6JzD8CwJZiHIrS5qdwdntdLOTql2NnDjPxnukbBKsUuFjDY2SEL0d5gqkTkC%2F%2B3nV2f8QY9Lm1x1G%2FY%2FQIONwtCB49hjPufch4i7ojGpvtvX8ZmA2wY1Fe4jS2ssahgGSJN1S7Xz4fUN17Gb6%2BE5xMGyG92rCdcw8rFOz3qUOGdEvlGSTXLRhxNjTau6ovzxt88f7W0pKZQr75ttIpsxuQIc0QN8hccVJoyeltTX6BsNQF%2FlsLirXKlNv0PHN1Ov%2FjPgP51GpQVzGpeJDZF7sVQHeUdp1eVwCQd%2FODHey4gkfdtbHfr0gRadP7mC4bY%2FEmWZ4DMzqtRzGonMFJomXfVd986qCl0eVmRMFdLnQC63sCS%2FID169ECnXFAg02DKYEI5EqODY40LCsbEmCd%2FamQoD1jCfTwI0zab4maDLC2WTMf8OYeVzLqgogC3eqCdI9ElUMjDQOyRsEqxS8WMNiHVJvT3%2FVWJvi%2Fwv%2FXs4Zf85u%2BRsJDAdBM0tEAYOnA6C8O7KIruIOIeKrto1p%2F%2B0DMHsUG4pabCo6WlrCqIDwZIh3Xpm%2B%2Bjp9s9V%2BA%2FjDQs1IH%2FXNKzJs5h5Bsl2SQXdT41TF3bUFfUDL%2FV2lJvfFg9bfe%2BXkqymc4SV4Aj3EvA17qdyo9cQWHEg%2BLWXjsWynH9W6OPob7TE9CXt%2BhBa%2FodekW8kbPyr%2F4z7r%2FNjcoX2Kw9HoTzxWIBG6IveEdp1eVwadiXE%2BPyGytDknTmGuXVoY%2BDtOirm38gtn0myzJdL82OqvzvcxqJzBSaXudvZ%2F27%2B3a9eQFdHlRkSBXS52MuU0l%2BAXr0TNCDPOWCApkC0wAnlEyMDloaFxTMiTF%2FU4YaGcqDQHBftPyZth%2Fx%2Fx9uQ2RpsWRGRs85CP3bSP4MufX2IVpGKvxHy1j2bAqrFLtUyGhc5f%2FV9uTUBtA%2FmKsS58Ev9r4vNq7y2lcNiZECvaKoUFUtSH0I7SU9unBVhVxdHsJBN7qoETQw9ownbquJLk5l917J8YgXV%2FKLn0ajeThjZsbjuKWJT%2BtL49TFTXFPEvcWg%2BOG%2FDknDgm%2BJcaQAnFKAoT08Kc54Xzrt7619v4yMZPZ2xt3jrxfQoI9Xv72933rt9b6rd8C%2FH8Uya8wN6D%2Bzr%2FdT88IA9PqTnk9%2B5SMOdTlUokWceRXz4wMm4Ujy9paNpvk%2F%2B01HW0wBO9lcKtBhcJaPDg8fcaF7TTbCi8oINbV37nW57eDV4H%2FkZo%2FQte45sVBzCqLk6dFH%2FzZ0%2FT8Qg8b4SLcJ%2BSHQkeG4XfUSCkq8A%2F%2Fsnb9Q8nWji5aDTx9O82K7BnGQvQAvm64dw22oStNBoyockQR6S4AWz8U33pN%2B%2FJZsi%2B5iewDn5gptdI6L4%2F0TBkjiVG8vH7RrV94YxGobDeXNVwenrzgHSdUl%2BRSZ7vNGK9DA0M9mxS%2BFr%2FOn%2FTJmMsfwYpNSg09%2FfSeIaCJvLplpZfWv1VuTg3YRCCzvBq601Hrl3R5BdbesLmlzWCaXLFQlMPyf%2FeMDA0O0FnuFJdcB%2FaEQXYPS5XLAdpydfyMMpR5mzoAQcH1kHVpTPS0N2HKSCCDczAA0D%2B6z3j58ckp87zwnD4vTE1NmH8fM7iEsDRvmbRX50BqYUkYrsh1IRdi3sGwse%2FppwTRSc5ymMAU7VJEqTjRYNh8powfzdpk8gOV8cmAAdnbkfzCXRMaqu3%2FlxMnTkwJMK2G%2FQk0wKcAgnP5ZGBodN%2B%2BsRGyrKtjq2n0rOFoK0OQwS2CCqD%2BHuH5KLmsJ8sh28%2FNC6rAug21%2Fs61Pf%2ByvwL8T9X0Ac4a17w4iFmxOH3G%2FwyU5ME5fOY3z44h%2BsJ9Qn4obGQYfkdNRQj%2B4V82Jdu6jHvhXcj7sG%2FX8K%2BfHRneVSL4uvXRjdiGaFVSaTLFiCxRRegwAq7zzcDWbelr2je0k%2Byj8H09oVavodXtQ7c9U9DR4o7C5fULt35R8WvIWAQqeXbocmHlBkeGcFTLJd9TxuWWkYzxJmlgqFuTwtfiN%2FmSPv%2FwZD6rD0AnUh3De3YzeMww%2BFTAVP9WuTk1RLsDlOX62dO%2FGOJY3Nb6NV1eibXNq4ZHxlHpJpNLu4Z%2F80%2BjdJY9l1wH9oRAdo%2BztcUCgwd5BKIQshvi1EEnCApMHNSnjoyJ%2FtEmQ2bKaCBDeGOYYP%2F45MHnDzLOB9TXZ2w%2FQoIXnpuYHKd%2FHwIs0TpHkNRC%2BEzIGgv9u4D8h0b2PjPM0ZefUE%2Fn3LyYZ34zOowoFScaDJsAHLUw9T9kbQD9n%2Fml0E2EsfLLUQOykfwSgn1YqHbi3PnXFJhWx%2F5t5FNyGZBv0DgBQ%2Ff%2B%2FoUDo0M7cj3ptmQNR5uuWmYItgLc4rggE9UhHb7aVt5BRSd%2BR0%2F%2FwsW6gP81%2Fs61POdOXAP8v1bTRzhrXPviIJPS32%2F9tDwZvkuGRsYQfZk1IT8UNjIMv6NeixL8ryb%2FkmrvyhaRSSIiM%2FZhj3Exew48Nwb4ur0V25BblVSazMGIcU93wYWH4TWPgK0zvdewb%2F842ZftJvu0jxCU2vZO90HPFHS0pKNwef1CrV9E%2FBpjLAKVQj4DF2fMSdF5zQ0OSx1ZH86d9f94h2SMvQaGujUpfC2eMLZe%2FQhV9AEBFOnGoZFfk88G%2BLSA6faGOreqMqem5W7k1H6118TifVzrv3a6%2FGZg7e3maDCS3MaOssv8w%2BAoneVBxyUHsCefXQJ7giA7Y22hmFfwoA9DlFxp59Aze5E6AEEBxMHPO1u8royJXiQYPGxlygBmEO6fMLDfAPt9o5Z0wCQfLWxYMhAihOefe54igCGvzqGphYbPEk%2Bvt9Cfln3k2d%2BMDCFeN%2FZsVSkdE6%2FScQf%2Bf%2FbZUbhAy7D5L9EDKd0%2FqLcha2MO268ITjvxSW7H7r2jg5T8EoJ9Q2iodv4jB5hWw%2F7ZYm8Glc4t8SaSTKISRe%2BuPeOHpw7s2WX%2BFx%2Ftldev6cEMQSoT4rgwBzUZa2yMfccKRyYaGxvNz7JV2AwlEkYcrHs%2FIrRafudPvOfypQuRgP93P7zi%2FRB3jWtenCwuE3RWAw7h4d6bDOLZ0f2%2FGx%2FDvq4SGdY7%2BF%2F1pbXkX7qzJSao0OaIJbfwFtoxPP6HCQMPe3t4G3KrkkqTORix3dNdWEx4uPL2r98PbL2wfbsH8mQf908BTTAIc54eS9AGo9iK5N2wvH7h1i%2BK3gRjLAUqWXIWybi1NJvv5%2FIkohd5wJqlAzuwExljp4EhepPKfQFMihL6wyszhxT5c24R9B5IPzDRGHccuWWhl5rKFJrS69sqN6fG%2Fs88klMbpZwOav2aLnfjZMba5lXjvSUa4SgBdfIDdFb2%2BVzyqkD2pKO3JzyyY%2FRAiE7AgzwMUTrN9ifzf2vCD2M%2BEwfdtqb6Mib6%2BVLgYStThoA%2FkXwmxwn2DxFxSQNVr7bRo%2FxC5gaN7Z944QX6Dq%2FOkZRc7WeIp8FwJdA4tm%2BMj2oXM5E8Ef3NSRT6ODAbxZeBYQOOWuTiF1qwRb0NkfLe3dgaTnxifOLg3meR%2FEq3qWXRg3%2FMx2LsX8r3mB%2BdYDCe2pJIGHvhlo8em9g7tCOLo73mluuwqgF9aZYhWED6BLI1TbG46FF0CM7AMWpqwjui0zWA2HlAKMocoQUC%2Fx%2Bdmz0ZCe1n5szFK8HB%2FypvccB%2FyAiWQSyEJ7EFdwnOpwlZx6j6wrQNbb3%2Bjwb%2BsQ03pbYbz5RF%2B5jZEHDNiSa6drNmGx45OrF3sIRt%2BN9Uc0GlyRQjZjzdBZ%2B6V%2Fj75pY16x9q6ejOLmzfkfFRsq8dsEsbWsEp5ucp6ZlCtKfyAxCGWF6%2FSNevdtgWRyCVpzNnrkKpUZQZNsL747jKiaX7K02ocfDpwQF%2FA0NDxCYVAeUCmBQtDRdBCSrJUHFoMvbok3wsZnM%2BoFEo%2BGTAZC448M7r3KqVmlMDYuZyt82pEWB%2B4QBq%2FWnJqbln%2BX5gbROrI8pLsR5uvJGYAzgr6pLxzUHsSW2J3p7wyK4I9ECILtbkiFkBNiTMK4X5u8d%2Bt58ICmSftDXJUzfGRN%2BCj2ZvIC2L%2FMfGJ%2F9w6CBg%2FOCAtCwrL7tDCxt%2BL4HmxGEKAJ6fHB%2BTOgfA2mcE%2Fz8neNpC%2FwOoajNfhHJW5qjerLNJpecUJ3rvAZzoHnDUKk90ZDVk1Nt6dw1Tgh8I3x%2BftJiA3GTZ943tFoI9ZDmiBv9YyK%2BtY%2ByfNWF%2FIp5C8oN5os1b2S1Pn5o6MIyjvfFeLKs%2BC2uC4ao1RTIk8fm4iJ6UxJK60SBVHUvQd3AeYgxYl%2BE%2Fp7prB%2F%2BXz52aGo%2Bk4Xfi2NylQOBfm%2FZ0cRA1U6QFX%2B2X6WtKbEFlLoPtPTE5MeaPDKMu3rtaMJXgH4KLi6q3chNtw%2FbuPOWPWggQEgBMs0BXSxu24bGTk2O7aRvGH9ZWJWBEyUngGVDdBexhbR4JTaq5d6M5JrlStsK%2BJrHvOOxjwoXb2c5Pnjvpn6aLtigIRIQhltcvwvULkrJN9%2BSZh0RZEGb16g%2FltLv3IFmyBV9n7q9fagMDJ4wjNElSKwFMipSGS3GSud2wWAm5%2BvlR6idhb9xxzC89wIAJjhHpjfq2ygS78KtlQcwcYTTRqyPATBX10UE6rhU5NXLJLR2Etc2rboQx5oHVTal2e5bhkuWb68%2Be6plSQttC0o7BGwp4UNhAvwbMNynV8ckDe0AclLYmferJmMjCcjS7Y74UeNglIP%2BDLx4%2BOC4EHmiGSUJW2qvwME8jJZwE0dUZHt0%2FMWnw%2F7CkFoSqcUPkuXSLp7OEjf4fLTW%2FGuOsoD6KCw5IdM3dEPdCrQPwe8ycaGLYpJ0THbFsBO0fuk3%2BaXggLxlcLz4hKh5Rf8YQMrJl4GdGDP7BFH4gDuxvjGqyPiXH%2Bl1bm8ktD4xOzpw%2BNk5Hu%2FVRBCxVthk0wbbiqs1nEI7FYtBhVT2pEncb9ZekCZjLNRSipaUMKR2KkuquFfxfmp3aOxSJ1Oee8en5y8HAPy4TXRwOmHGZoErvyPTZy6TTRreTL054kaFHJYx%2BEia1hX7zKvDPgotmfuiiKS7ecPta3oaZJ9qStD50wQCDUtotSehwz8SpmSNmG2bSWx%2F3NBfKFbILQIe4zgQehtZJgn0bHm3FMWlLxlz7tsaTFr0emhj7xYCFrRnNoHjt7XJvDu3eMywdhSoM0bC8flGtXyC6Rqa3N0N3Yksb0uc%2F6RfYmPTGybhi55SO3w6u5F5pYEB66XORmSSplXhok8I%2FDQ4%2FQm63REKldRzmFpOmUwaCp8AvVcBk9gPzzuvYKjBlKNgF1kawhuwpMGIiIYB5ehLpcs2p6bfCJeeKPdu3xgjjoD2Xd%2FvWRjnLr8Al8zevvn57SrklsCdQpjRbtOX%2FWAI1LEfMCrABrzIWZ2ilxEHa4g7grn9jwhN%2BvrQGze7Ad2DAG%2BR%2F%2BPDEfu4otKkepnti4roIq%2BHBNGPpDCORWGnSBP43%2FcGjSC0IVSNiwV68FOBpKrI893uzZ%2FlnQyOS54555Y5b7ZypzUkh3ow%2FT%2FzXjHuio5WN2I6IcJ%2BxFDcw%2FJXGJ9SEb6k%2Fz4FgD1kOQLyIwf9KMIXTmXK%2Bu9045e3oaIFWRBEdPJRMHBw7Mjd3bHx3qWe7oSp9%2FYsrqqqJbW7RvjQT5jR6OqzAGk5CD%2FgD5Be%2BlFPtUjpj%2BO%2BlumsE%2FxdOjg%2F1RjHkKzcweuj1jyrBf4CmvXZ22yq35Zfp40Z68Cp5zx4%2BPG4jQ1AJo0b%2FK8zBoUmYaAvd6IB%2Fey%2Bsu8dIwiACWLkYif9NqXSGsGEz1kdQaZHSboRec7v2Ts3OHTsw1NuTZmnUsqyUPiodNTQyPDLkwcPwrY6wb3tPgbybcQZqX4GPyXcRJO8bHbagGfxryaDIk%2BImOUu2%2FBV3FIowBMZvLa9fBOsXCGgDtpFlCUicDOwcUNjoGyejjwZKTcyVHNr7LLl%2BJIxRwo3MJPqZn4lJ1eu9dzn8CNxuzZ60jn3hDl7izBBBEgJMByYNYDIXnOWdr6xnq8CUaWXsvxXBGvOmYUBMADMq6hU5tVvuMiQbnOXWGDj6BQqTqUcZwF3Psibk1t5%2Bw%2FXagzBmCewJkCkFnGQ8zd0rCh54n9NNwV%2BRBPlot0mQGeIg2ppcwF3%2FxoTn%2Bq8H%2FEXOYBdB9iNHp8bHVEuQSZ5W6IE8u4xUoceAAE8TDuPhpElTwghTPvCoGlEK9mrzk8XT438YB1yGj8J0KFaodpVNWd8ILbcIzKYmEDC4%2FS1RykYgTNmPuhpqr%2F4FagBgBvXHoP%2Fn2DLpFokS%2FKMYaJwyKnopg%2F2pGchq8OX7UQI0%2F7O0e3z6rbkjY2Yrd7Q8tO5rN1XxUwhkpC8tHkPFBWBDsEaXm81j2GsbRxIJLZ39niM0TXXXBv7PUzPvE53Vn7b4hm98wVj%2B1W99O9XRWf1BU3Ag8N9wddNegqhO9jJxH6wH8H%2Bzbasy18lRbr0GlRDoP%2BIBgHfTJExuC%2F2eD%2FxzRZDyA1BcvHsRNGFW3GYS1ybOpBDUCsJgG9L9UiTASFXnoQPTf5qZ2jvYy%2FtFh43o40lH5SHYoepebqtjePt6esvWvp5cmY4JFWj6fga0rC0cCTSCeQ86XHFvCqUY8gMiDAGe3%2FL6RbB%2BQYE2eQcEUjsszpbaZI%2Fqo%2FMDEGkzoQlAc3OPm7seSItZv5GZFG9cApMWqPdexY9oVmkdhdV4vPFIVtghhtyYCU8mXyRf3pMW8kj9WrWamTJFYH%2BWyOQHTbUxC5hPn3Zzapqjp%2BOKswIdDjoTdCxz5uO8s%2FyWTcilNqlLrm6P%2BdCWpbWn%2BqQSrHuRIR2YNKLOJDRhrQGWATiJitSOzOnkP09yW5MLuOvamPAhDLj%2BFAAzq2JkbOLQ0SM2XW9BBss7rGeJZ9T0ZZi6eUz5X6fBUAxAPHqnkRbpf4%2BqEaUoiTY%2FMSI6PD5siTJ2dO%2FKhScbENtaAjMAqQp5qqhkI1BBHCfKDxK3oteul5RQf0heZxKWabdIhOAfB5uS%2B%2F2GC9Ak7fzE%2BgJDqmzi%2BHgr5eSmZt%2Bemdy7K2f4wg9IXL%2FgGB9k9mgjAPrLzCGuLQmzUp6UyFLg8GQYEUtJ53lEaFgxxEG1g%2F%2FO722p%2BsRNPLMa%2BGQDyG1Vnm1BwT8qPHyZYHHwi3aC%2F2BXx9UNLhZY9JTgP8e50nptrutI0f%2FKmzAAkA%2B5fUVPKPj3E2TjiADuCy253nCHibzSmYJxHY3Il1k9OVqfPKWcmkzqyVRcjpt0xe6n%2BiFuImPGmxrlAVpkdMgZjmdZg1paHZG8DmNfKZOGfayLBbDcRccE%2BxfvUFs4JFHte9rZ3CYUwoTdJsIQwvNbXr8lWL9K%2BQNN2Rr7nrI4OyFdSaWSqxMpWWSqYjApB1kcJIyF9VsHJoVti2TfWurP9wAp%2BaR1XG3EDiAm6aLAFzfBRRrARE3pvRmQR3C%2FLaVVyVhwq77wjQ3ClGkSiUzOqZXyxJ4RwOzm1DTR3opvTVmeDvWY0rHsIv%2BsZ%2Fn1d%2BibDSSHS75ue1KxpbOnOtyWTCnX%2FGOMWEUuSfjoUgNEagOuFBUJelPTaBuqANz1bEx42hu4%2Fu1Wi%2BjAwaP%2FPCVEfZmpaoWdebhjg3bzVc6BpxgASUFtpLWiJAr%2F05GKkmjzE%2BHpI0dQawI1HH1pKz613dnmAbIlPdGRvpoGMlUSCM%2BTpdDSqkiiKfVnO%2BR1XjSWabcIHFok4F8PdnagaI4snX%2FEHJRyA0Oqlw48xQZD4yffnj81scfwhTWuX3jEaBsuBdye0mWltSV0svoe%2BHkNIsvWpSUZ7e6dQByU0TiodvC%2FZeOD1Z4N6zjLsZp6w6t%2B9SOBwL%2FOR8dlUsjaDEEav7SkOyt1g4sFVppTJuGR6akDFEFGif5pDMhaDAAUIjGYsb1mE7x%2BaHQg5yfItiMC8CTXA4b7kLzaRonhbY2p7ciXsZ5cgjw3%2FE6ivbs4%2FDukK1hvRfaS0%2BRI5hBhF4Id6JUAe0xaHTG%2BMpR97Qm2L90G%2B4Cq%2BnbkCC9gh2sjoWSEvCejg%2FSFUgz5Ae7yUZ7fiuX1W4L1c%2BUPFGhD8OCpXs1JdIpwsasTKVVwKpaiHXfrdnL%2BzyNhLKzfOjApZFskjx9jJb24I62Dt0bVwsc4wLTM4bQFTKCOw6GPHXkJvHMwT8A7XzKrAOOCWrXyy%2FdsbOnMlHNdrY0pkcjknFoW1QAGzFOzf3Zzal6ivWi%2BNS48HWoLSxrj6ZPkLE%2B8fOHCzOTogLjkurCnOtzmTCkX%2FC1iLUBNxlcMpISFpw9YBKhKtmKDT51kQOjKDtWrMeEZP58H7S0ONgXl6A9MHT9uGrs9iR5M6DXAHyMdG1atqK7%2FcSPowE4jLTwFw%2F%2FeTHSiJIr9OSQ%2Fzjwz%2FDTp%2Baq6FECneqKjQv9A9DDVUgdhaXtqgXVh6s9Wq3o3qd0iILxEBf5xJ3T0lH6a63q8EdE9NwNRzxOVVorw1unszrGjb%2FzljOELS1z%2F6SNGswVwS2NKtbQzaZI2jVyRzkskJIgsAe0iE4QqyItIdWvXfO3g%2F8G%2Fu7vK8w0KUqU3vNpzX0Dwr%2FPR6TKhxWnieW%2F9pZyX7mwSBQbRDUaeAUpzyiR86RiohFGhf0hi33PfAxgAqERiyPsaWuf89Pgenf9RzAk5WyXX7zC9NisCsUK%2B%2BWDS7MNsmhxJnn69WBzbMB5LccU59cMf5QYlXQG9FcWI%2BkhAkjKolvXjhT1W4kabwO39GMah9hWJfQH7Hqcd3veP0ngJfRWns31Axzb398sg%2FU6hFKMR88AEqxWofcvrF3L9wnn8B%2BIKtJGLodKjsBEzjnCxl8VAwIJwhIU4myzUpvRSj%2Fj%2BOjApZFskwA%2B4SFdL6xgZze%2FEZaojIhSIE1nAhJcX3wqC6bGXpg6AeQIxvKW0CjAuiFVg2dz38ONG2srk0JO04ekNACTCr1FqnUhwJtU%2B78uprdY4Ga64o4VcM3g65B0pXUTvkFyy%2BehdxiX%2F69lpccm3ragDe6pztDCpxIqOozPBTixsF7lAis5QrcFu5xeKL6eGRSpeHJPGY4ejVafGhGf8IN2tfZTjFvoPeOL8f2%2BQ%2F5o7bgNVvgYhEKeRVkRJJv5g0JpflGRFRNgfZLyTurYqB1%2B9CAJeipzo4cjQv6Z6mfLzIlvqOih3uzE6VM1rXNLS2xkF%2BNc7YWcfn%2BwCt%2FQQHKANTHG%2BuQaM1%2B4zcPfDi6enJK5f%2FamxcpahQgxUSzkvAP6aRnbTebiIidsOX4XNk8CtTSuBVLcmq2oH%2F3ffduunPqbOtcLrDa%2Fy3BkQ%2FOt8dJFbsFP6sTgQ5ZARM77bRJx3Ds5bClYvGU2GiNC%2FSmI%2FHNcWbdJW5MF%2BU6fOXZo7NqGTv4dJEgYRgEqu4x65qXZMgX6LdNb4piSTQ7Z62%2FAxc48WMmlCejtkWJGLEZ2OPZ05Tq5e2GM8PmqB8ZXXnchT%2B7xj0kXXXr80XiKE5WUTrCqcYlgKU6WJVuZoDJkuHx6%2FpfYtr99nvH7uINN0RoF270%2B5rNyY4qNogxQI8frnoiFu4XAEoNFC7UmwfsX314FJwamtQJH92CXNVlpHd1tMx7alrQ4RyzuLnAGx1OBvoCv9CpgnwjtfMqsA4wJaBZZNe7cvW%2F4Dm1ODXzP%2F3pZIMVfmfZtTQ%2BMZZLEQx9tvzRk%2BruHpELOLIzg63Z3kq%2FvICb0%2Fyy7529%2B6o6Ee7KmuFIK2Q86esxo208ISKheIYmAPZSn0kkJungB3OkNvahag0NUsqlNjwo8nY6I7cyTHj5yw0D%2FjjeW9e02QjJ3bSIvzgjnyUwdZGje9INANz8kEQj4wdcpEqQLepcOgOg%2BQ%2BDV8oo%2F9Ea8mGvSvqV6EKQclzJCAaMFgQTSvcUlrb2cU4F%2FvhJ8Xu7c1mSBA2gUBwFnpJ2%2F%2BD8HdydlLl%2Ben9VpYwHyOlWF2oyOQlaT40Iplw6876TyUYLWfpreMzdNISBkjxpyu%2BdrB%2F62LmBYPBP51cUC2zEqRG8klWhzUPWS4vP82afI774QwCU%2Bdigr9r7iJJbFtC2HeDvMwEwAPHT9xcvbcR1cunpk5Qc%2FRqampCTMLHBGAqp%2BjgoiO%2BxopnzdiXfNmG8aZHBL3bcOY%2BaechTkII%2BM%2BjOg0OVogqzPHtVfiDxgfpeMrA7z3dUic4TDki3pMijmACVAwkA7j3m2OiRRP0CMgA0bbeLiRIkAM0TYZk6vsW16%2Fz279KgeZKtDeibLyY0n4z5IbpDhz0dK0sM0UjoBELVB7CqxfIYvXgUlhqK10n4Fh1KFJHzsSyhvblpcNxzQlhuT0neRvrK60YZ4I7%2FzzS2pVbyaIVRrsAhcDOONjnJxaJ6Xa4VaRUzN%2F33gvSgqQxUIcL4n2ZnIbxX7a36ibmSr9VS55G8aF1oE91ZVCQEliNdsubhwEMNBcFETCB5Cl4EsKxME8wtk4v6lTs5W65HVqTPiOF5G4IcLP9EsK%2FZH037DOKOLfGgT5u420G0RJdwd1FKgoyWILaYIAqfj49CtT4KcBFTbUENT9142ibYVXEwkpS1O9CFOmhGAEDn8VmhD%2Fdi%2FhktbezgjAv9wJA4N8foumKo%2BrwDzIztGhN0W9bSD9X%2FiE4npcC%2Fd8eeU1BwZwrFyAlDcLZHGXVTOOi7p1X29rRmQpslBisNm8oqhZO3GQoP86BP%2BK%2FZEWsO1t5IcoYy6gJ1fk6Qd6m8iCSBLK%2BPsI0T8K5SKJzQPuaYrf1NETJ1%2F54x9ffe31%2BUtXGPzPzM3Nvvra3MyJ44cQAajkOnqHoLV7O66UGinhJbMNhRyCzrIsRkJ99wdPZPtLAnMgtQiMWCgqRHS1o9BdrsIL6JU4BB5dsPZ%2BVMjWm%2FdeNG4t0Q4zE4jp9%2Fz8xyUGE7CK29a1k5Blk6WhNsH0Au0MAwcZziJHF8Q17Ftev6jXr3IG6v2VQNu7yyqCFJGJJOlDSqaBWt8tBB0U%2FqknTcjiq%2BvApBDUVqYXxfFKJOnTzEiJb7f%2BgZI8cAQiZwD1p2yX6EofnTslvHPBS%2BGtSrUvYJWTigptlVtRLzJplhgzTk4NgDlm3erl%2BeP7jQNuBWD2yWJtk0Q7evGy5iz%2Fg%2F04hNDikg%2BOmLJ98u%2Fh5aK0B%2BnBcPZUT%2Bq2YqfbSSCqsePKBeIRPQyQ8ZFw1DcF0dEKzaI6NCZ82h%2FjySBuT9D%2FpGlyFeiPpD%2Fc9CLMDf6GzNBDE9aEMrXjC6DdkJxMYMI5Fq3uaKnxvl95K2bdsbbVXASkLDfVS6YeNYZqa3GVfIWi%2F1NHxv29nRGA%2Fxs5ITc4mEVGoGSwcpLIPwYCZAvmCJuPKWc6t6TSDKvttfD4w%2BvuvLESOWJggJ4XzbkQ9Oc8srp1%2BHVN53WpThYcGSJVLrbF3DhI1q%2FOwL%2BL%2FQmfyJR%2BwCuG2rmi0BxEpg%2F5VzB7t0otERzLCvR%2F86IOoxNJ7AEMADx6YubVWYD8qalD03MXmfYzMUWVgJm5M2%2B8jghgYj%2Fjf2OvnbK3juk%2FNVPCO1vMWxwwb43SVNmuTuSkSFTiqVLWr2uI7K%2Bqwadc7Si%2Bm4ssqOSoLgdr79cKGaHqLZ2ZfmOmsW%2FHMKjmykCBVSXpvOTGWXReSict4VivM6yUt86iA6XBa9q3vH4Rr597AGgGKiGboqbJd%2BX0LpMWWwlSfDMScIGR5ZadJ1Abhf%2Fj4vs3rP3SqjowKTC1tYwEexLMh7IF2YKUCGHnfRQuWwK2DV5oHC1nuRe1ZDpH32TeucFLd92yKFbRLq60qliAUU4qKqxVLssGObW8JduU%2B5BTa7OAOSZu9d2ZiWEixD34zdtW%2BGWxkjbRbmKAcuaJTkLenVu2MHlOvvfjN46O7TTnHd8brT1o6w1nT%2FWkLqJc9H8g0w6yvSsXqGkK25ad5kg4y7%2FJ9oU0i%2BrLmPAPWkg38b6nEaHTL09Poh2Xof8DlPRHgT70c4NJ%2F98F%2BN9mm7CmwNSmxVjUaaSrLQES2P%2Bt6fFhPoy47WtKp9CVio6MM3NRkLIU7qFp9dgxMvSJ6%2FFLq%2Fzo%2FxW3t3ORwb8mDIvDg1k9xS2d5iL44bYfdhcRCSAgEFiNa6EoRb0Kw3VgAC5bzbkwNdXv1qHYLek8b16E9Poy2QA0f42DnK75egP%2F2Laav4t7U%2FrtZUKhT96fg%2B2S%2FCuOKqc3waWSyv0riv5RTFzEYXSpdm7eIUWwk7OvvTZz%2FBDoPYb2P37sDDf8DqMHYGLKfMHrb52bf32G8f8unhdCxYxNTP%2B5ZWUNW1ZQK7YhOCLt3yPA%2BCObsfPpGhZQaBA1%2BKakqx2FrJ7t8mtzVJcDtvfDPqBWnAXj877fZpRPZbCgzKXG%2B9LOS6Sp7csURegOrzMMjDj2J4RR2L7K6uDy%2BkW7fi67HjNQcwT4%2BKD9nHx2DNVMabH1h046I4F1dUrML1FhnmZb%2BGeyeGrTemT%2B6sCkINTWcsnHj8hnuN7LGg4o7MI2GKdqZmQ1vtSKTEOmFp2jZ85wWg%2FUk0WyKn%2BVVQWRRnVSUeGtqmTZlGxqrdf8OBBsrKsVh%2FXhGQLMRJT%2F6irI74EZh6R6GYl28HS%2Br754wOeSr7xNXo6%2FN3p7MqVw9lRP6kJ5iDWWilkJ7l25QDyshyEcAWQJjW3X0iz6Evug%2BjImvDOHeCQ5cyTjj9L4ttFBimAY%2Bq9F0n%2FRYBE6BR%2BKSxPW5GFkYgJ1rFYZR8t91HMXiISSDVAcBFLFzDpD%2FHn5z3MRkLI87G%2FkKoH9KRS0XrMG9O%2F2di4u%2BNeEYd%2BenRb8c2nPwPtGg3Dxb5myH%2Fx%2FMDe1QFFvJcwWoREe4wN4y90m5ZIKUkBI3FEW9GfzMjolg%2BeH6Eo4BZo6A%2F9aFJHFyYBKyJxlQDNcJpKDpQVC%2FhXSp8JXRRe1VO6PzVr0j8h35WIOo%2BvOom%2F%2F0PTsG2%2FMTnNWf3CACvV7JmYg9Ql6EoUAY%2BOT9GXn32H8j0nhwisH%2FWeNmlZdrIZR4RZlhhe5mlzqlWJ9UnUNpcWAUsOuGDzwLPi8Vt%2FPUV0O3N6P7QX7AK67%2FzdlN3fktQ4MnIXKByvl8AvkFg5LrC%2FmlFHMpHvrLDqsd3HtW6t5iODrl19ev5rZ9dQLVpKZaIO%2FHJDpJ71UZQDO9oVOMiPhsc2sq0MLJndWmUCi5YvQUaVuKiGLL71JRypMCkttRcsu31NFFvtrViFjmAbbdKZELInYrgvpeClqkEEtHUiy%2F%2Fk0CL2tlGSPwCp4GpFGdVJRoa2qZNkAWDOQ3%2FZDpeb5AfP5k%2BNElH9k%2FddWW%2Fk9MON4Jl6zVdqhzH0l2MYc%2Bzzcz40R29O0LYQ91d%2BYdrXDQ6okXltaFAGsGJh9OAegHAFADxYddTWLDFzAj6gzY8I7c4yNQseW6Y394zEwflArZeh%2F0w2LrRFItAECNJC3OYxMzGJOI%2F0cxtFy7vP0u%2BgtCXKB4VZFbId4%2Fh2QsgRHLTb29ysS3QefWQv6n3PZ3YsK%2FhUz7NzTxyn%2FElA%2FioMC%2Fp2UgBT1BFC7bwZGF%2Bx5yXIU3GxFlpnRn7Tigl2usiBLfbbKpat4Q5vAtGte29TqCvyv1KIIL444pUYEygUZtYGsK554DPlXKjCSUoW0P5TyXuVe0H9HC6KhxVPsgCLYxNGXXz%2F71qxBU%2BDzMDM8J0O%2BuuxQZmoKoALBy2cuvP%2Fu%2FOsvHz04bvA%2F0f%2BF%2FmNMq0msBv0lRWxDeKWtHd2lnzI1RN22p4%2BkQwh6%2FNpRWMsEC6mqVAOfxJcCtffrQYF9ANfmtZUBJlTNVjRX4tDI19KNkJwdnjOkRpLsLETk0LVvk5eHCL5%2B2fTW5fWrxbncBXZ90aoe5H7yNLmXhD24mEOl6jpYQMaKwI%2BQRmWio0BtYucwX8SQ9Lws1dKbhIHtjklh3Ry9Ta7TcnsSU%2BbJsn41bUuLP%2BmTIsRNnQrYCRZnFzBSkkUjz50C9QRJ9gisQpyJKlIUVrksG9D3bfLcHEvzt6sL6pdmJ0dKLKThk%2BRsocwbk39y6L%2FLEBNXNbOc70UxPmp76KtC2VMdLqmH5MI%2FY0mgbcgFqpoVioBWkKCAIWV0JnA2ONv%2BntUsSsqrqjNjwvN3qfLFU3Cn%2F3gKTbjoktocBfQHNDINg%2FipELYH9WdRp5GiCIo2islT5y6yqlTA0iWxumw8f%2BEiSFmCoxYb%2B%2FsViW5bVYOWKRqS%2F%2BSi%2F8UE%2F4oZBkeclL9UBbUaoGRAW9RDx%2B%2FVvBaUp7NoE4ajAbldNG3grzm%2Fz7jRVRaE1CeK%2F%2B6UDG630q55p02tTsC%2FBkasbq7YX3mosjg6AUFHHxAlSBckprm7uI2GzqD%2FjKOh1eGxvw6jI0Wwl8%2BcPwfoDyjPEVqnTvhtg6Fd4PJiWDjB%2F3%2F94MIbsyePHkS4YOk%2FSXSGX%2Fey5i1qRVsobUPaPX0ymLNNhiuqPpIOIUCbNJ5%2BwEM4dp5rIqrL4dCrgmsEx309aNZGg4qo2XIzbYxiWEsALSjJ2eE5l0sI9uzYZoSBFfa1pxwmY4D1a9q2vH412CdXGFoZdZBp70DGG5vQ1OKo6zTjNkPoxHSWVALN0Xpn5coCGg1JT%2FmpcFVLbBJdp65Jod1cf15HD%2BO2QmjmA9kqZyZPmmtMKH3aIVOcUE5CNPKgwUtHx3ZJ12lAq37cu6BViDNj8Yisclk2QMyazKe%2FCUNPHNZHVFDNwFVZmG7bfSVHDy0ebQL2NdjC%2FUgxPlp7ABAC2VMd11XCbXpfLIlXZpq66dF21Kx6umUwNJ%2BPGERH05ptf%2Fc0eCFapakfY8KjT%2FB3QRagKbgzr1Dan0eDPLrRSOJHAf0hFUhDBXSk7WSVjtVgdVlAwfkP52WeBJqWAvRz37%2FZUvk%2BuDDj4KhFxv747Br8paB%2FY5z59jdc9L%2BI4F8xw9CIl%2FKPuSl%2FqQbgZANQS8dvBR1Ly9MewRT3Lufyt3yX9ShUwFsK%2BvDmItyNOoHgDUX%2FHO7NvOq0qdUP%2BL%2FZCYyQSBBqFEv4q%2FaivU109EE8KQtC4ZDk7kR6Dv1niIbCUQl1x0nMPj134b2zpwD9NW8X59Xl3%2FXRR6CQDZiW79s1DPh%2F8a8fXzpviUJM%2F8E%2BabhepUpF%2FdoW%2BgT6nHUwp4U5LLZmN1PfAOAqHtlSA%2FRlNtetqsu2V%2BL%2FBxH30oNig%2BPBvlJeORfe4Jd4Y1JIzoDQDMEqpjajt13GNgOX%2BNDrKdjX7WgYBFg%2FOPfl9auVUfooWhnTBPmy5byJfJTojMG6qq6DOiUtIEInxCj4Zy9jYXt0U9xYNj0Lsji3%2FC21SXSdVpgUzs2VQUhkno10GBugxCBbtIj8SZ8815hYGxGACYllqM1ZZ3PhZa%2FrNKBVuZ4FrWpticXCWlUzywZt7iUIaEhfDhwWCWnss66KYLqT8W8GyFbCPQt1qrSmU4yP1B60%2B4a0p7qarcJt%2B75Y9ptnNKT9alZlYgnKOCBQs4jIQX%2FabPv789MEFzpEmrBejAmPwXnSKlTQKO0%2Fa9P%2BYPxsuPeur3z%2BhgjHCQt%2FgC7jw4s2jVSLoKhanv3oQ0SnwSZJ69BqpP5n3v143sNRt4dfmpv92N%2BokQ7Wqki0ihuSmd70pov%2BFx%2F8l0aGJeWPgN5J%2BQP8y8nWjl%2F9QJeOVfBhf7137Xxa0fHzqwt2qeyD9f%2FIZYExpOgfXfOYxzw357Sp1Qn4d3m7mkgAj6fIi2MpT7QOZb5LNB7CgmgZRT6EebtzZzgaApXwc4s0M3vUCOjOX7o4Nz0pqmCY3vXg%2F%2FCD%2F0f%2B%2B4YHNz5MI4DRa4gegWOnz330yZWP3yf6%2FxToP09iURpqUKoU1I%2F99%2BMcSyxgYgT6rBjmyDA46CPlmagij0hH6WXclsYeCjtxEa8dRKQWcz5%2BRuVM5VyoYI2YBaPAJ1aSMx5vajPxRvHmHfuwycm%2BAeQKZJMvr1%2Fk6%2BdeYbhwTN73RzmUUHhsgrmNc6quwzEKFpCfsmgVyJ3VbMk6zbbnj8nibRiOvsQmJVKVJoVzc2WRIsgxP8IZ8NLkaRE5OR%2Fc%2BewaDLvaTpDKe2Vmp%2Bs0mFXo2XWtKpXZqsY4W8ULJvFvvvTkk9e26rFrWBWAZcMIPIl%2FRF8OoQ%2B%2Fq%2FqisGwUn6e8HHJehTp1qBaK8eLmoraHx3l1BrGnegOmC7dF0KoM0IqpCyoXaHWZRF0HWXZisGFIKVUzEKedv2Tgwi5KVN4HgFhHxoTv3QP%2BJqmZIzNEHOepW2D83HlLpLyjBukc7AHxP7wmoVsEZRx4ycLQ9uB3F4USrYh1377yoeKocA1QivYU%2B5MaqfRlrqp5C6Kx%2BS1H13HxwL8mDEcG%2FSl%2F5AK8lH%2Be%2FhC4i45f%2FUCX9MO3AUaGAPvLvctdVlbSxhHwtvOxkT8uiXC3FKoF%2FSPFxRHfGzNOm1p9gH%2BUmMjv5pR5C1fJCSnkL7kN0%2BbrEA4p%2FsKC%2BKfNlCA9h%2FWAhhjWAwWrRZqZPT333l8vzpHMFHAFhDvvu%2Bfv7OrK7%2Fqf775n3f0PfvsR8qEy2%2B%2FU2UtXTNbow3fnQf%2FZU2LwX5NS5RavAr3TMLxlkmlXBczJ94u6CSRr%2BFHpKNT2sfME%2BuBaRud4AHEvyNTjfPwv89r60c3icS6QR4yLhggLQYBPzA2E%2BqAZE%2FwHWjEuiJF9eXYv2OSwDyxBbHJC18vrF%2F36uVcYU%2FQ6MfbEG5uQK6u6DjeyIkjBg8DdE4iRTL2v8P8nafkzRtWTSdXdnHNZc1pDSpoq5ERN5nk35wPARANTMQ2JqTWdmYJtMNt3fP6vvq7TgFZp5KNW0dZzrOJUFMe%2FXHq9hlVPGphRi1XocFmAZVP0jeJoJ0cy94HfVX3JG8Rrh%2BHxH3Ef5s55PQgfu2A7envQ7hvEnurSi5VwGzVvaK6qxg4nBUA75TsNb4r3daxVixs7jS0fXXhZEKJUaUIbgxsxcmPC9%2B5Z5s3EsVdfNZSfQU77P0SMn%2BoqaOE1A0EgxnSYI4uiSYgx01QEBRdm5sIV7LEwoRRS%2F%2BQjac9euWhxVLgGKAXuiv3f4BuWf%2Fua7zAeEH123tF1DA3%2B3YQhwL%2Bb8seeteBfbgXAXWnn0Q90ST8FYrsRziVbvXsXXVZZk6zLWsEfamh97JFHHvlODLIPkj%2Fuz0vpTPy5DrdpFaKL06ZWB%2BAfAxJxm4Cub3n7W2JWOXg7fl1uw1QtvA7yj%2FBCkn71eLu8yI20HtAQw3qELFit9DrMGcEbMX%2FQ9aAKhpFdX5HV1d%2F11i%2Ffueab31r%2FwLdlth%2FihotXaEUuG%2FrPK%2FKFDTUoVSrf7Ps%2FMOfcWIBJppJHdGCO%2BTsRkqRNWh%2BWjkJXX69CHyye9EoEmbioMvVpzqZDQQRgAtnVxjibVSCrRAgiJdKB8kCGEfxnrFhZ1Ju6cwyfWv32YZMjpFtev8jXz73CEuzyf9jtKBlmShJJccuoRE7s%2FbmEIdder2XX%2BPLsaPkT%2F1I3JlV3cy72l7RGsdcRcuL36uR8wLW3nK0WBZ8sH2OsO%2FT6R76u00WyqoTJ8WpV3ktFIf7FjruWVU9marOKpfGzpQVYNi32H1vsR%2Fpd1VeUnG8ldixMJ7FRvDp02bZIt%2BIVh2YTqT1JtacY0p5rS4Xkig7cjnvwQduCRAUYukysrqOVcKvJVAATCf0Zl5gbQlWaO7C%2FQxqjWCZ6Y8L37jF%2F99TczJFxQ%2Fmxaf%2Bvg%2FETfbexhh%2BC%2FiX3HfzBmGlWT5j%2FWPZYYBKVpsvwaj65coFwVPCxIpWUHWD%2FN7W2ipx9bdXLB2RA9Dmgf13DRQP%2FugKDn5Ly913Hn6iQl%2FuBUp5GUlrwunPvCt2YdPyaklcLLMRs%2FliEu3VGno0kVKBu7k1%2Fm1odgH%2B4cMhKFa1QjxRFpCwNJV7LegLNYfPmJPlH64UAlIS32xrTRKBtJDo7rQWrm0JIaKm6FLg7H5lPRaO%2BVQX78hdW31oB%2FhtW3vifbvvq19Z%2BS2b7gTFE6J%2BeKx94X1iDGAy7pVL3D0y4U8QgBP%2BgaBfmdAEICkaUB4toIS5Iv60tAgW0V%2BLVmsW9VKb%2BRwAGHeoDmAJq0XLBCtaQUibAlw4NUkoxADeEIVg4guxLdVTax5ucezmW1y%2Fq9XOvMJxSc2dr89OPNSfSIuUKPa8JKxFJC%2BbN0Sr7SNG28H%2Fu9JTjX5baJBo%2B5JgU1M31K8oGZE44A5Fwq%2FN7hWUSZ1JwR2%2Bdr7W4423iNtUkXadCrw9vVd5jbeSefFK0p73ol%2F4rpFWaU9NvBqGmgmVDPbKg2B%2Bfv%2Bx3VR45n8k2FpgT9C54ifbGx7lZ8cNPHPXtSO2BIQvYE2%2BtyR63RcPtiFN6bBrD8FHbQ%2BaQdjddDVwLhNxvq8UJCRwTiUi2xWVSMbpCHeGh8Mbg3glpTKTAm3v3mL%2F7xikajkoJAKT9v%2Bj44uiJR4r%2BwXoHYgue%2BMeY6UHeZJeCjpF2z4S2sn58dtoZ4BE2jYpm3bMyFQQl6ABD5nhA9Ol3gP61c2ARwT%2BUPn89uHDKXyTA9smtICM83BIKJoTbuBc4V%2B5dIFdk6dLtVsG7wxVYgEQdOwrJNsqMPOYQ0ecq0cXXplYP4B8unHyuBEYlH%2FYHqwJafOD3e07I0hvSqCVK9RrJCI2xOHn3DgpWQn4LLqGlyrLvXf7k43mur7SnrCrYSt%2FqOph%2BxaqbbrtDZvuhzAf07y5KQw1iMOKW%2Fg9PeQBbnRYIXasuzEE7tNMmjQe5T5vhpu1Eue%2BtEjpJCFmbuBcwxVr6%2FZ%2FqJQFAvDadYgowgeymFTaBRn6aaRfFAtOJlekMqo2I7%2FTwpym6jot92OTay7G8flGvn15hCKylTHcNpP29VttiK%2BdVnD%2FiJaY7phJ2xA86I7Xwf2be8S9LbRJuj8AuD2RGdnM%2FAdVTB7t7A5ESOsOE32uTE2e2I%2FLEtSYRq8BsuV%2FRdSr0%2BtBWIXOrrA26chFnRmGVkvDgQOUPl2WDvynF3muwFZYN%2Fq%2FFjrYRougl2ulrONHuzN2M0h66WBa0hz6hBntcbpvbEaf%2FkelVvcB8P19gzXQ12Fpgmhmx0g2vXKQCvziQud8HRnS6s8MbkyuHNyZCmR%2Fp3aM6PLpFUR3ktL%2F7c6NvORb0vysnLMwwiX9cWkT6QQo6VCCl1TABjO%2FPOgM8QqZRIdM5fw6knyB6arjIkPnBFOK%2FzItmECKoxQX%2Fg78aWCDlr9UAfJgCauQ9rm6eyOJWslFzk9674KywVn08JvKCrsCCZPNkArsW3PQEqkDd6fNaSjFZvToA%2F34XTn%2FqpM6ypBTAjgXocXSDU0kIzkmBQCr3jVhob3wIClbS9h5KQmsHQ3fUwNBZQWLprAq2APjHLpXZfhTFyEe44L9mMZjcj5Cx1LR1QbtWFebI3ctt0s6Tz1puO1q0ShRiaehkQ8g3axP3Qj7xf5IO3j8iF64%2BAHYwmCiIsAm6ViFYw5lqr522i5vbC9zLAd6L2gdStthHKVm8AbZvef0iXz9ISSjDxvpwvQL7s5iBag6ipfZqkMKhk42X0M8j55wwtbEGhX9WlXhb%2FAs81lKapNWIPzsm1ZyawqezsKEOdvcGIqVYt9m%2B14TWcrxxEmgSlkaVSpjtqzI3hLfKZm49qxCPRGCVCGsyk4YdKP5Qlo1yblBPp2y5J60pLBsV%2BVfQngc%2BF%2Bhtv9XR37sxSntgyML2IL5d0J7qU1uLOeHLO5ohtINFYydurwZ7N1DiILalQzSZZF8XcTKYzA12iARqdWBMaOyvmHuIWCdnCPvjMG7eECjtHz4KAfonLZ0A5Bensk2JfyCesx8LsgtHoUKxXAHjZRngIUSi0GnUM%2B%2Fhcg00SUXHwmIK8alzH7AekUZQ4cG%2F3gqQ%2BV8w5U%2F8RtH%2Fdbt5XNkkpzydTLE7xr2LzDYhkRar%2BMNqNprOK2g2T7KNgv4lmycCdRQGnfMNy6sD8A8XjrQbcHt%2FTrCKphSKWcw0Novj6AanrdRPj%2FB2ZdSPJu9wVf%2BFsnf5oI1E2o8M0ATgTrPdRVNp7Z3CEVwQ%2FOtsP5T5gP4v1Qr%2BtfHcSsbl7O8cQ0RRUFVIA3MKoj%2FEdy%2BCSOnZ0zZHq2rTBIt2CDrs9fVKvFWDuJf0QxsW%2Fc4dwtSCD%2BBmbZ756BM2IeRati0cHUInBtMZmSJGujq3rXwN%2B06fpdqLiLgur1%2FE66dSEtTX2KRyHQJzJDtqTM4KU4mDFCyXxEuaqEBZrp%2FIEDoRFXQK%2BBek%2FrBmS2iSViMck4KQUoXE6A5E0hkmgP484EUs69dxEhkjyBqzs%2Bgojywwe7Pcr15%2FWUNYq0QvTfJLiB4jskqFNcGkUQqP94dwbpRlA6oMGgnudlk%2FXH3QXmigdZ96%2FGUvSQ%2FUEqU9MGRheyBpc2UBe6oLWgE0i1KOaobgqnA1dnjOh8HcxYK6Ra1L4PfDyWDpoStOd3YdGBMe%2B8MNo3fvzTm0%2BtJhNJSfO4Ok%2FcPzjwAJDgsLEyg4aJpeRFN9yC5EEQWQRhktQD2OGlPoNOq7UlYNOEN9Nd1lIBCZ3%2FnDM04fW3jwDyS7js724MjCKX8Ifqr%2Br9vN46om%2BcvTyHGTrTLNVhKPBDZU9kHTeZrN42yj3Ng5zuaJQB3CoJfPO8Py%2FrbBvwZGxZyK9SExoNgfiyPsWNUNlmRCqyiMAdeoG5cLF5VfU7AK3kikw%2B4goQXsf4VkCWSaAqQBqoF%2F1ffCUScV3lrBvypVIsHUN9CHakcMdZGCpwqZFcEaxYhw1tyzxw9PXgHGRaaG0KsEpb5eibM1iHupFlKPULBU9C3BYKKffponIcLIlfnXSWppj8vUZmhVUgCM3wqRsavCmJQQ1%2FZyIMRdXr%2BI10%2BlJOR0yjzdpyiryeCHfoIqoMZlAUkYkjMYeVHjkrKciiNqSvV9qERykS6QSfHFM8lWI97xmxRAjsJD2V6DZIXgTzPPlMhrzseqavZDYo4qEmlDyvGmygtacu6QsFbleOwMl74itcoV1vRTeOhvdhKHy7JRAe31d1ewfhRH0t%2BUUOLhIL7%2F2ctFZw8A7QL2KIvs0kL2VJ%2FaKm8M%2B1w1Q%2BxV4Qj%2BgJhIt1S2CLcoJkhQQvGaDh1wurPrwJjw2F8K8KfPzh0zrb5k%2BKMb13%2F9KzcHYtyEVxBEF9YRsDCDzxMExNymAW94ZKeQRntZr4RUYwLh359GtZSMwL%2F05wSYodpxcc7Xx7YqPPhXJFscHvmUlD%2F%2Bl1wL7vg%2BN%2FGP3DYD9manYobgE3KDPMRfZB80nYdsXpGV%2BxBdA%2F0jkBDUiw%2FlpqJ3nGF5f9PgXwMjUkKWbogWimrcxbHsWOE5IB6CU0f1XCr33DWsAsuPs7jaB9JIhOUIEK1KgAk2nYbAOke5OvhXfa%2Bk9KdfrhH8KymVJSoHGSTyhKkeTxWy4BOswXJx%2Fyf37PGTYCV4KzGbBHotkd%2BXJi5LHPzz9Yt76S1WlOQhYE0aFopgDdeBASaAXNHHIkqV7ZZPzGObAXGRj7ed3P3giWpohxAX9kmIu7x%2Bka6fSkkUhLBrb53%2BXXwH6kStbp0ARQtYkMiJQCRiEH9ZruyQIxCnI%2FVn%2FUsAkx4zuHaxTGq01QjHpFqrhW4DkzZIuoI%2FRLSBcpmObcNjrO0lnIREazbbC%2BY4b2HhSTh3SEirUHGCVUUw%2F6%2FTqt6qVlUX1iTmh0PhsTyaLcKyQbbcUmV4opbzLVLrwd9EaUdz9NxHKpAyMnvwnQvZ08S4rLo9C4%2FA4SyfTMf1aYbkvbANwz0AHlJ0S3UBnMfZen1L0GVNSCenb1JxfRgTHvvb1rvzQIs5JPHuXXM7tupSoH%2Bez2pYmEGT4MpQYWme90MjOzckViQXWo0JhH9No35A%2FAl1kMEpGbbP4d8uah8baP%2Fhwb%2FK%2FA85Kf9y1p%2FyR%2BFT9X%2FxedJp4eBbOBimyzUL%2BUfZcjGVG%2BxOu%2BqCCZPOY6kfXMvaXaOxt%2FJVVU5MhuXBr%2F9tg39N%2FKNpQZsXdHGY0aPKJ5bnoPEQ8rdKgKIPolWWfKIVqkIjUUC2Gt6eUMvmP5YImFeXB8pVB%2F9a5tP%2B9ItXanTc%2BHginn7fxCH9MuC5G%2BvTalUh%2FUNhgREh1gGMKOpRQIcxwEhwfH07sMWYRiGYSAacd8W9qmNX%2Fpg4ks0sn%2B9IaEpdS5ppIaMjSpUZ8IllbHNjnJn4Ip7fr%2FZZevcutk9D3OX1i3b9IMgFjCxXWGsjynQ54TTgPsIiidIQpIk4chLZGlH6uGoCkhenX3SKdLWahGzIYpkUt9WI9xyTak1KuQ1MPlF0Ffxp9nabjm3Dk9omU4q34%2B7DhW9M8zoknTskvFUt%2BElchW6J1KpKYU33D%2BXRMOdAgQdRZdbJRK1Klo3%2BDdhScvTeqFOQSZbGHsVlrj3XnSstCL9X%2Fb4riYewjdF2O4GHxx55zCAKrwIu9RnVZZVOToeDVAfGhMf%2BkPkR7G%2FMxWyoW%2FDzlgL9g0VlIMFkCPq78tYwSCI0snNHzyiSC63GhLqRpFH%2FDTAq1Nww5GVV4ejKe9LHxrT%2F8OBfZf4xv1xT%2Fj6hA9nLlTO%2BbnSiMvUvPO3P0uZa%2F5299w%2Byq7rORAtbtPLEjwLGwONhK2EmMgRIBfIoQeapZoSZp3p61oOI7tZtXbWdkhJaE5RkSqiL1Cu5Sv%2Fon%2Bnq6jfxlXVvd6sBSzd%2BHZtWyWkrlgehmVixkB0jHIQBzQQFQ0gQsRR%2BaGxJj9G8vb6997fv0u7D4ZzTJ31sdP7gqpvu2%2Bvus8%2Fe317rW99H7I96q%2Bv9ivQV6jVbR%2FOF6kd94daL5NBrEfv6OzDL475eVfCvE%2F84ujhmVNNL%2FjMhJexYDA4MTXkeaoXm5ws8enBXbEbh3Btkqy3IaXONpnJp10Lin4PLKZYC%2FvWjjrfKtHFTqXLL729wvIGaTRCTvWJ2YmUKC1bUeqcetcGqRxEd1nogPhRqT7bVkeQrEB600km6BwIn8nDTMbUeVojaJ4OsWS1kdKhUOQ4%2BcbBtxlnYKUh3xofkkT3innyz44h7cfxKHD8Kcnl2DJ5OLGWumxF1fxm8nt%2BUfZ5mybY6Ad1K%2Bmj5NAjZNdvDOf09tb9kDgmVv9kKqeZIHiqkjHTUxySHQRKjFkWnoCtmmxOWFW0de9W7ZYSRWkX5QuapvJMs8xTgi9aQolE57dpSo4qFNcmV4VfNjuWbLBvJlt8uv0m6T8SyWa%2Fba8lWoNrbHMYDXBbHk54rJc0OuxvhtpbEgz4AKIs9dahZPQQSnMTCBGUzpDCJBEL3cVfVgylqgBuMZY8S%2B6PVF0m8Obhc0yogwbM5hW%2BYpKe%2B1awhu%2FkXILmCakwk%2FCONamFUQQOmK%2BhtYMgU77%2BFPjbS%2FguCfy3zz1IVBQP97O0n3dEtC2rlu0xOZdxeBKyv9qr2ZMv1y5ZPb8VIX8F8Gx00rlC92u%2FnNU90wWtI%2FcsCw329ouCfByMm%2FsGIks9Cyf%2BQkGrZhkdAMeoGo3QOxOS2%2F7pK3skLPCex3ubiEvJ0sgvper%2Fuc2wzgH%2FVn26e0UwbN5UqNwHS2V5OKCsDJKI9FHJRNIVFP3SPdXu1ZqFUqhG9jlqNVhF1hwdWuxvga%2BbvKnGvFPEu1fJFptZwQNQwsXPoazWiMkGRTxwIxeM45FkWXGDGjSM%2BOkNGR9yL41fi%2BFGQy7fWYtNHf6ygb%2BYwABSlwo%2B2aez97uRkBWIipQ8gKnVOV%2FtLxpC6kQKZtZBcH9ePc2x589yDjjVapgc09bUoOs531uBlnFJECM1eBlWvtW0ka1C%2BeAgcMKzytN7RMLt4VL7iVHJUsbDmDF9t4ht2smzu%2FtX73M8msWxaSNOxvTbqU6x6PBqwulypI%2Feyvr2tSbjNW0cra6mKm0t%2B0gkYkaTQivA28QqabPMH07O2hGBKwdltEZg%2F5bE%2FWn3nAPtzTOlU%2B%2F2c3a%2BEUSSlFUZ2OvNNJKfUmArpprx%2BppM%2FsaCwqzF6fuG%2BpOxrCoN%2FLfPP2dtL6RBFd4wOr3Rf%2BFIoLKOnTNl9oU7WoLei1VeYaMs1IVojcMyAcHdHI6zP37hsXrPDQ%2Fy%2FdWSnKwv%2BeTDiwQWJUzc4WNpGOl3x3bloM3WDawBwQP%2B%2B8C%2BabEzekaTJIi3KiTkS%2F%2B5s%2BT%2B47nNos4B%2Fpt7g9pJp48agyuShs%2FNGTxEHSLSqkHVqVcIyordmW%2FaAW60afMMJwQvrhehQJpGgVkym0C33LsW9eMxJMn0hdvVMGpdNbzU6EfWIQ18%2BqrGW5hPbVtrmeAs4nGwusNpMfCCuID5X1O884l4cv7LGTysVhwUHuNl5l6BcAYqIxCBHFkaKk9MQjIZZnmQKMDqnn%2BH%2B8qnMIcnHnMWQas7b%2Fic6pEyaKOgFYUeSFkWH4A8MXqwyoqiZ2dBwSUoHAB05D9NrIpPAiUQzj6x1dYpHhRNJf5lREaoIB4%2ByGe4rJ7NJ5gw31bCA4wxPB17%2BLFk2ICARppOkSc5nafHgVxLi6c8ST%2BxgzRQ7BDah8wH0oCTxQLipgbJohQqchK5uT4zxNpgKTIzlDQbptwuD6S0STEkMG2D%2FE%2F8YsP8ctPrq5Z9OtQV0L%2BdDl4ZtLkWRnc58E8kpNaaCuimKP1Hk8OR4GWioOa3sa4qC%2F1jmn3Urpvw5e4XuiFHXtLUF1n3hS8o%2Bkqr2%2FtQ8Ai6CJ%2FZOtCf37Jl%2Bav%2F%2B%2FU9N75lq75R9H9Rk%2FCDzNS7rhWweEDTL52pfryr4pzotzi3s%2BtWuPc6D0qshAYpR6qc%2BoMT9LdmTyTvKMwCwU1k58%2Bk3mDMGgWeMbEbwT9ItqjNnMoB%2FKlViuQ%2BcYW%2Bm3vKqkL4zxFlGoGUPSpVQg3cFJUG3RIdWCQaEq35MpqCT9xN1hEzi8aGWR%2BzqmDQ2m460dUDUcoJd3RkV%2BcQkFDt9EflF9nJY%2FzoQVzjZZZ1T8V0cv9LGT%2FfloCxH4QKc1J1XCWJyqn6bgbNdpBPtiUZneRLACOl2ntPX%2BHP6yWBOkzGkHgCTWQxJNj5p5EoIKSVFag9ctCxfW49E0Xtp8GKAUo9VM0Nocu30ayBUN9HTbSYBz5o2jxwp6hePaqBedlSEKlTPpqKmO3wF5ozfVMmyufUeuHUEB96IZeNSQITpeo6XFw%2BtgHU8dBtOiif9uAaYXfP7YU0d6XnrXA0TdK3RnQY9%2FL8SBrH1uMUvMd5WTbYFguE%2FGEy32ZwLBFNSby2w%2Fzud2L%2BEVt9cTrX7%2FtISfzAzcqCUoDkzi2o%2FzGrjUmpMhXRTzmdI3KV6vazzEqeg%2FdO%2BpiD4p8%2FBHi3sw5Q%2FqwEE1XrUScdibTtYyNvdiqdmcBEssXfX1PRTBw4d%2Ft7zL7zwwvPfO3xw%2F74p2au8SAQf%2FaBsE1L%2F62PcUVXwz04rv%2FGy61eRf5wXGjKtOBdN7dmzZ9Kch%2FBN9jzTRZ3JO67XJ5WnYsa60u330ZwxegAygH%2BWvniWeC%2F6wfQKHCQqnYTLGNshnF%2BopXk7%2BkqPlobZtAFq8GglAZ3Xo0M6Lo4LHU07JPw0PUsF7UCS10j7lLCcgO0qqucbeG1iRFRjLURl%2BcRsbRceNrAtmO6IL7SAj4%2B4%2BPAkMj6uIBfHr4zxY5admpq%2B25f9DaPYRX07Ms%2Flrm1aHtfpp6bbDjW2XBSa8AOehJX7O61INhlC6sbrbIbU47bThJBSU6TjEg0ty72KgWJ4kdblWrp2IrT95pqeQGrH5eDR0z3ShB%2B8l7Y%2BrdzkL80dFTFb%2BVFpqOJJ9VTU9DKb9NjF8CuWDYQ1IbvJl6Zi2cjhrZssm4ikWWI8tAKO4iEbO4on%2FbhGQiv3QylWRXCbNUwzvSf37Dtw6CD1CZXfdYy3g1XxNbMaDLbrEoLJqzEZpPZO%2FEToIcT%2BJfiJZXeqBRvm%2BzndxJmjh%2BYMLpWDLgT%2BmdVm4jOzewCRD3VTEs%2FA%2Bc4UNPUA7Z%2F2NYXAP6nCkPnvSUj5tzpAZjR9SccCvuXKQLyuKq%2B9KPrvmtp38HvPv3j8R6%2BdOHny5InXXj32wpGD%2B6fblIfGD%2FdR3F%2BkKpj6ryfgjgqCf91pVWPpgnJIJP80QYF2gzO9%2F%2BDhw4cO7JvaRd2M7XKC8hVWZ78gI85DGcqJ1F%2FNcKFsw%2B4xXKdC6Ssz%2BGfGEg2X6gfTCIs4g4z%2BiUU1lq7O3irvF0qJbrjFwRXWiUJCqbLnNx%2FohlQl%2BOONTrFYeW0xNcx9roOfuiBZ%2F0G1fOnEOopVQT2%2F5tVswWMT4MrWdlzyPeGJ0sqi079Ox4fdVNTCvP%2FqxfErZ%2Fw4Z6mpyW5f%2B9rCgQp8RcXIA86elMf1ez%2FAiozMBBgbOJn3BMIPWv%2FYnE%2BSTaaQuvE6myF50n8cUnorsncs6bQsp4oBGV7ufNdjhYxl5TehIefzV9aEoQdwroVrzKU7vKnl%2B9xssBnnjQpbUGlRpVDsZ3jxrrqsBSmWjbb3xct2xbKRfHxMzifIKD%2Be4VYUD39Tx5OF9EOhXu%2BwFbvr1kAU3DE5%2FfQzR158AZtUerJdYYDZDMZKqbVLCCavxiRNdn5yAgixCtgfexNGlsSf7ICYOWrm6CP2eWGHX1x4snmsz0H6oW5K8cS%2F7vmlu9nZTvuaS4qAf1KFJ%2FckpfwjmX9duKIIEyml3kWGuW15xZNj9b0nntx38MjLr504dfrsWagCn%2F3p2z9%2B%2Fdjzh%2FY9OQG8wcotnkRKVdDbkvt66CuqIvjn9KpvpMM%2Fa%2FjBtccL0wkFWgZHzkXHXv3R8RePHNz3JJCcJzypHi1nHL7GG9Rh%2F858EGbZhnkkndbKDP6ZskQVWP9gOmFxcPjLHruCrs7eKp6NnES3EzfZTlFIWD%2B5S%2BAhrSL87r8a7ZvB2wawJ71TmvoPGrvWgugbRHEcfbjP2mj5Zto%2BUWxiazsuh7RrVn%2Fft5G5LhmmrhGfraNjDXFJ2YvjV9L4UamY9cUe9uVI1Q6xAl2rXnzg7KcPm8f1tTewIuPs4dTTG%2BaP0iZRKJFszlckmywhIQkwiyGR9H8uDimNkeQJnbRzYXdXp8NWw57vusE8Q9LnyAsmNMn5WBOG35O%2BdGsz3Rgm0TEoj50OdlH5owKaLymqNIq9fgnCmi0trEmWza%2BQn2NeKMJ5gbZOdyfrR5M05yYe%2FmYUT%2FpxjRU2vNYpsBlrhYNsv2v304ePHn%2FjBDYpRbPHB8iAt4sFU1tnscyh4sEUv9hXBWPZd012GNyQSmB%2F1lRA%2FMmHiJmjZo5e687ku%2FiuBIyK0JeH9EPdFMFjs5H4Z0stbTROY40i8acA%2BCeQnfqAlH8rlvnndh9EmOg5H7gBYQP1rVeQoH325ddPnZGFgtf5M2%2B%2FeezZA9Nt7uc%2BfbMN3UQ29e84RdzXlaJY5cA%2FWT9MtqFTdwblH7YRYXDMuejtn549ffL1l5%2B1pbtOwlMjsmF2BnXnf5zjIMx9wZkz4sI7Ma2VEfwzZ4nMVPSDqYTFIM%2FRcIrwQwokNkBsrnmiCEUh128ERsQlxPE%2BrNLKH05wQdjDvHKA2quS9R8i7QmvoxNINRDHtDZaaKat1SEEwdZ2XBPNEQSNt2h2itlKfFTRxtkQNU6TWmdS9uL4lTB%2B2qKwD1ofui9nZDOqFNBFhRNaHzyGkYMUIILHVXSFlClrkwf0foghhEfVkGxYpMsQUm32Q6JlbXpIMbNvWK%2FtyaLoPTXcZIDsl1%2F%2FsQnNrP3n4X4JalnNhC4dt4ObKHFgjULYgMfNpuJRxRT7mFvfxK3AAToIa3L1vvsW8nPwEkQ4E7R1zken73LjqW9IjAe%2FGceTflzjXi%2BzXAlsKq1wgNvJvQefe%2BXEe2eRoQVImTAvzFA2MuDtgsEMWixz7M3iwRRH1%2Bir8tgfvHB0hVYB%2B7ObAsSfvyQkzgy5OMlwUXFeExTyvytJ%2F5nflcsPi4MUDS2Y%2BKfZI1P%2FXKNI%2FMkP%2Fmlz0FYpf5ccaAW5WoJd4FwOD2snKAKyQKi6fpVNLyRoT53B8U1d5069etScV5ltBO%2FWJq16lEo193XlJVJJ8E%2FWT2iHWB2Rf5hSkJUNg%2FO%2BPQ9ZsS5X%2BqDxAlMK3MwRiDoIF%2BqiRw2BQ5YR%2FGsf7r9RP5iGXVVrFRlgYwokboFRNPLDVqfP6yNttTo1lKrBuwQAEAghrB%2BpTmnyQhJKwcPOYCmc02hVK4I1EiESr4DXMLIwX1ohCLa2o7l9yuBX0AhqA0rMlhlaNnTb%2BM53JGUvjl8Z48eWdy4xwU6j1z6tv71x88jjQgGHLzmKESZsm4M88d77xDwqP%2BpoNSYWwUYA3DaBEhXp0kKizKcPadtshdS9PiGklL1ouSd0gg2G4m6iKHq3I2vsFZAdVv5zQkuWUq%2BRm%2B0RrU0xOEH1ApuEVR7zRzcu8dWPSlPsY259oM13cHfC%2BMf8HHZoh0y9%2Bk3Nuys7HlSOCsUTH9fCA4ejPAU2iQXYqrFj6unDL73%2B7vuOfsAAAl8ZHy4FbxcMhkUIi2XO5Q1mtkU%2BBVwL9vdGsNCDrAL2D%2FuAwa85Uv%2BEXOiZCpCrsG7S%2FNl718sU6Yd2YTzlzGLq%2F1wn8acI%2BKfBsfRO6LJVSPl3YsxI5swntzuE5OSFBvSUzViF2bnPSNCeJvQX0o%2B7zv33029KtYrKNk6qgo7Ztq2oY19XLuJVBP9k%2FbCeEpN%2FKCpgVzYMjhuXM2%2FjKcahCnRLRSaUXbzjVKYOwjm76PlRmAXMDP45IdCY8V%2F5gym7QIxdfe%2F3mAaJUER6xOaHraS500ca3WkwIi5pHffGtN4fblxlQJWyxdvHEnkhzFhsR1ys0Wir2jEg6mCyJLgBcotbhyEEwdZ2NLeb3hb0clDMFqC4o15WRzYuxNfZjHlx%2FMoYP7S8UwefUqEA3pZp0%2Ffbg8OPj1oLBLmGTGQmZYwcJI7Mge3QL9k%2FvMgSiBewIgC47XOWUKRLCSl4%2FaIRoNSQ0o2HSei0OoiESTHDq7vfkzVeAsjmum8wCkq99DVk9UI2iRNnqRqJm4fiboWjSqfYYwHXtHlyd0LlhfycIPTZIRcbO2qdjrzdy4hHE4WKxaPxEnvY%2BeoctggaeOu2ILH9yltnzhOjSQBCT2B5hB8uGW8XD4ZFCGCZwsEUh9YU%2BRSNSaMG6bXg6QRVDeIP8GtI%2FRdx49L082Iy%2F8XflcsPzZJOR67pxVP%2FbKsh8QdHqJzgnz82NPH1dlLKX7NLIlYUk9ue9UNZAGTNsFu5HDdm5%2FePneBAnz%2F307dPvPYje73x47dPn%2FBctbrb8VhDoKCYvKPPVL%2BHEWa%2BqlrgnzhYm6LH5J9xl2OwK5t9x%2Fffw7j8ranfSYrJZWjMTRgnH%2Bs3eZsQiDqyFuqixxsxVZod%2FFPd1BgH8AdTtcA0dtVilX0EiUhbwyjam8Ju8vpI%2B%2FYbjCiXgYeTlvnusYAmrGhNa%2FjwKV%2BPeMkCpowkA%2BlbR8Ea17XaW7Nyi62dEIJgazua248Z%2FIpeDsaHwlbH1Lggvs5mzIvjN%2Bvjx6V1OKw3eMfxqHZpDiPjEy1zoRgBtsi7DmcHeRRXeAByJ7V%2BDQB3D5W5IqOf9JBWahHlWrkhpRsPwz2AVGjCJMXwot0EyBpAbW7dP31K1rdXpNRrqxcbO6sXB57FJoFdju3axaIieCs%2FKlLsY269Sg3zeBr2VGN%2BSn6OEvrspbCzZv1QmJxgqrR4zEtSPN3Z4tF4iSw7%2F9qc0WHL%2FKMxIaSWd97nJmV3Pwk94ivjwyXg7eLB1H2qDhOicDDFSTUU%2BTx26gyEfuACS2%2BvahB%2FgF9V6r8ITNdd98Vl%2FnHlVmPCxyPpxz0GoKQzuMKpfwpqkfgDs%2BTc4J8%2F9o2dH5Dy7%2Bgr1f2gHEG3r5D14wTpvZukz3HL7Dx5jjz%2FU2%2B8avbyw%2FYyPVevnfh7p2PUy62O3QOaVoSTiBK3rx7411o%2FnS8YYwwKM4woGGFlA%2FQ%2FflTG5cjLPzRziMtKuBctbN8K%2FOc5snJfYBe9pnXlAP%2F0NcNO8qHA%2F%2BXOBURLqvWQnSvI0IHEHklbe6Po1Q4jQh%2FJzB%2BDEc1lptThp63MGVgAQXgW9RMUrsc6LKsTfT3orociVG8kZEjfOi9i5T0fKbe474ARgjjO1na5s2fMadf3ctSDZRYJK6oIjyNZJ2%2Fl4vjN%2BvhxZf0jB%2FpV4p9MG4G0hoY00pbaiBQjniFbRPWfgT9tXzS1%2FouI03asaaOf9JCY%2BC8rpJMJ3kMp3GjWLfG1p9nQnYknUJI17D08ffKN4y%2FKun%2Fk2EuHjKbZqDTVquqFcCmwEaO%2BTaRQKCpkcsuNisFEFPug3I8boQrYSmPk046fg7Vei3AGVR7FstFH2zLjaSbFU4OIbUI8aXhJ8WzYsxE5bElWdVpILee5SQUjUgJtnmxCB4PCANmC4WTWwTwoiy1TdSUEkyOrTpHPM29R6GfxTRXB%2Fjxd5U%2F9a5ieKEySX0KoEGDk8gPSDx4DEgMvKzhwRFS00iDxB2bJl%2BUG%2FxQ7QpGPcLIZyGpUh1Ay%2FzxwET42lX%2BI1ALZeUeeyy6xnzhHjv%2FrLx%2BRNOMeexm1te8dPf638qlI%2BCHNXzUUP%2BQVs5W4fVXAf3q9lR%2BEXb9yxpFusnfO473eOn708NNmXCSVd8gvK%2FKSICWGQPIcWbkvAJPErLcc4F%2BfKFJ%2BkELw9OSnsXMP2bko%2BAIkoli%2FteH9qogRoY%2F0xo8NRjSXKSa9AoMTOipgeF2vWthWVzmyn7I1iPOvjvjRSw3BgF29b10NIlaQ0IQBJeUWDXJ94%2BRph1uZWnC9HPSvY3w11X7HvbijGfPi%2BJUwfpfRohCd9egxCo9lg7XLgTUDkr6TRIUUI95wOJvY0WntkmFvqfWQ5Fq5HoDbbzTROT0tJJ34JzOheEhM6uiQ0o2HKcM2FnGk6c7kZ6FJmjPBjsTGi0eeOfDUtFneDh07ZjTN9ky2d46q6gUQHgxtBMcAKBSLis0r5UfFPrpmQ%2B2lgWJPHigLrmeoLu72Cx6x1yhdZ8%2BnJWChwjPTnyXH0z9jPKQF6HjS8RIfMC2yM6PDlsmqHgX213hbQredtp9fB%2FzB4gRPJAED5AlGvq%2BC6UaZHkWIEoLJzaeHyOfZd185TKEfZIUrcXFN06n%2FAm5cioISfE1zSwgVAYxcfiamQfphu28KXTFbjta723YUHx%2BG2E1e8K9l%2FoM41Uy6VbHMP%2BGja3Ghfwh2UHKDmeM2PBDP%2BTl%2F%2Bk1ZYYVg3MJlOMdTIlTxX0BnUoQf2bE6pETDOVotNVUE%2F7reqjgTrm2KXb8T09JNhoLIiZcM9J804yIJpz8n%2BFeZ%2F3BUYyBZPyk%2FikdJMestJ%2FjnOf0Z%2FYPpQvDw5KfrMVUhGxYkij6HTVuvW21M94kRoY90LhB3xd4QB2Os5zyH1lXai5NI%2BXrE%2BVdtVQ0now76sGTTQaqBhKY1oKTc4usnT9uo9HVeeMX2iKvjC2F2Omt0NmNeHL%2FZHj9G6YmKVl2she2fgJsZZfOJTXXEFCMYGbHjC8%2BiT77fSX6QViO8CMACautgCVURpYaELxESqqq14iEpOqcKKRWzxdzo4IpKhhdRdnvvQeKk86dPmMTGAUHWE61RQ1H%2Bm9deNph7%2F74Zqhfn0bhIamuhqGj1G0eFsSoeVdxHx7p5OsWewpq3cL%2FglKYtA1P0PZERL9Nf5cZDuB%2FFQ8GIOJ70Bls%2BYITZpGlRDcOm2l%2F3DXGnTxFvN1nz22T0d4A%2FPDcKG6PCAPmC4RmSaRWU6d8tIZj8Sjpo9j195nUzOysj9KMXtTj1n9%2BNi8I8nGs5%2B31ZkskNGLn8yC1ARy7bfXOFliKicsKJOcAsGaWF3OBfy%2FzzlMqyFfPLHCONDZlWCCVBxwGKctwwfT1DfHEUtVWRFpELmsrY818wVStF%2BHFtakg1EEJT3J584%2BqBfy2xxmNLR2c0iyOymphjOzaX103jw%2BSE6XwUqml7r6f9mBfF%2BedRrTD4p4qrYr3lBP9kO2HG6B9MF4JHAjtWhWwCJEKfw6atV4s7DzEidWOJDh0r16NCetnofRUzRft6xLkKWlWzHs0Am4ASllQDCc06ldYhtyhwge0tJqV%2B0l1v%2FyM6dsIEUNk1f070JJHOZsyL4zer40eTO0Bq3YizCQhbKwDB4fW9s0JC4kXsuP8gqtD2Ie1nY4739%2BqAAHhUSVdMC4m2Ay4kflk4JCzPcUipu1Dsg0ZXVC%2FXEGCSaOSYpDkV3SSxsXNU%2BpQtXvmHN8wh5cjhqHpxzoudUdQid1QsBMRRIduCSmvhqHQ1nRnyFjM%2FiRT7IKy5iPsFq1g0ZCZmr8VGvLxt5cfTjOLpXp8hHt1gy9xXJLLjaVpBDYOcHymNvyiMUtoN2Hs7PLxtbMhHxZO23tCKB4PpgzJ9CcEUaKVFs%2B%2FZEy8BFFLop7qp%2F0yORBrZxcok%2Bft9WZLJDRh5dhzZZW7BaUot5G33TRFReQ0QGoc8NBVA7rMI%2BKfMP7MDsVUFxihmhTCtwBIlOUBYWSjPCc%2FXU%2F6BMcyCaXRVbYZS3XpoKsu%2Bv%2FfQD%2BRTkfCzJgj9mKCYssAwKL5x9cA%2FpXSa9E9jxxa%2B4lEAW7gv6Dx3cG8bnY8iMrGtvTMkbFBQ7DyPNQqCfyq9ai5dEZ1%2FTlVgQ%2F5gCmExlnbQqpAWJMo%2FbdoaMLadjBH%2FwdnrUYeazvSsy5LxoMqHUd8y2ytZj2ZDI8KCzyNMg9BLS6V1aq5YpvqP3zBk%2Bhfcdey1vzt2CK3q1KUkoYYYliSRzmbMi%2BM3y%2BNHk7sOBa66ZvwH8g9ql2%2BFuJjMBnZs7%2F7WZGBFhb7altXWaQSzlCg%2FmhqSG0cm%2FmcrJC4fKqT0HJf2QdNwiVa%2FRNknXNL8NLxcTGJjWLppf98Tp989Ze6uuVT14uyJY661g%2Ftb7qgEvK1OiArZFhmrglHF1fSWIsK2SLFfpSn2SlhTU%2F75xGlhzdiIl0BqTuIhX0jHk54HfljZXeoCUqgWAn8r7G9K4wf27wfwA9jAj440xw1zUFC6bvhX6criwXTLIYCiryUEk98999ip%2F246QfdaOgiFfqqY%2Bqc5a%2F7MP6cpgUqhft%2Fc4J9nRwJc1r%2BKt%2FvqzZSHfqxaQj5kDiIr%2BGflgzL%2FPawEjymI2UyS%2BeffIeon5R%2B%2FyJ4ifDMk%2Fs8JsWVqAoreRmj8AXOtNJrKQvaV58p%2BKi0d1BNyZ%2FimDUfxjSsH%2Fkn5dx8jnI%2BceLOSTMdqAvPm3bu2we90Zb%2FhQo9i7eAAK89l4LIC4J84gx%2BluMOv7qT5Dn8whbCI%2FTnCruwOHXAgsYG0tXfnOZSIEY8dF7VpdbxC3sruYPoEqcqH0QmGVtWAhdQQlLw1wgKpRtpqe9FLq5TWQ4%2FqMckiHtzvLuHY2wyZ33%2B5G7c8hg0dtaoZs%2BD4jVwcvxlwo1IoQLmDjH99BmhjCdPuhJLMBnYc2bGbmh8IwnHqmwTctEmXiFTOKj0kxqC%2BLBoSzyM6pPQUe2Q6pmk2wGxE2WeZ9oeLu0lsiI5mP9WN3%2Fv%2Fzp3FFW76e0b22Yk6saktd1T4OjEqybZMFo0qTqg0NBFW9%2FBqin0Y%2B4jyzxU%2FWHL1REa8nNqlx9OfEA%2BQbRRPehoY7nxOtIs8G%2Fd1LxtuHc2G2F9K4%2B32kzsRtWspEsHirfAnkQmgChnq%2BS8YTI%2F8D06fgsEUuph09qSfo2%2BegwakhM1m34qm%2FgmN83P%2BUaAiUCna75sf%2FPPsSIDL%2Bpc%2B3hRv%2BSW9jswisg9zgH9WPiDzX1OUcqb8FdrG7CWi49%2FRKkHNANPZWkSdIqtUtNeoCYqi98r7ly295%2B67717ymWX3SwuiLMzfkU9Ffj9esMLwSMEtS%2FGNqwb%2BObsmLFLa7gbVaW1T8odmqXJL0asv8oy1Fff%2B6%2F9LnmotcRqqi72BR5wb%2FGPECOLYSBPKKTnBP8%2FU3%2FY%2FmEJYZFq4Q5FPO7sPeOZ6X3DnOfZmwIjnA0YEPPwBFpiQecGLrcKs0nM6qXyIR0NZVdccyoaGIEQoaqGtFhKaE09SaZ38C6hTCn94qu2uKSHazxgfTSHx6MQ6TsXGb7sB2RfHb0Y3LXKcQlo9FhxDdu28bj4WH%2B5pYEezMkPtWzXn45hPpp5uQ2BEqSF1r9eJ%2F9kLiecRHVJ6ih2pde%2FFEtFs%2FAFPwSRYuLeGYd%2B88rP3Lfdi6TzrsfxkSEvQ2wTKZuNi3qgA5j4gKsm2DBWNKk6oKCJs3MMbUexFHnMmyr9b8QnWaadLlEFHrdLjMYFE8VB4NCWepHYgLg6BZ6MVf6iGEeB2e9vwyETblcZwphOrQjEHlNuHx5ZpUlX5KxpMzavqnC0hmHyAerkn%2FZy2OlQmAEpAVjT1HzTwiyTpVcm5YL9vfvDPQ82O3QC4yfWv4i2%2FBIroKQ66A%2FnAPwe1rYR9WBNkBzsBonKSZVBuH2HtnQQdnSU8Q0ZxG8qDDy5bsviOW25auHDholvvuPveFTW7NH8bWELT%2FEl0V1uW4htXDPxzdo27pD0p%2Fz1sALAUYx7ozrte%2FY3rVt5792%2FgqR7T5mYub0O1NZIbioB%2FJpJwqXJKPvDPM%2BWfqx9MJCwSNYyDXRljV%2FSEUhGe7jznOpRNXidGBDw88AwAH85efAkith3VLFU%2BjPzZtmu59yZlQwKhHv%2BChGZrYvfBH0I9kID6%2BFH4UolySHNkGJfo6u928WED5gt14Zod8SlB40LjJ0a6F8dvRjctUvzXM60enwGkLycMmegimcbQgy6ZvcEscVMSUrD6cRa6w05cf323E9ZEzooRpYUkvydfxon%2F4iEBx0UhpaXYyY%2BAC3tMsxnzR1GdIpW0P3zmaivuW3LXr8KXbmibJZ%2BJnOu580I7O2s0N0FaaoMWtpyNi%2FmiIpiLo4K4AlL50JgtFpVeJ4mr5SUW10eqLKbYL%2F7lCyj2q0j5lxWfDNhAwVUoo9R4SPkvGI%2FOtavFQfNsKNjq4DZpNtYJdHBL609a1HU1acRVfcaTrU8aiMbsY0vEEdpZuooG0yMMJKjqlBAMr6zeUp70AyqIaJEu%2FTVmg4vXFi7tcte82Uv9sx02l85%2F8Y5fVsR4kM4LGHmmocxnXP8qfvEIT96PVhzOA%2F5ZTvlGW7P8mT6LZf717KWGMHkoPEJokRv%2BvvQqSNSmKLZi6Z2fXnjD1Qu6uuZfec0NN922%2BN6VFv2jixfo1qUpKC7mYnRblnIcqxr4Zzc5Aqbld0Shlhd3S9mrv3LpHfRtsj1IZAnpAWFbYxHwr0eMmVLoVOUC%2F%2ByjfzrpB7UQPFEDoWGEXYebsKrtE%2FaKcuehUF%2FAiAIPpw4A8GGw%2BBKOYJ2t0nH5kKwVdpuTvOJ1wxWhvt9LaGJWnif94nXRzDdRTTRHRDN88yZc4qi7A%2FHZnTMquvF5IqGL8eUfv%2B0NodnULo7fDL21wwrlJyf%2B0ZeDERM%2FqFdhODa1yyaz11if9M4kaaBSmvi%2BaL7HR01FlBIStf6Z%2BJ%2FNkPoTQkpLsdc%2BgGbjj6K7FMqWpDl85lbcu%2Fj2RZ%2B6Aa7Ug77t%2FMXjxubxpNDsRXNTSEuYrwpl54tKXuOoPN0fUYnG7GxFxXRYSFxpQE%2FqTTrFXl40xV4La%2Bo0TfnxxJR%2F8MeyxEPM6m7R6nWaGahcmt2yNgPcfuR3t7R273KlnqYzZAZzGEuePxgL4sDyRCGrQsF0ewbS6RKC4ZXdWwoDZOwWqUO18PLZSTcbXHbtJxe664Zrrl6QFvS8LnNd%2BrE0r6pgup7H4bd4xy%2FhNA%2BueU2%2BeKShzCfuMetfs3YtULwfyn0y9Z8b%2FLe%2FPjEUs%2FypBhbJ%2FHP2UiuycaEFVWgAUB4XTqUIKuLL77lt4VXz5%2Flpc9l1N4lguTxe%2ByBxw1XJSxwoE2LEg%2BWGHQjVAv88rrbY76urIkFPaSfYYnZonDG3823iDhYcVhXzn5k7TLni4J%2Fznw4VucA%2FK2r8weTnJhhAN6nIp7ArTKrwr5rdl%2BnOo4T6OjDiZnGC39d27DO8RIw2gkN1goxYK51W1SGbqOyqBvohoWky2I9iJAldXxZAPWmiMgQMcQt9qH%2BNuaQmvBnxOSSGF0pEA2Mnxpd7%2FECZ6rk4fjP31uIj0lQ8MfGP%2FRuCBfCDMtEZnD1ik9k47CKHwiCapNrIEhmWUR1RekhR4r%2F0kNJT7KTZ0HQM3w6SrhBmDyjbwiRUe%2B%2B57abrruzqus7g7No6Jzj71IFDxmbuBaGdHTKam0JaMvPV%2FGxA2fmigmFDUlQQV8Dpc%2BW9i4tHpSXeSFllxVZRb9Io9uORhAbLxkQAiqBZdjyU%2B9LxdCOxlyEeZam1FpsbFwf2a6N0I2VMiljaDg0Pt9dBpQQsPQgFw5AZmiGtBjo7eDBWhLZiwdQCA6mEYHjl8pYypJ%2B3oPRje0AvmQXkv%2BDqGwwj4%2Fa77rbX4jtuveWmG4j%2FY9S%2F4OprrrlBTgmfvHbBJR9MXP8eneByQC5eCSLOBSjPORqymfjnUqzDKoH3g3CBFumYkBn88x0h85%2BY8m915oc0xuRd4QLRSW%2FVVCAcsJDdPgJ%2FgvqyxTdfrybJx69YKOhf2FMqHm7vxM3cspT2UMXAPzlVregoxbKrfEzSzjg0tXt%2FXYogVraRO1if9ViqDdDyoBEIUJxyhWk%2FXMPZkZMV%2FLPbQYH%2F5OeGiuVNKNVH2NW1qgK7oiJPdx5CVxHqaxEjfv6hDbLJUyTVvgQQpB0SeIJknMqfbZO3qvYlYQrQKbsq86%2FNv%2BfELwEsBLoKoG5IVBse6q%2BvfOD%2BZfeZyzS39MOzxitsNTnJTWCPpcSXd%2FxE7PPi%2BHUl9tZC3N8ZfLFaESf%2BqfAhflA4Lpk8nySz%2FyUOu5IWiYLoUNVXOQuyVVNC6qaXEuU%2Byw0pQ4qdCX%2Fr5VajpCswG%2BrgRNlyzpNq76LrL5OK4qXX3WxWOW81Nyk2j%2FshrS%2Bam%2BDgrzQ%2FG1B2vqhwME6MSuj%2BSOUv%2BbWbrisWlT71kqCpmfadtl0xxX4RFk0Lr0EWVa6ZQSkuNuL9ZMnxOPKqCSSKp5uJvTiedEut1QNssMXiEL16EUt2C1q4De3xPwOOkHamkeb2BgiBLRzP0Nnh0JhqZS8WTI0MpBKCydftS2%2Bpd84bEjiUfqBDVfitu6664aZb7li85DP3ffYBXLL6Lr37DoP%2Fr%2BpSrCChbQD133TLrbfesdgcE%2B66jZWHBAB7GIdE5KwzQS6dpVcizjnRtMY%2BClBmS%2FxzKU5xlcRVuFBBJM3Uf2bwT4PXPYkpf51fJsaMwH%2BMDJqKCuRPLDyvLL9n0ScuWCIuMejf9k3vUZWIZshXrVRbljqoVQz8M5zH7bKr7blYdqWFglt1rWkzsk9bt7UcNAoCxFizSfnHC1qfVQ2s0OkXs5cdOfPzgX9259sfTCVbGswKwvoA7TgDdqUeDDLY6MWjtyI1ukWojxhx%2Bf0o7%2B92EzDMwwRweFZ9oKhY7t0YAhxsRpr6O0cNhuCdBLAA%2FWJE8IJRtLp%2F2WeWSO7EXHfcvXQ54pvy8RHDpsY3P%2B%2F4QVH%2F4vjNT%2Byt7XXd9%2FJ4uWoF6wA6y46u%2FL3iB4WSxEajWmCS2VY4oh2dQOisGuUsyFZNDokGX3MQUkqKPZFm0%2FLFSmI2omxJmku110GTSz9hSr0rrNP0cENsHtsw1RXNTXDwl%2F4afpZX1qh4ME6MasrQ%2FW0q%2F8YrPl4gqmRX94hp309ybUSx%2FxeU5AzEHJfgCQq2WliTchdlxoNA7EszioeAJIonzQ9VGrPDHRsGwc19u9d%2BjVff085uQeloXSHxfmv3DmvathFZ9pbMfrlHrqsbaEz5jhULppuE%2FxKCydvtS2%2Bpc28a%2BRen9HNZ0dbcy6791KfNOrvs%2FpX1NWvXy4W6q1mGDf7%2F9I1X%2BNvbdaWwghbdCtR%2Fz1LJzJhjwmfRc5AIYGWVBzzOkBvviv24inVPE%2FsqtKjELPMk%2Fpk7TbnHhVsUCKU5jFnBPw1e9ySm%2FLUmRIwxCf5j41m8qJYBHB78ceXm6xCxRv9eMVUAeyQiFOWrSNGqIPhn%2BvsxLrvKnouiJDzQQisBQwPeKbo2rdCZT%2B1617PQDs1CEHIK3LwLSX3SoA6iAbnAPxvJ%2BYOJzw3TmGNMC7sFV9tV9SODbVX4Tp8nNQQa3Vaob8BjxP%2F1NzCJ%2FkTPw0YmcIilgZw1VlxYEtaa%2Bu0n8YNhG3xd4E5rRAD1Wrtk3rpIWJOSI7npV6wt11d0fK2U%2BHBr849fvefi%2BIXx003JbKqHvo6Hka4OEGXZJcXW3mb8oFCSMDh7yZ2LbrDz%2FU94AokqoAK7uA6qVTQtJPp9me%2BWEBLBvwopPcW%2BTXmQkSuNIiWo9cBsuJkeZUvSvKPa%2B7ErFpo%2BLwHamwbF5tFcQjuD5qZw8G9bqPQKM0fFg3EUFbG%2FJBWQyucKVTQqSrxd2PcW0uY65RNYAv%2FCSnIqLc4g7UBhqwRhzXLjaSXFw9yRiicl5RqVathgi2%2F3epdmiljapBScvTGPbMrq6akd2BnAr5dLlou%2BvnWU4tfp4fl5g%2BHXJPyXEAyvrBKT8JaSOoRk7GZB6efjhoB9211LpML6kPFfsh8GHVc2DWOqZDZte8nlNy4SVpApDwD114STaY4JaxNACPuZdu47LCAwwzCQR6yQel7dVIJp4lpeUZU47V2ixD8gaSZSU5YhIJBm6p%2BSohnBP%2FsoJhvJKf9ONehoIyX4j5EtlwtiddZESFRK9EprK8aj27KifJVuQagW%2BOfdeiw6GLFhUsmRB4WopSvAz2gOO6EzND6R%2FEP3H9oyYjYEFab5hUy%2BgCVwk5hEyA7%2B2Z3PH0xO%2FG93hdaWex2jUZDCrjXJYE%2FAf8eF%2Bj6oIdDotkJ9HiPeaCdROxt45ZzmPVbVKzpWh1ZCBjg%2BKn%2BL2pe4Gbt3gH7Rb%2FACiqXXXDm%2Fa57lUl5n4ltnlsAM4NXjsovjN1vjp5uS%2B5SFLpPuArijLPsJpNgGjTuh3Qvv%2FPSNV7n5%2FlUEAaQV%2FHTDQZ9ASdVPU0LqXs%2BQkPif3ZC4XiaGpGsSxEfbZZrpxP9q180hr6DWA7PBddSi7AuT5pcsMDBDgLakFzdukmujAQ%2BiuQkOvmKFzl5UPJEArRWOKt6jtY4Oz8CKesODbmCCUJLTM%2B1py7vd6thGRrxsLJyzeOg6kB6PZn7jFgFXB9jdc0HJxpN%2BJCx44JhbBjWbO63yybfd8a3WU1vrstN9vRAMp6ITEBIZ2FmCqT2sgwHOBuG%2FhGDyXFd0SkzKO7fB1S2o9POxyzD7P7sSvVVy%2BG20zCU6EJaAKf0xtufl8oW%2FtkRYQSvrFvVvgBrDli1qpY2VzAB4MhVAeITFzE8g6Oek0QDX8opbn9LfRSf%2Btfx84UsPATcQpv6dYwKkWTKCf8r8JzX1cYWIZf7nK%2FAfGc%2FqPgAEwsEl3SspjzPaZg0i2rIi8E%2FaV6XAP0tVT%2FAzdPfHVRGSLUPi5H9f6TpcBftT8cflQoAIyKOmgLAaiOwfRT8BAAKkD%2BYA%2FzxVttv8wcTE%2FwipwnillzqhIVUhQVcXygptooUaAo1uCPXd6TDiL1ja9EQW2grBoR4Y3qfQNNmZ41zXY3U1t44CGtsnkzcD9Iuli29jmxQn%2Ba9hCfxwtBWFyy6OX%2FHx0yV%2Fqik2NK%2B%2BSYMNlWWnt%2BK6NbUHXBX8qi7Md4e0gZSUlxbj4%2FFGdU6lhcQ6AEqfsxwSixE6pOSNu%2BXwEUJjfy37Jb3iIYTvHPaH6yhQNpPmKsu4eKmBEAZByFVfaWgDRnPzNnDw1TVrUfFEAsX%2BJbMaFYad%2BfI4jX%2BhQ56m2AcvLd0URoe9yIiXSHJu4qHrQHo8et3C87UaFMBQqpHOESUbS9IPPXDkli2785eB2Hft%2By5KSoMbBGfLtaq%2Bdr1p1ibcJpcWi1OWYGKraJwd4cVZQjCZLq6CQWLSUUAeEZWOKwq96ydw8DXnF6EvjTRHd0rjyx4oQEN6QY43ULuSAJauNJ8RJ2Sg%2FiHpdPiSTsXHgBMz%2BDD1fvK7fEUizoX7fVNEz5IMGbkUR0rpJZL%2BybODNMuCrOBfy%2Fxzh6CcHzd9Zqcjmf8Y%2FMsXj%2F5OOEk8FrB6ak2Em1%2FzK4HmTzv6GPyreCoK%2FlttVXCPqiL%2BPEv4vrKGDk3RlAP2pz411DRI8wCPmrYPGNhsGmKMUde%2BqMhE4YDM4J%2FvO2wu9YNRwYyMhpZX5KOXOrErVSFFBt5bGp0%2F%2FaZhrIAaItAVQn03AiOGx6SV0LCaAg5ZElHgFefYwXUPE3vJfalZXc0vIDHmcRRvxueFfnGLwQuIKkEGKrVhVTXZXxy%2FouMXl%2Fwb1koXUOYhLapJg42Q2vGCerV%2Fs%2FSexa7%2Fjc%2FRpF06Yy8tRhvbcWcKqT7bIXH%2FUyElF%2BoEBQIfoQtB9ddKv%2BQ4jqBIkUL4jpIoG%2FuJsmOgfcvtdwl3QC5DO7v7LqO5eW0KyC4cFU4kUOy%2F8fLiUem5qQwulaUW6bSc6xHFXmlxOtU7%2BzaJRrzXzF08hCMp8cQFS9cGNEy6lhJodTybQPo5%2F471wNlgbtmi%2F8U8JVDIhkMbMtLrcW0c3CIyrR0Ozm9aLi2SzEWC4dmxhGCyXkRK67zEpGWASB0CSeC817yrbrzZUt5M6OKnMmUa3g%2F8%2BbfN9Z%2F2P2VFl0VxG%2BhfZtY68xmFG4f%2B5tZEu93%2BY8o9JUhPUe%2BHGDuny5eG6kX6fXMdJ3gT6NOU4JFaEumf%2FGweNLKCf8r8xyz%2FFlL%2BOjutE8zpmX%2BiBQSSXhPh7HjcpbXV%2B0bgn5WI6oN%2FdkEnVUUoASw5WpjZUuOStplI7QYRkvX0B1MVsPxdL7w6JIOxYWcC%2Fyw2b0TFPOnRBMLkxxinIh%2BF4Aciq1rGKa78xm1zEtQQaHRDqC9Cnn6sdSNLKjhkdPotxGrAxOGUa1q4L4h00Ca141l%2B56cNoP54Ul1EN34EqUodn5rEF8ev6PjF0skNR1Z0aJ8am%2BvJtpdd5xmXZee5eLFxJ%2FQlCT5HLS1NkAL%2B1VE9LSTUeGY9pL4NaSGx6hzk0Gfor9VH0NYUUqSURIHr6C0BZWugveDqaz8pXYO4FolU4JVd6Vtv8aggO3Ez6f6FoyJK0QaXkaVWrKCBcb%2BJKXrW2wPFvj%2BYXcaqPFeWHA9rBTqemPKfHg8LlizV4NZsh4q%2Blo11fHZy7J0Hzgpzy4C58H%2BNjJQVAzYXYGhjVAzaPNx2VPhNoBkXC4ZnxxKCyXqRI%2BF0hDpkHxfmgJzku12%2F6M4ly2tW62p0lzipH%2FxzaF3h2vfUU9NSKXYud7Y7SVhB6Iqf2rNn%2Bqn9ez2mTxGs%2FG4GhMwzbBpJpyjyyQijeBNaTJ5Gklelkf5p88sJlQP8U%2BZfs%2FyZ8lfZ6WiLiMB%2Ft%2BL8a2XONCUlzg4k8PqDr5dKQUZvWHnwH0OAuCrCVfe3N1i6P3QC4BIC%2FUYWAEj%2BEbTHeaeKTUXPvyAS0CwQq0k28I9N2ZQEbcV8KRVD47%2FMj2F372EKwbtPS%2BwqpZA%2FxEjRlX%2Fa2ESDGgLoypwcwaEqr1CGFrAqDRyyKMjjrHkwBD8PG01KZolIs9nkhfCiWf7PupJK8SSCcF%2BOz99xfBfHr%2FD46eMTRbOI9hXV38OCXQBcmhF33QKaXvI5Cr08v5kC%2FplDyRASEq3%2FpCHpZgQuOxpe80seQdswLlGSKEYB5Bc%2BwEZU9AJxXTk%2FySRodqICdmNUS8BeLhhVzMzVBpcUzFGWWpGCBuCNlt7f7ij2dK7roSqPbh4tPx5S%2FnU8RCMqnvTEP1wrlQZwDXM7yMb2kM%2BOSQ6OPTxwbrv%2BUoAuWxd4ydoAtuQSGDq5Z9%2Bho8elr4l3mrnRDMHUo2BI%2BikhmByXP3KIjpAyfLokf9p%2F4W33LFvZ%2FzBkbk3oBw8bXzsYP4aP859MxmjYov%2BFwKJPTO6xergHDx%2F%2B3l%2BluneRu5IBrnDJT2rP5RkiH%2BchbwsxG452YWFJoPyXR%2FqnRgzue0bwzzaKPc6WS7P8I0%2BtGEzH4H%2Bl2lr4Nm7FSldSuuSfIe6JiChPt6GfT%2FDPVReUH6H7i05AcAlhAaCpPD7pD3YyFJuKM99oHv2IXd4ygH%2BmME0z0GdsxZzHhyjHSf7ysPQydyryhXIHGx%2B2bAqC0m%2BJK%2F9Ew1QgRdkEGt1xmkAVtwEvOZUaKeCQH9b7TVj3rKGG6XuCWRACByIzAf62306xlGAJ4SxPKcUTVWPGB%2BO2pPgujl%2Fx8VPomKJZYyG93quF9XHEBghJ7IXn51XGJIlIW7EVP3RIjTkIKWpGcPMtOcW%2BmkRturlb7F%2FYdXSWokKzJqO6sauU9Jw2uKRgDl60pRbwC%2FLlSNFrLc6m25eZfe9NodiXHE%2BrUDzMtetSjTu8rdQG1nXy2UPSfFhOuNhOAH3tLT1%2B9HvG2o7Z6QPPHDn25nvA6OFOK1Z0ajCU%2BQzB1MsIpnji3xWzsFvT76lA2t9IjQxs3DwEf%2Btn%2FhJCcNb4MRQy9j815dD%2FLZaFsv%2FQYTjhHXv1Rz9KF7kkd%2BW7hMjFhDlzpDwZCEsJ2cVDiZ%2B5FJdK%2BY9blBkv1T6zgX8WEvaQkB6l%2FP2yoTj7CvynS332s1apsXq6GbmLKzQAIK6fYfDfVI5f47HQ9uatje0wwbdin2D%2FUBWRqV16fMrKe%2FI8Vl6S6Ap7XDNL4Qubl2YG%2F5ABcxVzXe3XfxjJFi6%2FVOSL7aoaW37vdxkmlA3BjKotF2UTaHTHzyQ2LE4lytqx58LfQk7qGLxOuOZqK50%2FKIpnG531Aq1r1zgwzKUkDUeF%2BPqBqvnsBFVbuz3H4PXi%2BBUfv5his8qZZyuNTYSnjtiRCm4i0rajlIy0NVsxPSSSf%2F7pQ9LNCC0335JT7J1EbZiOQhJF9foWvYpHdciWNUs4kbC%2Flmk0xbTHi%2BLRkrnwixem6PG0Yf9TnJsEin1Z8ZAhVDwediqxExuNtkz8KwPrbvLZuR2BY28aWi%2BhNRe0gP7%2BtWPG29pdR148%2FsYpFMRQ4OSdFip8hmDY9RvOAmUEUzzxj1UA7I9hJoAzXRS4lbT%2Fg4ZovHVkh4H%2Bh3%2Fw7AFoQMP4UbUw7Lfof9mvO%2BTw1z%2F60Rs%2FPnny7Z%2F%2BVDV0pnBXvk9yTG6KQszSKSZynkU2hXVHLsVlU%2F5jcVKt9rkgG%2FindcKe5JS%2FlvnXo823IL8%2FpuhjG2ViIQX8c%2FujGTnfQttk%2FUyCf56vWEyN%2FcpGRpowwV%2FV78Q%2BnUsI9Rt9ajdIfXPlZcEt84TiGcJdpMVihQP6zwD%2BaQDiKuZdyQ8ztCTwYvchT2m60K5qXM4%2BfFQBdzBMojomyibxM6k2LCApNZWU8xwndQxe2x5AyHLXtxYCbrghPqsYg%2BF4CUlX38MLs2ncnkeTOfVk%2FVwcv%2BzjF1Ns8IsQ%2BQ%2FtvsFOLzwe7yn%2Fu0Sk3UpB2gnrYFpI9TkISa3LwNUcnoQUO4naQh5EWy1bhwpfxaPCgGFlKyWqK2cg7%2Bh2FExbkncCRfifxyl6PG3KUiuBYl9iPGQI1QrHwxmuezQ2qcS%2F49vUyGcHz4ZJ83vcCfeqRfesWGsNm1%2F9x7dPvPYjd71x8vS5897B0MBt3ukFWYKB5iiDYetxCcEUTPwj5%2Bz7Pus5E%2F%2B0tqsPCO9g1%2B6nDz%2F%2FvJSGoQEN40dzraR40X6ncbrM6Y385Cw%2BZarJG8kmJP1DNbIARUGnnYpSHrLIpvAEpsET9ppyKP9x9YNqnyw0ZAD%2FRLFTzeSUv8rJxXWWLtKDmcl2uxVzhYFSmAr%2Buf01LkD9%2FZFN1s8a%2BNcMJj%2FgpET99zNvvfLs%2FqknxkZE5adv3UaKfQ6gazPoN%2FrUbpD6xhzgypunTH2hhhYEMbyYGZriEsB%2F0YkMgGlfrGYHC63%2B0wp23WGKGuv6LwCbgwP1FUuN30hXwobXaKgNqxERxJlHUJNat8KjmOq488ayRQTc%2Bt0NAcB4jLsqwTDBZuISchkOXIgvCGioDj9dLovVdDh%2B8oxdHL8M45dKscGnBduedno8Ygd5hXvRx5KItBsZkHa1Q9LrMnB1iKWl0DbqTkQkXjYAbbUUDSt4FY8K2M01a5YR1TUXkmVm7K91ZBlFEf5Fn6KPnrbtoRqQQLEvNx7278XxmJcM8VAaEbn2cIuY%2BMeX4Nt0k89Ono0ATpJQ511%2F29IHzc%2FugHPJT86ctRdgKG1MBG7zTmcJBl%2BGYHp4diwhmByXJptT8VHeOedufJ0R%2BRGFcZPaf3Lfwef%2By3OmI6w1DA1oGD%2Bay0j6P%2BhsC%2Fbbsw%2BQKHVutMlbesb9EL1hclEUCO8KgP8ClQQu11BeYEzcazJmYfNWP3Dv2fKbBfyT9yQPbVLKv6nYsxFnn3rearHSLGHgE8ySNPDPhDBVBfh%2BqpePi9XPCPhPp0S98zqUF6UFc12vUH5GWiNO7BNQKdh9IaULHWtKfWPKZbPM0xQKSofwoo0J5fBmE%2Fyz34b5WuA4lDNIacKnXS3Y9Ws7ZwSby%2B4xbpsfS5T%2BDmku95Xe%2FniA1JNaS4vt3gV7IIGrshSi%2BulviCCKneRvMb4IbCZpSyvnK3Xw9hRbZOOSdfTJIqvy%2BGGmVmr8kik21NiElS7Z9tzhmGVfQXp9jLRXqe4k3QKViLTTQ2oNlxKSDF0UUjJOQmcku6F5HqEt6moikqBCtI5u7gWv4lERu7lmzfxRpffXrknsr6WXteowZIpeW2ohmcYsWjLFvvx4%2BDaMhypB6fFo0Ip3CM5sTPyTrtVNPrvn2TBpzqayO5dJYgOe5a%2BfOuNwNtH2eyeMjQngtr3TWYIRsK%2F9B3h2LCGY7BeXaAQVvJ4yvzMpujffs9wqjBsrmGdffunZA1MTpvEQGtAwfjSXMfNduqJmDYu%2F2bbnNcVBUSZv6dwVrsk5hS4J7%2FKZpmmsmJmwT4M4Ki8QCGb4XEWqFaxVUD02E%2FjnaUrGT6f8NUGFG0TsftwVq%2B5RH4QrWD9TVQonJI4n9j2mwNj2FKhAXKx%2BVsA%2Fi6xceDU74dVXRSZMPEKMQfhaJ%2FiDY8Dm4WYzdG26eigUU1gXZc9f9oeAaV73Tpr2DxNMGuHMPvgn%2FNAOsMDbIK%2Fgdcef7JbHiV3nocd%2F0fV024wkHLjTya8myF3EB8hIWgzoZZXtvR6yfU8j9oZA%2FK3j5jK%2BtAWAAv2MDwCG8bkX7qvKQfdnbfzEeaZC45dGsQlMmxrZ9tzhmGWHpWIS0saNoKi%2BREikTSaSGrLUkJjxLyEkbiYqpBScxG5oBKqp9oRJQElWhWhW22qLR%2BWtUIHdSuv3xUtify3mgeowZIqe%2BTf%2FNoH8SpSuH5Ly48G0iePpYUlfxZMCWulP2eHMVtN3rJvHtcCz0UnzSwzXZjkA9%2BTeg0defv3UT0Oe%2Ffy5904cP4pkmms2X5ApGCb%2Bg75Gu4Rgcl1cokk27%2BB9X5YL%2B19hxDlM9IOS9hd1IlGD2IHGQ2hAw%2Fixa%2F6V1y68zZQHgP6%2FiXyDWzswLNHxL5W78pcZMuScyVSdjDn6RcB%2FDsI%2BZYabPBby%2BMC9pvyOX%2FrGyUBmAP88SXy9nZzy1%2FZ%2FHJ0Y%2FG%2Fo4%2B80sHs5Ii8WCZJUFUMgOanXIM5f5VSvowaAcBqpOPjnyYrlEC7DoS%2FRnLVd2r8PxDtQfvpXxVa%2F9Tr7OVkXZc9f5oYfErz5FPOCTp%2BywJ9V8E8pedLFHLJkAmibJ6%2FsGG1rKeowCecnPpNkhbg5pLNnzSjbxQ%2BkG%2BUm9006p1wjf7a96YzO5Yb0CKz%2B2oTqz6P3hAKbiUxThkL%2BDntdIvU9umrr8WtUffz%2BrF3F8dMUmzWBYhOYNt1k2%2FPZQI2VWfYkpB0O%2Bk110DcvKcIHKSEN9JQTEutBDCmxxZo4id3QXiiRJrvEbJQgkbbIEpB%2F7qgouTLrhH9OeyrcpvXXBrLMTebeK5TNHa%2FBBrF%2BovQIZZQdD6ZNFA%2BhSEo8cV6hXytsdkeJfx7XNM8mwMp515l0NcwLd03tM4j71Td%2B%2FPZPhWxz%2BtSP3xC0PS3JNAu3eadTg6EQgfb6hVJUCcHkurhEA1JR4x%2BgO5fCp3HqRY%2BhpP2PgZ%2FUEpbmg6Y03GGx%2BLEF15nGAEH%2FrSe%2FJQkHz0Ej7n2Gx7907sr%2BI%2BTGZ6ipKX5yqjREahjEijFhPydy0ntr%2BR2%2FOPrtZJd1JvCPn%2FnGzuSUv2L3RpZqRLgTVqfbpQbcvswlLMhTOFJV0kS9LLTf89hgXe2B%2BqM1kINdZfB%2FQTlEaZN4kCJnbab9tzYs5admhf5p9Yv2TRo4UXhY9fxlxuPx%2BTVG%2FxvNonXnohtmC%2FxrEyhuQKJX%2BdDveVF4qnOPDW8d1V3nehLGIqOU%2FlbIwL9w%2B0tyrdaqBDADWmtuyyCMDP%2FD8LDxxRqoo%2F6582t8ZAg21fvN%2F2Daq0znQKnni4022lcZH8cPv13t8fuPtthdufGL7bRAsVHp9Yay0mVnDbPs8VL6hHm7yGY4kO6V5HFlQoq7pxL2OfSUBJRGOzR7D01aQ6XYKUECFaISrqSoMC9SoqLkSjn9vpiG6f21ylILCdGAsnXLGzlARD8KZZQfD35fxaP7fdPj0XmFum60TU78A94ong2XGABuMGQFcR8%2BImqT5jr%2B4gtHnnkaUjWycwFuZwgmahq3mqNQiiohmLwTn2ofNvGfXeqHgRuFT%2BPUi6rFoaOv%2Fp1gf%2BQbV5g9%2F3qlAf1xUyNAc8PEtKA4xcJxauNpxz92g%2B37PoFbRo9fpr113qlA82wewr7mTOT1HC4atB72LOCfMv%2Bj5KMz5a8fcS3zz9HR6e1%2BJbsXPNe3d9hRgaLEElWy7i4VrV1FX%2BBpvAbqwa4o%2BJ9saqNU8hxCxlMgUkswdg1p%2FyaZ%2FzgGBKvfR8RwkHZfdBvXPX%2FZLjKt2NAUo38JwWQBbp5F8E8TKOpL1cFmenTLsD%2F5OXXu8ZHNfvMCmGM%2FKCdhNIeWPkj%2BO%2FI6nao4NLpMdq3WqgQHjV6J0cTsM1I1xrF4cMvgJuOLZcSYBk24IxPqkUF8abXIS5xIWzMkKJmG40tKuS2MX7P64wf0P3vj97FP3Fx8%2FHh6IoCNWD9U1Gc%2FTHJ9ncvtY%2BbtEpC2hBYh7cqHpPc58WagZZsAI9qhcb4Rs2kJkjIuNqZHUWGgUqIidiuh35fTkGt9Yn8tyTI2qRdQtm55IwdIq%2FIQZZQfD34%2Fuf9Yx5NuyUaJMibXExL%2F0IudUjwbBbhrBrcCce%2FZZ3ym5Dp0YP%2B%2BPVCpNMk0wu1MwQyrxD9760oIpoi7hTb3zfycMexlD5pMzAj6Fd78e8H%2ByDcuNx1hV82LGEJW1XTym2aFZq8rkbNKQaeB%2BEMsx2Z42lXaWy1aRT2%2BtFptrm5JygVxby2%2F45cFF%2F7JVPAfy%2Fybf8Qpfz7iscy%2FHsRdznBHNwkGFYbagOtRQ1YvCadeERL%2F3UiBYeG2%2Bx45vmoNVKeRaoL%2Fr%2FqmTG64kXdKe%2Fcu0HxE4BPGXmT%2Bj8mRgFa%2FVu0TBk50G496%2FnLNqCBlFqN%2FExwWgyW%2FPrvgn1Ikgneg69zcZszCvxi6ViUs82kVLzWtHxTFo0c8JCEkUKo49iXRtZpIDAWRg7vFDctI1awyjsVr169dU6%2FVzRo%2FZKA2VJt0Y0yaWA16w7SbJGi0ITAW25PLbbqbs%2BLjh82k4Pjp%2BJYXHT8eTpBKYLdEJ%2BunhyVLnnG0o0o8nwmxI6SdYkxe3ZBifk09oH3aoXG%2BsQfReYRTgqRE1g8GSkdVG0iLqhylH475RKSqk9RfG8gyqpKn%2FO3ds6eELmIj0fLjwS%2BqeFZliIf4jUn2sJj0d69PTPxDmXXXCHk2CsBApKZ%2FQBB3c3Rne2oPrkljStsYglSN7VbLEExchahRVK%2BEYIrofAJ2YjXPl%2FjnkQWCgrt2i1LRyWMW%2ByPZpzvC2NywAqchg%2BK0SGC62rjuBjt8OBs5fn6U9i4M%2FhV9XqvV5tFJjOWCyu%2F41YeuNPCfLPPfmCnlrx7x6LOxErELVvuu7M7idCcJ2cXsOKoMVU%2FqX2Pi37x%2BiZ7t2PdINw5roJbwri745%2BJNYkIQXl43MDj85R2O5rNR2nthvuQoP0PmSCBiM6gAaLsvkn5Uz19evxCamMToH7lbEP%2FLAP8YGzg6ysGnOTK0xchTdpbtBzUvNaW1bN71LB71xQSyBje8GudQgljwAl8Q%2Ba5RPdvmBY%2B7e%2FsMgN1oxZg28TaqTHMyuKYqHKXJxxzE4zGZUDuOb6aWHhmHio%2Ff9w%2FtLT5%2Bujj4cMHxY96PqsSWZr89MvpaRRnnyEs9C9JelYK0KxpSbPzQr4sQHTZzneROL%2FPZ0BIk87q6uhZcfQ0v6SPMw1KO7Sii0shcRKUtKrVGftRfG7FWsa2Pq35f5OTYX5ukynN1yfHw1FA4Hn1ao6eWaGDbGV6PEv80JdnYH2o1Wp5%2ByTIgbkMqHGm2cDUMtRBo2%2FSrQqcuUzA9rCdGif8Sgimi84nlHFof%2BRL%2FJCttFgWfg8%2B9%2Bs7bztoTNF%2B4%2ByTsD80pg%2BK4DmVCzvM9euIuVCDtXRz8E8OpkvP8XA5J%2BjEo4dLOZDHvJwv4p8x%2Fcsq%2FFWvr8LPxlgQURz0AvEwMd0IHvInuTY0JEeuC1%2FeXAvGAlH8GiYAIFCoM%2FptfneBSvirQm7mC%2FoF58kDzARVipNWwHl%2Bg%2FEgXgLf6lZ8g9l8HRxGQfpDNYuI%2FbyJB2Zdr9I8GIJCSHlw%2B6%2BB%2FwjHDhq2jwRbjJ7hhLZyMQ9nebYbkSyf3gzIzQcmPYJDkvbAojsOaZXyi5cTGJvSDQ3s7rA43bBLyOm6I1s%2FmupQMrukHYzmlPB6zOzF6XuL49PjJkb%2Fq43d0FsfvElccHCs2fsz7QbEEGQXAmiSKzWlbXz1MSeWMSPuDjMmrG5KOjOxo1xKpp8Z4p6yDl%2FnkovSxS%2Bcby78bjGDgTbfcyksUBEVK5NKMFfL0qIZbcxEVU2GRqk5ify07DK2f7nhiv2%2ByKs%2BCsuPhqaFoPPq0RkKhMq6eKfEPZVYBDJfMYEx746fvFMT9kCEVbt7irkGz0gBt3wYbk2zBqHqiSvyXEExhnU%2BFp%2FJif6PwuffQS6%2B%2FK3X%2BJ1u2LxmUn2SWcPvP2iNhHWIegsg5HT0dInLLl%2FYuDv6Ja3NZfMXGA9FjUEbHL6NO4P2kg3%2BewSjz35OQ8m8ly%2FzHKA4wo78eaP6NSKE4UZWShIhtLvH%2FR8OyyKjMAMnHnAIECtUD%2F2zPcFpKWoWQh6XNhuIPmg%2BoEJL2h8eXF%2Ftc7a1%2BH3bOqObR7BENF%2FESf5dWOrkT%2FwSktn%2F4hHwiXrQmRDuyCWy2wT8dYMfwAdeKAWxfH5yMmXn%2BHXai48Ym94NScJmrNzd%2FKqcHWUhueEnivjRQf%2FaHItYw0RwxKRxzDRlqzeM7Td%2FFb0VNc5GyZOJBywsQMmNNVk08x3U2QY%2BfrPsfifFjfLY42Co8flQydOwGX7BMoNgww8L3SUTa7OgJ7sX4XhLSTg8JN2AOQoqTpDq3vipwOuWGsAeRvQgPy6J0%2BdXXXPvJhYtuvfWOxXfffc%2FS%2B%2Fwl3kGLRUT8k9demWElqW5UlOOIVHUi6o3qr4WlloWiyf2%2BYxFKZ19M%2BfHw9wvEo80DeYuoqssSXndkySZTPEkvtusqIO77V9YN5raXUAtXflbQ9nWXfSxbMFotViX%2BSwgmJwJUOp%2BKSZET%2B%2B8wCp8vnTgDbW%2BY97I3ITEBv%2FObuydG2x2UlxQpl5hvcuA5IrPMQpcFG34ZBSBpZs4Ox4GbTH7p0SJRJ%2FN%2B0sE%2F2Vdt7Ddxyp%2B%2B%2B8ky%2FzyPtd3KohdfyRyQro9g6EdFKwhNiIAjIwjMf2SoDKoBgKUFetyoLGbVwD%2BLIu2Y5s9k7NgIzLzQ6avS%2FiNW7HN1bPU70CPozBzVj7EfKmSzMl8s5aGJ4JAlEunr7IljECI1sf32bIP%2FqeAAKzKnvb09NbgIornZojrcdCVWk%2FyAXeqsFv3qrRM6TS7xmEPY8LS4b8ysRC%2FEXx89vP%2FJiZa%2FGsPbnpCbycyY4sbxIVHgmopwoFi1hpUIOXsmyVrhHNfZhGj89oyagfoIjZ%2BJT4qDMn6rH847fpoPsYbIcTtfWGpk1phrrDxnCxK2An4ee8D3YIkdtwnG5Ckh0eGrhJDSwb9Okj6kcusuMrZ3acdxK%2FP5zz9p0uq333X3ks%2Fct%2Bz%2BBx54oLbGX%2FWVDzwA%2B9C7bl9049ULMiYukqPqn5uoiE9iVZ1khwzmruyurkrwcX9thNIJtUqPB79fJB5tHsiXplLVxbTvji3ZMMW1XqxG3HcsXvIZ3EhcnzVHuLsEbePuZQmG5SMGw%2BlTQjC5uR9K55M9lLmx%2F5RR%2BDxxlq6e0g1P7J%2FYsPv09J59wCAZ%2FbEo2H%2BE3ZqZhS6LS30yCmJFzWtJvUBr1Q7Hae1qxS8ddTLvJx388zbKPYhS%2FkGjJkE3Q68vk1CC0DyBUIcPu4wTp4uH%2BBISIqyR1RdDBa6mnW8oCqizmJUD%2F8zOKv1BvdyM7gJqQ6evSvuPIdM%2Bs9Xvw0LQN0f1c470sxfZrNyJfzZRbmubFuJ3SGDjde4UiP8tE95sq%2F3soQOs%2BcBwgDWSkNILivoGUB01JygGox8wrQRj55BPXNOxnQR28oE5hxLFfdkLYSqigpdFqnLbTkNf3%2FKHcT2c3Lj4IdFzHN2qToJfdSeSwB7HR7Aej19bGtY%2BQuOH%2BGBhIAOWc%2FzYPQZSDcKoBTNB5iKDOSFK%2Fqyu8jmLqnzKOxViLUpjhShLZazSQwLSKiUkWqvFIcVaP%2BDXMLdO7zEKuwXpi9CF%2BKu33yVp9c8%2BsLK%2Bpv8h0L7cBRKY9IEYeLTkzluAjvKxfhgVS1RzEhWfSsg5K1%2B8iHoT9dfiwxD1U9cusb9WU%2BPKjwe%2FXyyeBdo8kC9Bwtbu9kz8U1mTZe1ExH3DwkUo4eAy57ZbF33qWty5rMGwfMRgOH1KCCZvXwkXgY5U6mUFsP9zr546d9ZU%2BKcn4OmJbvi0ht1nvnf4yDFgECJQpoBSBfu10H9mocvimXZGwTfj7E%2F%2FCMS9%2BigSt6uVYyBOpY3YYCEL%2BIfi6jfaKuWfSeafNCSx64FXRqiY9Zlv%2F4e4s%2BzMzMWVyx3hQNppehTgcNbfVHCj2qu%2B%2BVUF%2Fzt3K2tiFEVsKdak8kd3WELPRrB%2FmPZvQRWYVr%2F2dCASoMD%2BeF6Pvok%2FDtKPjNnynIl%2FyicKgjS0f3CJYuK%2FUH%2BM6s0XZlnnnw6wUuqwDrBDjVZDsKtjn9S1rLzuL40J4cstqeaRkLgOJWXFB6Y5R5K4Lyk6wofEj2zc9KgBTI9u%2BN3B2KiZvnP6IYmF0pxJmw1IIiGaVv3xUXwE63r8QEH9KI2fii%2Fn%2BFE3TpNqHN3HfIVcpK4fkFyr2Ui6vycW01HUJqKsKGOVHlJPOSFxN1UhJWn9hJJES3daIzI63Qdu579cahB2TVSeROh1s6V92QskMPSBrK2vXLZUeBELLsnF%2Bomias5JVNybx4M2p27y0o%2Bi7q%2F9TFQcpi1v1F8bWWqVHw8CKRAPlyzq6pNv06HzuR1lfp%2F4Z63mkdSy9rz5V6J5A5dhbF1zZRcWo%2BzBYIFjMD1srC0cTPErTjkrEnV%2B7C%2BbvmEQHNorRxuD%2FW%2B%2Bbt6HaNg9%2FqM3Tp1TsDcNy2tk%2BhxzPBlOPUS%2BxTLtjILtw3HWKf1R1w7H0Rm4LLkfrTCkd7iM4L%2F9dYHimuVPZt94isx%2FoCG1Xb6NvTKP%2FNuNyNfrzrJYfINKP55wsK5bSQ0q629FetUtGlUD%2F6ysfFWmAxdzZl62PoJWX0voAc0npP2HtwxC5YdWv5b9I%2F2%2FfF5P476fsKSfdXmtdDj6oFPgjWdC%2F2eE%2BjPdbo1sM6meYuBf1%2FC%2BCXEB%2BXzOAba53fSGGuwqn1OUYyNZ%2BWRm3uVCCO8wQfPkmpjATuXZDzQm9Hlmg17xTH%2FutwCY1riHhIoZ2ncuWep3ASxSGJ8ERPIP4guSNZrZxvji8Xtq8qMzfpcXHb%2BY8q8gI9iP1NnX9QNFrk1cEmIxHebX8T0uGippMZchpbHBWGtGGl2LEfUH0M3IkLDlqUQg9lpJqw9ukboPFFAm2vbaOdpq2T6QQeP8gI5INBlmqoAjjopExZi0vBt08HQSPe6v%2FRR2Lu3%2BEpJFUX9tZKlVejwmkCLxELuhPOdeyGdTnHs6TrJJI82SjbJN%2Fgq92lmDAeZgMKxClBBMvkunnJW1fzHsDwZBexscDG6Gzk86%2BvnJORmWDEKfGpkeJYU8O%2FItmGnX7cOZDbr4aOnDg25XK%2BWiSQKhp65tz08H%2F%2FoktQeoVLP8sU0waYC30cKa0ShMNaktKA%2BSqHhvHdlO3W2%2BSzzGJEOvc6QfK97w8Op1KvHP5ZykVw1kqgb%2BWSDbvZNlXJtHcX5JXxhubgecB6FHmP%2Be7T9kSgCr5d%2B0%2BnWng3V94Xn1ZuMg%2FbAFKcdF3KfeOqb%2BHD20b6o9uffw8eLgnzU8OMC6T46N2Amj9eBz7gxYhcWuRGYeTzA0QTOglS5EisBOz7mYMRczzIFev71HiTXxIeHZNh1cg1CPOY648IjYDNMwlWsCVS5itjE%2BPX5PfUTGj%2FEVHz%2FNr%2BfyNLQ9EtfsTO0og5JEpC0fC58O76DNvKmcoKlX6SGBAFJSSKlsMGratSyvU%2FNrALodv4aR0XikLhB7EGn1hsHX461wGSH09uRXvyZguzG8VTSqanAUTUuz66iASGsViYqJMJ0bdw44Kqkf9dd%2Bijefzwgkrkm8HVfPSEy1Kz%2BeVqF4SGvDe1JXn3y2zgYA3jE2aeS2ZMscTFjgMP6sQkTBzMmlG00LtPvOuwD7OwYBhH5uu%2F7SDOgnu0Q%2BURphRHbkm%2BbKlV2sJza%2FTF9%2ByHqL%2B4%2Fnl%2BdryCU7cfDTwT%2Fxg5f5x4t6uJVOiD5oRfWPqQnrKoRs3rrBf79dspC%2Br1G9S1xdIRl6myP9DKMMSOUfFuTGFOlVdZlUEPzPdy5ybaVS6rn%2F2zrgfMtJeSLtD4HPXvw7aIDKt2H1q7D%2Fu9DlBekHLUj5LjI%2BPgj9nz%2F95rEjB%2FcfOPzSWwr8F13DDjpDQesAuxnCaH29%2BJwQSY3EYJKYeZe68yPmkPQvjwloNa8xgZ3S34nGhEzVe%2FQ61WTejB2TgUybCq4RHwj1aMZFXGNC2EFAaABohTx2nRugllD7aI8f4ys%2BfuTXEyt2cGtEXcxSmztSO7E1eVwLB8R2VodryNcnzYLKCXpZSg8J71RGSHhJDElvkzw%2BaH4N2dGrfTGIKfbfX79x0Io7jY9D73xoCy%2BbcR%2FdOSk2SDtbI3BBMsZCt6W7IOmoTAAViYqIQCvot9jaHjOtAkugU5KzyfQbqj7MwsWqPMQp1Y%2BHtDYQbewL93UWbrS0JnPtVNYsdKUHw2ePwbAKUTCYclg%2F0fE%2F%2FSLeUtifDAKIfC7Iin70KlsG%2BOdN419OOXJkRe8a3eYT%2BtTUyVKu%2BdqYOD4DpYN%2F7XC85wNS%2FkonRFGaomGYpLya7M2DW4dN8RQpRCcBxHeJJYNIhh5zBGYk85zyz8rQSaCXcy00Uj3wz9PVlJM65cYOIvZXHt%2Fm4Xww8xoZa1mBT4j%2FjHRogHqrX4X9qctbhPTDXs8k9M%2Fk%2F%2BvHXnjx%2BFun%2FWf9JdTDc17aAXazdYDtf8gIo60yOFYIT6MTLEmxtyw6OypsjfNjU0bVJbBd14giiAMgsHiUUK%2FkvHToddcul%2FcyL1HHJMJMAdeID4R6zHHGR4IbGwAceYUboJJQ%2B%2BiOH%2BMrOn6aX99Dmj25NaTZc9CSb4N%2BQ62i07K0%2FdDXwDKzWpbmMCTyvXVIiQwJnkOYJCXoZjGI9dg%2FlFJUozUmCHsIeuebNqznJQdV%2Bf8Tk9P7TEFRfCDMCXYFNAYzJA8kgOpEpcV1OMc1YT7aCQW7OElOonSvv6GM7RP7a6sfj%2B7RUHybHlW4obSmzrXnLGtnDqZPd7QziVAkmDJZP%2FHxP%2F0i3uJmrxgEmOrZ0I9ei0oD%2F%2FPDX049cmTl7ehJnIXyj1iKK33mb3qOSf%2Fp4J9jOdlISPnryrCmNMVHKDSeOCkT4a4PmrapgboI8o070QW%2BC%2B96TOZ9uOYJB175B4x%2F4hAu53RlYLWxauCfkri7R92CyZL%2B75hW34kGUBZ4%2FTTzGm94gc%2BtFu%2F3%2BYYAb%2FU7QXAupTrq8uZfkAiuktE%2Fmf9vnzx1%2Bn33WX9TTABz%2F1XtANsahgPsGrn6HzKCNSA8YfZpMRjNGovDh%2BL9QO9al8DWkvVMDFP6Oy15QPQ6Mk45XFpwKvpECrhmfGGOJ8dHhRLGZxPhF8cP8RUfPy2p3wwShh1eusrILOFt4jekoVZInLTY18AGM9V0nRISvlleSGRu6JDiiYZmjWA44ElcpNqzGPT%2B6ZN%2FI7soMLajzwvAXrtmTV%2Bvv3BQlRz8kADtp%2FYbHwjIHK8UnJ2exmBU4CJVIyryiMeUgr4jzLcUYV52QjXVI5ROAhg78VL6a8uNp3%2BGeHozxBObapFv03%2BBoO3Mif%2FCm3Z6MDw6pgdTKdZP5n5XNp9xqz%2FdySC4JDP60WtRGeCff5lgNOXIkbVjV6PbXJR%2FTZ0s8fYT4iaS%2FtPBP2X%2BMc1nTvk3VGVYU5r0OOyclkejBggvqjX1tUYwrdb%2F8KNDYw0luqDAf0zm9Woo3gpJJP%2B3u3KgYhzw5rPaWDHwT5IaSP9KExuK%2FVuA%2FS2vf91qp%2ByzxQt8bscxQAoDWzt0P7e1pwnNz6JU53R5L1cRFkf%2F78R6%2F%2Fqz%2Fp7Uw2%2B%2BEXti5ks7wIqQEBxg7bXZ7L3bjdzRF0aU7DXGO4GZd8mC6zuwdV3mDhLYQiBTyjD0cceanpY8IHrdiKdDC3GosngauO66TsVni1xJ8dUoMaG4HQsyj19jFsdv25yO36WzOH5UQWkFkr8W%2BlyjjMwS30ZvaMRXWEIlUc%2BCqtY80L1KqSHxm6WERLaVDilONQp9SBNr3PZAATMUg869d%2BL4i0cO%2Fll7VDA2bJ0FYUtZSoA1L6lQmT1iA4D21NMHn56WEyy8RW%2F6REq%2FnY5K033kZS6i0veQuXGi9pBE1%2FUf9tcy70aUTo043rKk%2Ftry4zGBRPFwTUmNR%2BvF1pTknSba1Ovq3F40114wmP4SginerEDWTwbIPWPzWetJYAmYlykGQQb0Q%2FTJtahM8K85L3k%2Bv15ByOrSGG5%2BLsq%2FTqCUdMUQN87ApYN%2FLfPPvUCl%2FBM8vHm%2FuMTgZ%2FBsgNggELZfkpADIK4DynOYFe0nIvP20gIJr7D72wanPRIQyDhQN7%2BK4J%2FHK2191txi8DxOSBBoJ6FnDPSNWscxoCbfblLsc0iEU44G7I9SHXV5ZxX9v%2FJW5PWrjPAQ3vIl2BNzXXSA3Xv4RSMk9MfjJh1nr5HmxLjJZP9BcEZgn%2BPZiJnnIeZtChviH0hgbw%2FKNSExvMlVljEZDyclD4he7zOLxJeiVknK5Tno0UoWq7nk8hs7sWvN%2FaMPxa1YuYYSE1FyI%2BP4IbDs41ebafyAtedi%2FOKzU89AkfFjvgIkGIWyYqFPIOOUj0mYRXxlXsjZoaFq5PHFhSslJLyUFBKzSCqk%2BH3QNOAakWNiTShJ%2FPiN40cPHxDGjMXYGyQDBLvTjTiW8jK9KXCjFqA9vGNy73dwghX8ce%2FiVADCqMaiqPDNOYmK91Ab5TSj1va4%2FnP7jbhX2vxCDmrKHYZVGnVALjUentRNIHE8XFPS42EhKrgMR4c2R7TRp9tiufZCweAR3FU4mBKOLTHrZ0G2Zl%2BnwrbvWWAJa15GBkFm9KN5JyWCf815UZ%2B%2FAPUAmWSdlM5F%2BdcJlHKuWKE0Jv2ng%2F9Y5n9shpS%2F0uFQlKb4GD35Z7scCxfkFZuEBGPFphBZYFF1%2FYhsbMk%2BdWc1JEBkRBX4yTjQN7%2BS4H%2B%2Bk0GdukCJbsS6dfUB%2B0PoHxWABvL7A3IMoOa%2FfJtinzsmjWT6m6cD9kepjrq8s4j%2Bnz780okI%2FfN8a5wAJxCV7ImQwsh60QEW3gL%2F1TwzI0Zx77GdOx8bN5obj4%2BYT6%2FkZjnhZ2LmfUzSyysk8LERYEP3DzdnqFzDxLDPnFCrRmMejV5t7fxL5Mgy46m8MLgRcgHQ8S1ZjvgkjB6DVfEPb2tB5RrGxyVJWeLlGL812ccP8c00frU5Gj%2BenTh%2BWBvyjR%2FzNoRX2OYVzb5bq2qmfkzCrEhWU5M4FEeafQ0pIbEPoJSQuJeqkOL3ARBkI7Im1mDnsKDt1ZePPPP0tPTKAmMLjl5jGtEFX2%2FFsZQmz6JKJWo6ArRtUuMvD0xDuKqmqAfpQp%2FViaortunFS5TUj%2Bo%2FYKHQ8o5J%2BR61BlKVRx2QS40Hw5oYD9eUtHjIV%2FB6saQgkWjDBgCX26M606YiufZiwVAmtrxg8pBV6HN0Njvrhc2%2B8F%2BBQS9IPzAvA4MgI%2FM%2BtpkqC%2FzHnJf3VPoj1yQgh1yD%2FzxCoVECpYQr%2FsPx4SsL%2BKfMf5zy15VhTWmKCXQ7v4l2cRgONV0acqQ13rBmo7D5B17QsmCabLzKq414K5%2FukHQcRuKfjIMoq1c18M8tSoZYqVG0do3bBPWgxf6Q8gQPCPl9J%2FDpBH9QRrFWAMTkEN4H9kepDrq8s4r%2BecqILywWz5ktEZ3JteX3QAc7Z%2Bof3gK7D74og2c67UYmdpj9eQvFzgMRTRuRamZe1yduMtQSaZxujZipA2xoFWscKYTKNTYxzCeeTw0M2xd8YO2c9Hn9dNCJM4DrOKmL%2BPoFu0ptq6dDsWbYJ9TH8RonroODo4qv7PHbVqXxm3cVz04Fxy9uhFRJUD9mjnRPRmjKx1QwS97QvERNzZqzrfeZ9JD6ywqJVfQopFjosy8cR9QZpdH0zZ9Hjxzct2dyQlQykV13oppbia8bLE61mtubVk2n16yDMBd%2FHgvaIJoOL%2F%2FQQp%2BrqhEVgyLKJkru79dJdG3zjKkeJDlVTzxvmT97xayx8uNpFotH01V4vrGtGkraqoNoc5oWdoWgVNFg%2BLSVFkyeNlUWR5TWYQZVbzT7wnldDHpJ%2Blm7AgyCrJo7zOdyUykH%2FGt8V%2ByecP9kHisD%2BOcxRCfgdQKl1H5vPfqRi306%2BKdVMOZPSPk3tRtMosx%2F3Do%2F9R9pOGTg%2F%2Fhjjz020YLhEMxGpcaEfL2WBdNkXhYAHOmnpzPpyMQ%2FGAdRVq964J9NJX%2FaDuJznzO3bofF%2FtDy5ClAeEAydo7m0wO8bzX%2FcSTYtms32DjOcpfYn6W6WUP%2Fil8UXVAZEp75DmiSrkDfb77Uv3gLCHHlkNzHh9dvlI1q0wbuMGPKmTIyIp3v0tY33rz43pXCj2qBHuWw4TpP9gnKMPZraUFnrQ8OidCqgW9L8nKr6PPaKBXPjwbXXABAp5f45MZKaUfHR%2FIK5jZVrhifcnDMPH7YwH62xw%2BUn0V32rNTyyYSio2fboQklZ6DFUj3bOhCUPyYiTCLWVW84J1Cfl3Jairm41yGRDGHOKRY6BOmYyqJgZfQU%2FKdg%2Fumdo02hsQfS7gzFNVsNeE%2FAV6NXGDaDBmsbdV0as5c%2FIeypP37QbWkpQp9ViUqBuVtcRVKVk0uyuYZU11LcrInXhP23UFNofSrqx5PrK3p7k1EtJGiXa8n2pDWxtNtnqtoMESGpQWTU6ASxRFb%2B8uENbFrsNn36JuyFgXSj1H4n5dZbZ9cd8o9lwP%2BCaeI797Lf09YOieDVYP%2FjASkWOa%2Fq9wJoMG%2FenQXpIB%2FnZbeE%2Bu%2FKfiQJPOvn6WBYDi0Wqj%2BYqECwyFAV5wzUWPS%2FKS4kY8FAJJ%2BkORjFzAT%2FzqrV03wz6aSqWA7Ez5r8Oy1Up4i7k9lH%2BB9p%2FnfB%2BTY3nsQfbhO4%2FMgsT8SUrOK%2FtlZTPvuWPP%2F2QO7d%2BFkgr7fy%2FNQf4y3APhe7b1PtTntPv85hVo5MROMSCVtvWR5DbQpIVARu%2BIfsKvSyjD1tZIsR2KYyQOmLJIzqA5RKGsccnTx%2FETgusumrYVOD5c2tA4irKYHsRKPL3L5%2BDoS18rBMfP4IbWbdfzQY8PxQzxzOX44m9yz7EE8AcM%2BkVBw%2FLSfFskNpNlrddR0PWkNs4Yfwwvp%2B0xOz9iw2TWXIQEdJ4SkxgqUfzYiB469a%2BJ25iv7d%2B9qjWDJr6%2B2mlMCscUuS5rRN9qOWrmEbb8BjengNNZ7nLn4i4f2fmVbSt%2BhigofqzJR8QAXo2SSadm2qx7FSFyHR2Il9oODWrTVVz8eQsagGtqPG8Y75V5CB2agtd1LP92CV3ow%2FToYcuzKC6aANRVrf6BQZJD0XsJm39NWM%2FAIST8L8vjsauGVssA%2FESvwHdd23pO8gwlA%2BeY53fCbT26%2FfJl%2FrXjESx2%2F08A%2F3wYSnRem%2FPsTK8OaLhwfob5tK6T9NbPISioFhkOArjhnnos6k%2Bcp7K8LAKjwO9JP6Ngc5kFNZfWqCf7pyPGnE0Ne6EdhfyGTyr8A%2BMHtcco%2BNZQA4PHVB%2FGfHU%2FuO%2FTS6zYV%2F%2F47rz4n0BvYH7q8s4z%2Ba05T9NljJ86E5L%2FW%2FJfjx%2BQO3%2Febg%2FrDhUgOGu1o2hG1UnEqMiJl2rqfBKoeha1pVxURx57zieHDKQ6JOGpr%2BjzPxOzMSwTXH7vsepO2XsHSDlu8BwBiSV7B3HbxdSbWT6v4so5fM8f4GfbPCMcP8c3d%2BPFsgiIYRMR6sEYUHL8u7adFckMPXyiBKJusljRKgVmgx%2BOlSaITl9WEhs25CymtZ5MMicfs%2B9j4Yo795yT38%2FVJUwvcbJb81fW1FkQ7Mf1B6aJdU%2B8xYpo9dYHZ9VW9vX0A4sh62BZzOVG%2B9MzeFM9CFdX4UHWiisV1iJK1uI62xcWjeCPFdVRPfE%2BC2I96Riofj2bZk16vdXUC5z6mtVHDvuCVHox5yR9M%2BZeWl1cOKxkTbmz2pX%2BBIv2khUAmeDahT75BAZ1%2Fpj%2FOv%2FsKE%2F%2BX5c2iL14BKgny0krqM5fRbvky%2F1rxKKnVOB38E8JONZNT%2Fuky%2F%2FoI9Z29bQGsA%2F2r%2BpBMqddEN03Y6u6cqXctGs1RZAQdfUpuXKT%2BQ8cmWweirF4VwT%2BV%2FvcGB7QLsH%2BP%2F9eAfM9p%2FwjhlB5f0nomlB8i8bNvvSL6%2FiMlYH%2Bgf88C4Xkjuhzx6PDTvu83B%2FWHGq9ArzuHtfA7j6NacUqpaTFt7V3QgP01tlZ2UE28gjj2yrshMZzokMi5rX0tmToN7TE97iHBDkpwLfHdZtLWuINjIT4%2FAbb7%2BOzcZnxMrCPhxPgyjB%2FBY%2Fbx2xKwdXOux%2B%2Fj%2FmyyOZxNsFgUGD9uIsTWpI7U%2BKLETFL0pHXenvR4GBepZZUNm0puNTWkVokhsdVChxQzJEbt%2B6jjSODY%2F1uzXLX%2BeKKBpb9mCr%2BDQp%2FZbpLrENNfW%2B%2Fpqa1ZsxY2WjYnBKHNPuwN9nbiyPbs37xEr6GYYhNHhY9VkaiSxXUw1lELXWch%2FX%2B%2BleI6wX45UexHPyNVjCedZb%2B%2Bpk61NXLuSbRRhMKcV8Zg5GP%2B0wZTxJlKZVGzU20BeF23764Rkn4ypt%2Bzqu7wDfI7%2FCL9AZOjnIl%2FXh%2B%2F7rZ7a2Skq9x2BupT%2BTL%2F6YQj3XKfDv7JHpLbplP%2B%2BoknzE2ui%2FAIdfjQXpdosY5DWHEBXa2grG7RvlSM5oj9ITLi1T6pNgLCQUfH4S7cqCirV1Hwz1mCEoUUqkfHR2bE%2Fmj1Ra7f4316fEF07iA4OLbVV1D3DvN%2FS8D%2B7E81IYBplEz9OfPWK%2Bz7zUv9udw7wMpDFwm%2FE6RQcUodcbuuYtoaXCmNrZEHDgUAgFm86o7xtOQB5hQJ11qPI1hi%2B5VAUePmI74VTr5pKI6PdlpCWnHdtHUm1lGRDQmnzOOHJzr7%2BDW0Wuocjt%2FHL7tOziYsgvFsUmz8uIkEbO0C5AuoI9xk0zNbWJEx%2BjUq63D0yZhO4E%2BmhIRYygkJb5gUkl7ABDNKYOqERI69HB7HhVX%2FMED2ZiHWNIVqs9GJ6UuLremxNddWywaFxRaqwiz2Iq%2Fzty8dhGxEkqKijgoTqCJRsZTeisV1sKvGeq8EGzfKQU2J6%2BAXE8R%2B9L2qbjzpLHveMHLumdPUhMLyKf98NlKDqQbl%2F5RydspWa0d6BM2%2BVrrvSfgXgPSTMf2OK6PqUJd%2FgxeiJqMMkPv9t%2FBMFivGXCa4VShQoKUoyZws1Kc0sFm%2By5cu3KaDf9LH5KwSpfzVipHUpqaPUNh1f3D4aVAsveOQrLgTgK7A%2FrpF%2BwoYzRH7k6zt1FqY3HM%2Fsnodk3pRVq%2Ba4F%2FLoGIoUT9W2N%2F3gW70PQA1QJzg8SV2M4eRgmer7%2BQO4WeXgP2V8uNWVXDQF9hHvu83N%2FXnEjsFiFpDrr9Pu8FyowliMNfe%2BOk7XdpatGV9ix5QIq10g11VIIfEHeNIHqSJ1azSehyBM6rBNXfQT9j4cAfHcWMD9q912mmBVKPje6WjIsuEU47xW5Np%2FHqi8WN8czB%2B%2F%2By6m27j2YTj12gVHz9637K5FgF295MVr1RQ0i1ssCeTQY0XuPMymYI3TOBPpoSEXy0pJL6hDineax4DZkRgM5xK%2FlBuEDRy0O4FsbehLUK1qa%2ByopposQXVvjUhOhBg3rh%2BMD2xJJ%2B3LdFLSUc1gQlUmagWsE1Wi%2Bv4JLrSe1W6WzyoUVyHEk%2BRuE50r6ocTzrLnrNdvqKYFfMKirBXOuVfvyQEUyHKP7FqVtIP0iMhFzts%2FQsuyZx%2Bx5VNdYjo6dALbDLKhHuxUQjpB9W4nIl%2F4lYAUEv8UWtqaiTcUlPBf%2FkuX7plKx38UzH0620lvaFS%2FpoWqv%2BAPkIx9X%2FsOYgreMehkdbOyWkHXYEX3glMrasWBmNfhf3xD%2B7n7P5VsxblKmb1Kgv%2BKYMqIEn6bPwnC9iffaAjOAXU6hD3Dx5frfa0qPwYBE6ufVsQGvB2Cdifnk8Dj7DV4P0P7vvNQf3hn%2FolGUugVpXrJyrUYjU8gN7zLwx0XWah4fg4WkHBrAdKjOy%2BOIeC5iwd2%2FG0X5ZSpNS%2BliySUVOHKwF30E%2BbrDXiM3dwbAQ3dsBja%2FSyMD7aVTHVqOMbQMIp%2B%2Fi1hrKNH%2BKLxw%2Fn7n%2F68Vsk0H%2BFPZvM3vhxmaD0DfObpDRH%2FPrUbRZ7Mr2z8EJ3XiX2E%2FMn5zgkvqEKKSogSMMwzyH%2BhERy%2FdA2k1BXINuKaq4SBj1ENYcblNTEJd8Ys0pwumRz9O%2BxqaeYKXUFyn9lotJDPjSucuvJ4jrYM7CfsF7HhwMnmiRxHd6risaTzrJHEHwRzn1U2WJqL9dVLBismXmDKV%2FlXQmnZCb9uPQIc7F1HmuzM14yqg4RPaUaw0UgEw2U2ChA%2BkEfTqEujAVCPRHiDzogVDU1A%2FemAuCf%2BzruQRr45w98Y6dWA4gl%2BfhAqtJCQur%2FuVdeFlnlqba7pvYdOHz0OKCrhexkav3PwP6uaq%2Bwv7L7AuZHZx9nLctVzOpVFvzTlENOPKq0QezPPlAK%2FYsCKD2%2BJgz8PgqVH1B%2BgLaB0JYnMW0%2BdmmXvXISzyBPSYkVof7g6JHc95uf%2BsP0FFFrrCqnxWp4AAV0hYP0YxgtO3BsoVYJYs4hpTlrKodIDANBpRQpSXXlRqo4sTOI1dxx9702vsa4tMHgZltsjQrFF118muBWI7GNiWvmG7OMH1F%2FtvHbyvFD8w27cOZi%2FAD9Qb8em9Xx4%2BZPsMj%2BCL5ofn3aNot1h8Qcj68cdNdiP1EJdX5VQ9IFBCGKqXNI6BtufHnUJC2Eodi3jiBbRDVXCcbeTFHNIZBq%2FAXNHSQ7oOZsmzXw6TipUic9KP8ViuoatslGuXU2MeEAF7XJIpnKeh1%2FUVfMInEd3qvqx9M1E8u%2BQY4ipzmrEIFGXgDbFQuGa2bmYErmfOSk%2FGvSz1sCKKjYgG7fDCEoxktG1SGKVYYmoywMfdyUsydIxEtR4Eo3PHPEH5NUZh8VHvKsYj8k3pcP%2FpkqS%2FAXSwX%2FlPkfjR9r7a1KNH0y6XYx9S%2BiPm%2B8%2FvKRwwf3u%2BvgkRePn3jvfR%2Bi8ZOYckwtYn%2Bm%2B%2F2iq%2B2%2BvNrIDLN2mFm9qoJ%2F8n72Gch1YWnDdi9S5genALJ%2FnMdXe9oQb948TcoPeDaC0MTXtyt%2BvruuvObaTy601w3XXL1gXk7ivxNXB%2FUHlZv3E%2Ft%2Bc1N%2FtCKhJiSETrWG2mj8AfRfAbqKg3RrxI2WLqcoq1o%2Fh1jis1MoLZ3HpYrPg25bJfaIxWr%2B1bL7JWstaXX2bRvmui%2FtfJHxYY57uyoS25i4Zny5xq832%2Fg1VRvKWnbhzMH4%2FW8C%2FSG8Mja748fNX2fUyX3Ei%2FIvTd1mCd2BJnRvLN%2BeYj%2B6hFrVkPT0UhZfHUL6ZikbbaNKKTdoMIDsnprh1WyWBluB2GCBboCkprugtu%2BanSDpRj%2FVk6mznlFhuKoT1TWqTVbl1kMTkz%2FAESr0L%2Fv1OxZfwPly4jpRxSxBXKfS8XAViOuTpNdzmtPhS%2FWz570KB4M1s0gwJXQqM09yMjPl%2FzJN%2BoG%2FFxUbrp%2BXreGU4DOr6hBtqjIisysAMTFbf%2FKWasEvcM273hJ%2F0ARxxh7yBnCiyCz2oyV3SrridoP4b6eCfy3zz3QTH2u1S8ubpBxscCxztnFvnnzj1WMvuOvY6ydPEzeaA5v4SYCp9UszYn%2FAjJCrDYT%2Fmpq1ulxVUfBP3g%2Bm7PTESKcGJf4Ruhe3WrWVPrB%2FSHIYEafdo7blVqfZV967eAZf364rr%2F3Uoltvv%2BtuXIvvuPWWm27Ig%2F9pq%2BqDSE7%2BsxhB6s%2BlOQqZY0qsJnKD5UZDUZLlFrrCQdr1RWPgUDpRXSTiWevmUB%2BbeziFSORNBddr9EaqDDB7IiXN%2F3OlaAYiPklb1yyBa8RN8aEv6i6XEB%2FnOBPrjC%2Fz%2BDU%2B%2FPit7tfjN6ZPqXMwfvcL9Ifk%2BhD73ouPX6ysQ%2BYv%2ByMie5OUzjruyR1muhdq9LRU34UqoVYzJD29dujjCFl5wrN7fNtW1I0GHsFBDSC7FzdvKzD2kIHY0H%2Bo9fRCAi7IwNl5BvFYMWlzBk8p9S5GBeeyqkSlz1tKsAwhsomJhXRu18vuW3b%2FA8ryrs%2FxblXFjCg9FtepejxcBXR9MmbZE9RkE4%2Bc1xUuFUEVgyneqYw8CdBY%2BiyIMRrpE%2FT3YtdshpMTk946EZGJuhShyXTKklObMNxxLb5bkPiDQTF%2Bx%2F9oPkmLb5uB%2BhRn3wtdmf82wXk6%2BI9l%2FrkVq8K86glLPtjwVAlSwF6D%2Ft%2F9ydsn3fW2YEZSxMWWViD78sW%2FfCH2b6qkrc81kqxdV7MWIq8sV1US%2FLPA4opVT%2B1u7%2BjUUJR%2FfNF9VuQ0afULn9WQdEfaPyLY%2F9pNn7j0gmd7wdU3Lrr9riWfue%2BzD%2BC6f9l9S%2B%2B%2Bw%2BB%2FZOMzV8Qu9%2B5KQyr5n0r9uX7BJdmEiwltVNuqop65jYZc58856PoY83ub%2FcCBq6SxIecQSSucQkrCI40%2BoTfSFsIkpFJKmojPwA6JT9LWIHBhhMIU1%2FF58kqbc1wl1nOMH3f49PFbvW6jGr%2BA%2FZtzNX4PAfqPY%2FxwfwuOX7LYD7G1rjlxh0vj13NP7jTTDVZTkUm11mWraki635fnBQYmL5tcO8aA2BDKDXKqmu7mAWODZl9f1VMTDy2Yv9AAxrPLYB1tEqv9Ntf6blqnC6MCbqtIVMyJanMSdwN4MAm5tPd%2FYqGCcxcb5AdIENchSo%2FFdcqLhxOvYDxkIPVHfQf6BWfRDOKR8%2BZfec01Nyzkpard1QumOPBjQUKhsQypc9In6O%2BVSS6TeXsmvWPHkfThx9xh%2FBkoS%2FDjPSXccWW7V4z445wyDx1DfY8FhazZd4JA3ftQwgEwtvjVtJx08E%2BZ%2F%2BSUPxYONgTpg018c4Q9hUFkrlqniE%2B9elSc0uEn8Ssa%2B1uqj8L%2BIZfn5T%2FVrH0ulKsqC%2F51mwqOPf6T6c9KoX8ofMKnNtDtz3qIraV1rtCzXnQRb7lzyX2fXSkSdnIhr3X%2FMoP%2FF11%2FWZ5HpMtRfwZV8j%2BN%2BnPPbRm6kLUWdVOLwXBv50ZDYYkNmwS6TrRGJL%2FXi7S6VUlF43SEDdk0QtJKmEJ40FPAtcpVxxpxBNc8ICO%2B5riNr892rVLFNcKuLFAgPjPHWZFlYj3z%2BDGw9PGr4RZ3jt9I51M5R%2BMH6I%2F4pCzB%2B1t8%2FGJlHTeAoWaibdFOQ%2BQ75tfHb9gPCRr2xrKdUFOb1L5d2ZB0vy9zQZ2BbYaCLTIV4NbgoNZTx7m3IRa6wNhGVNMi7M0iroML1u82wzMOao1iWSPJHtEIKh4Vqze0z%2Frtz%2Fk1jEl0iuu8dfLkideOy5bxsAlBYti6zX0AK8wUzoFakvMfziWI65QTDyZeoXi4ChBVqL4DTbbX0zGdaNN11Q0LF9166x2L73YXq92AsvmC4QJVYjDFKR%2FZJHaYOqcQMnP28PdC4j%2BzyxguRYrKpFWZJU1%2BCXWKTPe9sTidAuF%2FaQHSD%2BO5Dk6Z1vbsH15mK8F18%2FLx7ks0%2BOVjHYF%2FXbpNBf98kzZrzXHKvxVk%2FlMPNpca9hQG0bLUHc2fAPHcu6%2B%2F%2FKyRhbe2tLfH2F8JDPpGPir5WUNqP2u1yGt1wT8nuzwukwKgouNNLPkv31NCOyTXaFF93aEruohLl62sWwk7XJs3yS5n8P89t930ia7c1J%2BaSv6nUX%2FqK5aC%2BJ9lKGPhd%2B5QtJWXm%2Fr%2B2Z%2B%2BjXE227gQVoalml%2FvFVqvtOkN2oFzdlWqi8TbVdFoWk2hKz7M4aRX%2BWIydYTdw4Hrcz6%2BRxFfcyTENyLxUaiekv90IkB8jlRzlhVZJtZLHL9%2B2%2FU7zvFzFQA%2BlXMzfiBnMD7c3%2BLjx1VCsxpIMaPACW3RKHKWxq%2BnlL%2FD1vJOykGoj%2Fky5cVe0ZB0kf%2FLAHu6iaQ5MWInNepGSLbjoCtFGnPzRF8fDbZYkYCwDRDf3vJXY8hNrYbv%2FGCy9adwZ0gUVmRUAjirExWrN4Pr1gpYfnTTpkfljrok%2BufXIdJ%2B5NKOGj7s8987%2FB2DmXH0MJGN7nT32%2BkzKdFXonSju3wuQVynpHhaxeLRqwBRRY2LlSLbk2WfjmyBtm%2F89B2Ll3xGaEruYrX7usuAuPMHQ9XREoLJeWlzXSwBWdLMV31aUud0aGTOHv5e6Yl%2FspjpMpbd3lc3DSg0mao%2FSJ2i48D%2Bw8jPL7y86JjSKRP48tXXvIhQst2xxplFwX9x8BlrfaaBf64NkPnXrFy1WafI%2FCv2FAbR6dMcP%2FH2T8%2Bd98j%2F9Mk3XjEaoE9ONKwtbSL2h7aIpPBcIx8J%2FzSkNpcWea02%2BKf98R%2FvcB2TGvvXIsl%2FA3culNh%2F3%2BbWtZ2uRukQRzE4iRJ20LJAfbu%2B4t7FOC3koP7ABiot%2BU%2FqD5SLshD%2FcQTVwu90kAlTsccuFm%2BdeM30khyeNvt7c8zv4zVL622KUtJqJ1ijsD%2Ftoi0hHEbTJIVwCqWAa703hPRXUGhR8Q03xiW%2BzTo%2B25nQ%2BKKy%2B4ITAUEsSTWsyCKxnnX8uEOnj5%2Fv%2BuX4udITn8o5Hr%2FVTqyl%2BPjpVYIsCxZLejRTimVdMGIU6kvi12%2Bo2%2BpLfQMwnKpuUDKZ2yX2vaqGpIv8ArOjJpKv7hrDTYEbueXW1MUd1xRpmiOQyxcK%2FXqsSEDYDeujZU21XFFpUA4o%2FVR7tx%2FwZNLRRkeF1HR1omKxxfyxkSe2DZtr2xMjW2wS3aTTtzTkZdAA3Kf3m%2Bup6T17drdHW60xrNXmR1Fl4D6MF92mO7Vnn9TdgrjOL6gAqhoPjaFCt7EEFkmQcn6ni0dizxOfkmX3r6yDpoSL1e7Ft910HdineYNhc30JweS7tLmuNFpkUMoExr1zmcAoOjTSbxX%2BXplIJ7T4ihxHMjQNvOBnTdeHswPyOkUmzwjsXxdmfsFhpVMmmn6nDOL6a7ut1c2Y4M0TUyuVAv9E56ngX%2FPHBBrHKX8uqOky%2F%2FoOOWX6pw8%2Ff%2BzVN3586rRJ5p388RvHXzzyjLh%2FDW8B9v%2BVJUnY38t%2BNvH%2FaPUbDKnl0iKvFQb%2F7Cd%2F6NHh8U659FqnIE0k%2Bb8xmOvSSxfQegsldWJpHhFHgafa6M72V762Z4%2BorU7IfifEjtyWAF2fuOmC5D9iSqT%2BmBAzEf9Jdmaumg4ybio2PD3hqCSnDu7ft%2BePH5Oktd3HmRb2SknNbbT7UtI%2FJIS%2Fc97JToUplLpUxXuDpk9gOXzexzf5%2BDiMRE3ZRcUH5jrEKpPsyNqY4y6xzorsFfnGj9goefyMvskGdP2q8ZMjKZ%2FKuR2%2F1bZqMj6b40cmElgWuvFAcaGRYWPVH2zKFH6989NS%2FHpf3WC%2BTKmjzGlIBDg6pLg5r6WbSKwBkj3qezdy%2BOiKq8UQZjuMcl0uAqKagrAHDakel8HeUk3aiEZd9pCytJFIatJRYeZUKipM7j8UwtpEK1yj7YkRsbyZwMu29u7JtlwTANnOWfgL0sGAP6zqdWzTxfhPjCIB5u%2FVb1DyocrxcDpqoB0WKy4GnN%2Bp4pEQo14kYsUGam8ETQkXq90m3XUbdskMwTDfpJrrSwimIO4A8nZRqSUgPfE%2FIDBKHBojv9VLMnQdUJMJV1avMTYNRCtOGva3yacXBWYA%2B99TmPDPt0fT7zC4FlLQHpZqCGBWSvGiQuCffzwd%2FJM%2F9o12Qso%2Fg8y%2FukfWk3Zyev%2FBw0deePH4j0T458gzB8yevgMlWMH%2BaLGwRXv8Q9FfVkVWvwKVaUhNxgFFXqsM%2Fqkku83LpVNDkdZmkeQ%2FKT8U%2BBTfZOhXkPKjsL905kIcxfC4d8Cwsj2555v%2F8anpqfYEdkCaAeew%2B9XJ%2FyPHTpxNpv5MTTSyEf%2BZnuLaSweZcACFGMzBA5KcmmrvHIUNp%2FTm9Qi0BltdTkUU%2FKHdl%2B4gJyHcTiGQQjiF0sVquEWQJkpJ6Avi80aifau8vRBObRCs2Q4lp8iOjPFhjsMLDxkIVmRLGD%2B4H4kF2WOd44f7h%2FjAnprL8VuNFk10TRccv2QmUjO2lVPGp%2BkaDkDu5NfDT4tWU6ppkm%2Bo1FHSQmoNlRcSNzAVUnxO2uk0YhjRb5lkzOM4JfZZN3Jwa4RWD3km6SHv63O5iO1OVHOjaGrWu3t6e3u7V9Ztj%2FZADTQkkr7dopqAJ3RUcB2uQlSkvSIqk2K3PcX2GoJzmLq8rdiQw4c4e6B9GTda1esaSo5yxFIT3rLW9oJ%2BSEyuajxcpZKANrONfELSxCNpQ2nFirdsBU0JF6vda2srUH%2FOEkzIN6nm%2BhKCKUb3RgumarTIkPhvTaFvUmv8L0bOPqfKvzoTZxP74YqTxj722N8kn54%2FBIIBsL8a0qJNv9hJTPboxeeMfxT4KYmmpV1B5n%2FOwL%2BWGdWk%2FA8L%2FttfnxiaOeWfQeZfof8VdeE5NCbapii4%2F8ChwyL5b5C%2FwRwowa4A9veKnjX8I8b%2B4R8kG5PwT9IPK%2FoVBv%2F0kPNy6WBP09osljnCtx77473feeFv%2F1uHp%2B%2BkbaddwRmpsf9yO%2BjetkY8bEZ3Te3782%2Fvn35yAmKJRP%2BFkv%2FmPYH%2Fkqg%2Fpi2BxP%2F0v8Y7NhatvSSIy94uuYapPZOSnMKePbhpg1j0r10PaG19PGtICze9IMwQsX9gV4GwfpZTiKSQtPiYd9XWqEg8MkHbGZ8zEmV86KpVgjWRHVmd8dELD4l1VGRLGb86TiZCsAnjZ9lJvS4%2BhDVX44eiCbt%2Bi49fzETin4%2FMhpXxqfJOTC7GU3ApMGQCpmmoN1TqKGkhCcYvJyQCHB1S%2FD6A2cpxmxIFdCNHa4vwx7aBWgNVTWncCKKa9VWr6hCSEbhd6xmAg249RNkhLoGjSGJWkFFhnKoS1TyzCq%2BQ3PXO8QYgH2oJG%2BAcpi%2Faim2wzJA19VW9JNbgRoeGjyA7j9m5eRj7oIA24B9K3VU7Ht3SMp6wWNG%2FOlU8kkAD62sLFxJeX%2FPV7kGkyYAOMwTTVMEAX5UTTHGhF%2BXInSXxv%2B8IYBQT%2FxmkflDIvVur%2FKe3H8Un92xiPyireOx%2FyLaNFsf%2B8cOyHILrQrh4dh86U5FnpaxKCv4uH%2FynnzyYEEoD%2F%2BQt7VGOQC2b49GZOmaH0nA0zsBMQjcN%2F2QS9BNkG7ciAW2aT2%2FBOEdtr7HAILG%2FIxu%2Fq0g%2FVGOtMviniUSLhH9hTyfIHJHLPLKNBIZzrpd2yHb6sn4YT1xkt6xtDdzrR1qmbeD73zswjYMD0X%2Bx5H%2FLHL5Z8YuoP0aQiMR%2F6BGljiRmocpVsyCrCOKPGcNOSU5hz167pq8PWWFv37POC8JsdYIwsd0Xzo8grHMKkRSStlTFueqgRNp0rDnGB0yh4wO1XgnWRPGBcsj4zsELz3WrXlLC%2BNXrayn4E8ZvO9k1RFFzNH51oWVTMKnw%2BMVPLysiAfUH3k3QOUhjO5LZBDRds4yIuhdSJ4zQ3bo6aZceUk%2BJIWED0yHF9OgnAPbC0egPMP7KjbwHdRl3EO%2Frsx4N2720jqHZC77eKEIywJroqlW7jJKVTuhA0FE9jl%2BvQFRMHkqS58s4Z5gVoNdcPTU4h0WXtRWTH%2BlzP8DCjG74UIR4fETxsPu7o471TCGrCsfDfTkuTGrOPQnGqf5VpBhgfXUtG4I4Jia%2Fvk%2Bq3SjzEB9WL5jiEu%2FKkTtL4h8OiC5lfziTxj8LuQp5qvajDH0LqWI%2FbKQGpHTY%2F%2FDT5BbMEvbXCVS0Wn4fmpSWYQ2llDzMm7KumHMUu3ylgX%2B%2Bh5L51zrAivuWJufLYxrp5%2Bg8dTzCrcIzEOr5nYtuAr%2BKkD9s3gH7s7%2BQxCCSjU0Yytm56uDfkX6acIrvkEtvRu0OyuqX7c0iWgIVzUHb6UsufVSyarpVfk3tgQdqayx2Ejz0PChDQP9oji%2BU%2FDeBYR%2BMLm%2FkQOI%2FnQhSxHt%2Fg1rUnbgkTsZuRX5qA5J1fc6iv%2BEFYVZbQW8URyAIE9l98fyop1ASqYYL%2By9SSVMJ04eOye0fIr7PfW7AxUfBmkYUHyrond4rw6xtzfL41a2T6ZDI%2FHeO33abK2V8czR%2BbMiU%2BEoYP3oOrwlnI2V02FQ6B6mdddgQ2cysJPXHcStU2yjz9siVVTUknWqUVb%2FzaMS1mm7k3f3IPsAwjiB7RFZ9odrIfIN85DBIEYZ2huMfJ0JkKBlrD8VRoQu5IlHRK2h4fJs7Z%2FiOz%2FrK7l59WYiNcgNT8WjCpWgR62FRa%2FzDNndr9U6UFWmV49F201GKImqxTfOvutw3FyK14lo2sOKK2Mh%2F2j89OdFgdriKwRRX%2BlTn%2FxyJf%2FYxZ0r8Y%2Bwog4TrTNx%2BlN7vixav%2BCQd729d0kgtZRVg%2F78wDAh2FRbH%2FjF12jOuv7O3be2URCnlqq6Ppalt0uq4JPCf3m3MeZoC%2FnX1YE%2FkuMPpr41l0llmWnjmIWpOboZ7Sn3lZ81QfvIXbWe1xv5s8SUeBkImMWjXXpJNZGNXpJ%2Bqgn8euOWTQLoImB9y6SgAqHYHDojtYySWkROXFfisqU7faJUfs6u8KWLjAh8e2dAf%2FBdpFrboHyNWJPk%2F4PbBpOssif%2F0IE4T7xUdkoBavQkR3WCpfv2w5Kf6emXPxtJKLUjXFdpEcaQHgjCt2O6L50c9hUgKSUzqPIiit9bPJ6pmfM2E%2BAitXXw1xMfGbsanxaxefRZKNdAzmN3xW1WX8NDwuGNcjZ9N%2B%2FcwvrkZP6iv24bM0fFSxk%2B3IYyFVifGqTJ%2FqZ11WIwpzi%2BS%2BuTXe%2BioPYM69u35VQ1JpxqVpqZR2BymEcQITmG1GlrFm9ZwjyB7s6z6q%2BUg7KR1Go4VMR5c%2FLzyKznmWF4SXAd0VDgdVSIqmKdiW8Pxo68uVT%2FufPHlbMU2BxI%2BlTVZ%2FVHKmpRqdcnbf3gVxOTQbl%2FpeLTdWKvFxUpz7plmTLn91Ga0x7oBk23BAQa1VqFtf%2Bfw09OKF16lYHJfWl5eNWDmSvyfgXRttsT%2FfJ91zif0yaUO8rLk0CUi%2Fyuv%2FZTRUBImCQg53943JQyIoCc4u%2Bgf5CJorUwf%2BIu9BF13fvpT114J%2FJ%2Fqs4WxKBf8xyA3Qrrp4J%2Bnl8lGvDErwiO5TWksMy05D9mrjnzDZ%2B9bcpeRvJJjMg1DKe2ZIvmPZl8zztzYSfqpOPi%2FBAduTfqRDgZKGI1Fsp%2Btx4cffbjuWQzvnpETFw%2Bh7PRVtCKu8jWhmWMdF1K3JEbxLn8tvspFDPGY%2FP8%2F3Oi%2Bf%2FrUyVOn308m%2FiOa1NVugRXvHUY2Uteb6LIYyKarREYNyFWQ9Ri1ICHmsW0MxZHuehCr1HZfbZ4f9RQKI5osXhu8hvtj1Momzd6%2BOD5C65aKj43dKr4gZiVbKbzwwv0qPn59UtAXYI2OkIlRPX626Xcl4sMK%2B08%2Bfi4%2BlAwRXwnjx0UiUjfT5AbqHKTlPEiDbdo3GtX8enxT8et13n4uQ%2BpNCClONWpNTSMH2WEEscX216PVXu6K8LMAsqFzW0cJeIjSOvbyXQjBXlLDbJ3F4hVH1VuVqC4T81SfwDJYxfwx1rzjCxBbd4aOjIcbzX1YK2s2hx99qGazt2%2B8bR5BJ7SL819l4%2BF%2BqViJSvmLnHtOx2RhfXq9%2BtuMu%2BlQRl%2BfQ4mHfkBFGPQgVyqY4jL%2FVPrk%2BT9P4j%2BY1qUl%2FjXq5chkFvrkZ0jv9%2F3YpQuuvvZTi26%2FSzSUBh7BMeqp6TZqv3QSKn7FbcVSK0TFhnSLZUvuun3Rp669ekHXvJnoV7wUQazi4J8y%2Fzzaxyn%2FZpA6YFEjhWVGs1kYXnzWe118xo7gFTACo2kvpT0V9o%2FwMJt9ubETyFYV%2FBP94MCtSD8g%2FNPDQNkbyLFgdNweDBz6Pyn7vHzc%2B%2B765ev%2FpxmpnWGVFxi31Sk3DJpjK98F6J%2BJmdzJ%2F9t84uGt4y8aISet%2Ba%2BJ%2Fyi7J6N%2FHlwg3rtTldg5%2BQBPiBvXWxk17NkGWQ9TC3ITxDyQFu5ZuyEWqyR2PcFm0HgKJaXPMFsfD62FGrXq%2BDbE8X1uDTKO28aj%2BHpniO%2Bcq55Qbey26zl8xcdvgxT0oXE4bpC1Hr%2FtYEV3dyM%2B3Lu%2BsscvKT7BIIivhPHjIkFURwygyA0EfFz2UkTn%2BTkaM%2FDrm4pfr%2FL2cxgSvkoKSa%2BnLaWp%2BbWJYATRKasJRX0p0hBkQ01qSDBlw0nr4KLYayg6a5iNVTsV%2FDerEBVnOsxTsQoLBYS%2BYfyHvsYcxqbGjrrRyvGBj3JLVvB%2Bp7N4ClakpFpXNx7ul5qViIGl8ldTpRlT%2FKsug9erv824mzZmSDvZGuBL1IKHWVPFgiku86842HkS%2F3gDkUPTi0g6cudClkPok5%2Fhg%2Ft9u6685tpP3nSLQf73fVY0lADH94I%2BJZtAkpRgccVPsTSt46hhVM3320bLgX7krW%2B%2F5aaFN1xz9YKPXUC%2FiuA3x6K64F%2FL%2FMcpf2adeMLJVNT4%2BIKrxer69ru8y%2FWti6R2Mu8TokBApK%2BoPkODMfZnoyHIvHpjB4WlyuCfxVcISJD0g1ftYaDPQDwRWNOJ147Y3nOWupK0hECDGGpQvc0LIaIjy6B%2FOjIVn3V%2F99LhA%2FsP0PA3Jv4L%2Bh9KrXR6EdSvaMEpi3pUtnhoHOY0SE6NIVtntSrrgIYQ80BaGA%2FuiBKrjLDrWTSDRlMoKX0mv7xzhoejGcUnuF%2FHV7c4ozGu4kPDEjaGOD4Q6t3NqmulmuLjN4SC%2FsRoNH6ARetqKzl%2B62pzMH4%2BvrLHjw1%2FiIkIspvkhrGgc6CWvfkfSLGBKdRYYNSvsV%2F1s60BmwWgO%2FP2cxwSexp1SPqNCP6ppO%2BLtRz%2FLdaYvL%2BGIo0H2VSTahhAOYg27pWSCwpOD4ENpmF2vI3GUUGCqKcCUXGmDw617CaG7hSVU29coKrpEvCbqbGzQRFrdOc5H%2BWd5tXrYaLlXomsVDWe2OwjNiNpNVNbWvTBxhfNe%2BVY5zoLsUZYm29T7UYXAheBagVTXOZfFf%2ByJ%2F6h8wmFzn7bo53F3reQ0Ccp%2Fy%2BwnhIbiwpyvGepQf5O9sEQcQT6S20aDIgPZSKUz9IUcjXSLTk5%2FRQkFsESNPh%2F6T0Gxt6CNkZFv0qA3xUH%2F1rmP075sxqAe525qDFvvpzfFuK64ZprDGuKFOUGkb5K99c0Bz5uNIS8ODd2NK9WGfwT%2FWw3SKnmSD%2BrHeGfHga%2B1ZkD4j46TSeOIY%2Bumlwiaqdf5UcE9DuxAW%2BBhEf%2BTXRokuCXf9aBemDMXSfb1vD37EzEf4FfkztSeI7sh2hPOTqyTjAqIb%2BdE9BPw2Zls3Vr6x4ajjmtyh6IQZrB3kixSo0NGRyaQaMplJQ%2Ba%2B8eZd6L0t9ErZ3xjcmyz%2FiwcgFnqPhAVw9WxDUVnyPUt5XD%2BGyN3%2FhM40cyxIMPIr4vonNiDsYP8ZU%2Bfiye6zEzUTDNqXQO1LKXQrFxqpqOUa%2BlTcmvV9KBcxoSybs6pJge%2FUS4YwNQ0meiAvMD4NIdyMAfI8gWtpa1azO3cxXakWrL%2F01QfyJ8749gduInZFSi9Nldgahw%2F%2BxMdwVe%2FLFONv1gpKqJcgN0NaGx0684Xw5lM8XuzZi%2F2sQ9RDBGbPcZpT5f3Xhis49YZseMampLiz7YIHEGaxKUcPDfIeF9Ddh8198AcNvy37xKBVMAdlDmP4vSJ47LOvFPnc%2F1IofGn0s%2FQ3h735PnVdcw4shG%2BX%2BB9ZSYKwrOCERLrGjh1B4h%2B1vJ1CXQESnp6oJbKpxBxKpqn7GlhT6AyAALgWXpYtS6Fcz82QX%2FlPmPU%2F6sBmDTylbUIHOrC9c89sWDotxyXrfblOQNOfDkwahGQ1r3hI294uCf6MfZe4H041YK%2BTquf%2BA7SglJUM1LVJ6KjHPNaSpoCWEcZaZCbIAHKnnmj%2F0jEjPJrf3Z7DnMA79t2Br%2Bvnn6%2FIzo32hypaB%2FEM9kcWz%2FSZPs3VVxbxmgy%2BNQgoQfp5OClI49gYZy3AEjxIlVKrHPAYUNeXxEljAFW3Nh39H%2BKptmEZ%2BS0HRttYyPUpXo%2BHI4Q8dHK11WKBgfCfUg1ZAhWuL4eejf3Y34hP7z8z1%2B2lCLviba5ZwU%2FZRlT1Fs3MGmxjshLzXWOBS%2FntKBcxeS%2BSoxJE2P3sk79jtqsWIFZgxseyutgwnUU7cgGxLzIvMmfdxoR3q4fj%2BZaZGEDGF2XGWOoxJEVoWoeP%2BknNIPsg3%2BmDlV9DkdnbVKVRMX%2BkL7qLHzqDbZJAwNNmZhr%2B7kfZBnU%2BV42NJCpBHJ7JgxT21p0QcbmH%2BiAWhEVrXNW9D3BTMd5Ltee5WNP4uuqlgwxWEHwkrnYHMlRjaAiX%2BK9MS3K%2F0Moe1947ue%2Fhak%2FLOeood0qekWpSzFqIH%2BkxMQ64VZ2qeV9H4JxH%2FxaxP%2BNOD%2F3qldloEKHTqTJIAf2s84%2BGfzyB5lItMM61%2BKzH%2FWi33xg0OAtmuVoueMkv9rVaMhNnZY93BjrzL418VXUfgZ8aQfR%2Fgfiesfptd3YJWW%2FiH6h1oY2W4cUa49Th1JGn1FbGDAU6kGbH7v7VeCqG8BmeHV%2F84Zcw%2F%2FIQx%2FDx199dS5GdD%2FW68g1xGj%2F9iFdBt7yxQqZL8qMMs2wFbrxwl5bi%2Bo0xiCcJ%2BwLSlWWaMYZI%2FGhjw%2BYhlOwdZc2EcmtMNN0GTpZ5gtxuekKhFfAzgD2LrO%2BJQVMTLsCruSUK9INSWNn0ieg9b4IMbPpv1rP7%2Fjx4eX%2B31A2op0T85v1OWZTLFxWoH6hWCC%2BniKJTuHIQXyrg4pFoUIxeEL7Rd7KE%2FW7w5kMoH6YMhmQfYg7O7M7LLSz0OYqY0Wj6kah3G3iUTzKhuVtlXocWSbWk2kFzYAWwuyVpqaxN8bgsbOthmlJ1WvTFsouszGRTnXisajW1qCXR1elMxOaksLqSdkNA0OSQOQrGoPrRduF1KGVCBykl8gtlQzmOLgn1MxvQTbROKf7b4Q6WGDdgaHr11k%2FWj340wmYc8nCYTi4Lpxk5Ol2Dn55NfglCD70op7Fxubo%2FJ6aalVv2S5UAUB%2F%2FdMw58WDjQmSQCa0s86%2BGfjxR6ayPAhV1m5BJn%2FXC5qri%2FeS90HRc9Euy8CDzb7wrqHG3t1wb9O%2FPfJCgHyj1L%2BQWI%2B1D9ao9q5yDYMGYD9Q29pvYLWWdQSMmtO5zvWjciYICi7E3pm7%2BHj76HMx6e9cOa%2FsWWjwK5p05VwYoa%2B3%2FffeZXoH5IriQTCsSGfa2vO1FtGXIt9q74Kijobg5Sm1ALrPXAgcGKVvd7fM8KG6viY0kzL9NnYMMX%2FIvcfZLNdmL%2Fr4qOijgj%2BjFicIc6ijA%2B5SKQl7a3eManjI6FekWrKGL%2Ft7uS08n43flZQ5%2Bd6%2FPjwRqaGmnTPxztF6Y8UG5Jq3Eu%2F0%2BzkN5FJ1Pz6OQ4puQtBi0K0%2FcTaRH8SomzfH14D6dDVjUTlECAbEvOuxiSmj19uKDMlTb0gOepkZJdT6ahYagHfDut9rS7SC0OeVbNRa2oG5s2Q19gZ%2F2N182OrDhPD%2BKjYmpGHq9nWlY1Ht7RESEPJ7KS2tPDuNwS42uq56LiuqpuVwyn%2FDngFImf2MQBmS6WCKQ47MknKL0ASktkHtvtCpCctFxhPK54hNF8w21u8oARCow8pbSkTxiL2TyXpj01AyP5GLZLMhxKT%2F6JqvsLCfyk8%2FOnePZPWe%2F7fE1r%2FTIN%2FNo%2FsYV0vPvsqyasMLSbJloPuCVmb4PBL%2FU%2Bs4WsV9mezL%2BTFsbFXHPwv6Ej8a%2FIPlX9QAIDkPw4B3LyUfvn0ged%2BCLUwKNyS8kYtITlN1aAphHGU1I3TvHPLP1qE3oOfHwttxTj%2FcAQSjDghXQmvoyMjEv0h%2BocgZPLC6XjpQ9sjCUhVg%2B9DSRqKOluxQ%2FnifU%2Fd6%2Fx7P39QfAETI2zI4yMV6lNak1pbfZ50eyDIMb4mtbI%2BX0f6bAMUa7zgj4g%2B1Hqt5rOLr8%2BJj3t20o6ppw9LfBTSYWuYGrRZHz9J%2BuPk1N1tx287BXV%2BvsePSDs2NWQVlEhbuaanUmwaHRQbB7%2F5TTyE0X45dyGtCuRdHVIsCtH2odCfxGYserhWsz%2Fc1o2kZuNB9lpbY2rtbE%2Ft%2BQYJRNhmeC6hwiZ3G%2FqXEttEUU0MVSMqZkW2w3TMF3qlbOX7abdeoKnJntvxcSeyMzIR3Xx18oMxNtApFTh0Mq768Wgb8vg4wVGOWyviuy9x9RpcLbe5t27SGRvXY7mCtka%2FrWmdfvMozAdQ0KpUMMVhR8RAS0fcjcmnjyL7wHbfbNGgx4wOXzSWIl8wI%2BtHCYTGH9IA%2F%2BmnDjw9aRZ9bAL3C9n%2FusuyUZbzq5rf5uG%2FwRUTu%2F%2Fzgaem90y1vzz88wH%2BOZGmmgkp%2FxSZ%2FywXkaonu%2FQrpE%2FJG%2Bp%2FAgJLTUBhf6p4AE1WHfzzmQPYj8k%2FTfdhOyX%2FDVyP0X9jwqgdvShqYTDOZbM7tYTwTngFnWhIXMYhJyR5VXZkocOHLTbFZp39rH1gh7RN36%2Bm%2Fmj0TyuopIXzC0nC7yBKk8COJNVmr6gj6QDkA7p7bNvqNrACIegNygqsYDcSG8YhARumL5kSn9sUbCoVYZI1HWSw129E%2BgxKnxLfsDMShdnaFi%2BmKWqs8CBygiRQYkXbNIV00kXhio9fq%2BE9t%2B9facfviw3oU3wExk8hbd3WySpohLTx2CRtiBhfe7whiuyz8JtCn2TKKn79HIbUh7a7hJC0KARhNhibzFgElB36w%2Ftxg0yP9rAH2VDVnGhP7dt%2F8C%2F2jOr6gz2CBD55D3ebZP9SRiXHnypExYhoOob1fmwblfPHWuEaf8xcExcKa27CBkzCLVG2OvkN42lhK6pWeq9uPKQYfzCrbRVH%2BcNIPbUEVmN2WxuDrVulUIkMWOhmOQ3zAULMCgWT9WI6hbAjg%2FoKonT1%2F%2F%2BRt92XPWbB4YsGaBydrKwf%2FXsaWz39F9%2F9wV%2BZz%2FiFwT%2F4nf7u5f968W2%2F9IlfKBn1c45cdp2D%2F%2BvN3mPC%2FasffPc7%2F%2Flb7Z8T8M%2BJ1CYvIE75qx1HtZhkvmhGhWbfAY30gVkD1ScA4Ilph%2F3ZaSg%2FTB5JpcE%2FN2Em%2FjX5x%2FU7NDsl%2FzsPPv9Pi4p1AsB%2B%2BJw1zvUyt6rbF%2B%2B03WsJNYxACgg%2FQAAkZb6nzUqKg%2F8HVsLGZNduof4o1Z8oTUyNA%2F1umHH%2Ft9aRC6iwn9krs7wKLMTmNT5uPiDSAZL098p9TqxS0sJOEKaGkj%2BxYWoxIskLSuIjuA6mQjqb%2FdgIhEgNbmV8EKzprVmtsqaNr0%2FiM61gtjPBH%2BxefQdrKYV0UuxgCo5fi0qakvTn%2BAEW1WofgfEj0k5g1ut1L4Vciw2RFJsOpo2D35HQp%2BLXz2lIDrRFIcUPvIPZ4yNgbDIzoVC2U2Ct4QZJjzZBdsNg7On9B4%2B8cBTIOao%2FUHEdNSr3EZP9SxmVjEAFomJEan6jyxaHbWbXecXCmv1Rww5Rdg8CQygjW5XVm46mwvGwn1176nKW68JWSnMhPGapVmX5NluGJZ0hTYKY9%2BRpkdiOLa9KweS4mE5BYFnUV9DuS9Cevd2XLGbbY0aHL22Alo318yJ%2FL2F5ntpjzuWH%2F3z3Dk%2F6WbZEen1LzvzTqOr6RXfc3QH%2BDx%2Fcv2%2FPnp8X8M%2BJ1FbaBhETjnq3uuaZ8aIZFcgu%2FaJ%2B2%2BpE%2BquJ%2FRVv0yCPo2%2BaP81OQ6p4YHWpNPinti5Af0T%2BackrBfpFs2UUbChSnkAZdF41oF78EMa5weBOdfvKK7WEtjxqFK6p90hSJpnCzMwUBf%2F3rkDrJQRJteqPJohD4%2BCSpKwJS%2Bsh18RdB9sNxGqCEuSQEFfNclDr7rG8Xal0oG3VpoWb22SPl1ZVOZgAGzKc5DaEZDn4L4xoIo0aWSz4TqlyQsdniJ9OsYbxgV4z5ig1aKWdhoUFsSuFdBKmeJHxQ8LPdS5Bu3jlSjd%2BaPsVLc2PwPgx7ZGMtFtq91fk2qQN0VFs8KIoNpHQp%2BLXz3lIURfCB8HsnTttwmZGlI0ekd66q8vAWcv3zBmM%2Fb3nj73%2Bd9D3iEsiTnF9LGSRPczmWlXtqPgoan%2BGwXVCsyOvnlcsrNm3JjTEhMdWFfEkholR1X2s6xAVjifuZ48E9tX0jvlDsccspjVepJreMkULkF9xsA0xnVGJ6QoFk3v%2F5VzUsCZdeIE0JlL1M7X7Ur5keCclgyj0iRpkNtbPD9XvxZPlS61RYeTt%2B9ZutPtClALEH3L%2BS87737Ps%2FkD7%2Babh%2FOwcbTWHUsB%2F5U2%2B9ET6eltpG0RMOE42%2FWxnu7QZ1Vov9EOkL43yEfZ33rSnFZCkikfVwT91sbYT9PMMIBSdMZCAgkB%2Fc3RcNTyAbq2aLg8%2B97yBNgA%2B4vd1%2FYLObt91PF3IWeB3fi%2FkVwMpExohKjNTFPzfbRwx0NgkTcnAYLx4YAMao7lJrNbd2kIBORObdpsL6oc7BBU6JUhJ%2Ba%2Bp9UAGGH2rhP4DLr9H5r%2BMGuJS2DUVW%2Bv0GdStPThQ5jeID7vi%2BIXx9fXUBFmDr9KkvdAjVgFuEH4wiI%2FjRm80nJUS4ss%2Ffl5I02mWmZw%2Fx8%2B1%2FdZ7PgLjx7THh0fayeRatvUIYQR1f7xoio0W%2BtT8%2BjkKiWglMaQYZnfLtr%2FDL1ZqqUJ6gokKV5fpr1Et7%2BnDzx977cTb76DnSFKruv5A2Sd8xSyyWrUrHhUfRYJtNLMM9ENWxzxp0WW%2BT9VNoHF%2F17XApnIcaH%2F9K42QSI6ycRWORxe2GsE5eWaOQXJzIcmOrBvilhnm7KZBFBGD7AFiUpT0KgVTaP%2FFXNRTMV0YIqbqZ2v3pXwJRf5ZMowhRXoNQv9ePHmt07sR%2B9nzjWkIfQL%2BB7Wf8hn%2F9Yd8w%2B%2BUkftpjmBzSlX7IRer%2BuB%2FuP2NndFDzpS%2FKuqpql52Y%2BrrgxlVv5lBj3up%2B0juEt8h9g%2FIgxQSqHhUH%2FxrzQ1F%2FnHC%2FKvlyEMblq1JRet1zME%2B%2BwKss7bA7%2Bu2hbrbdxvekco%2FTLOGxFV0eisO%2Fm%2B%2Bc%2BlKaK%2B0p12GmBepWtMT0F6hvYAaQ1lpO%2B2eNPM21OBHgAqtEqRJTvVAqxLH8pYTq3SCPy04gPfCChatqq%2Fnxa7khrLpTblmKSW85gXx9UGmmIo6wV6oYb1f%2BlAxQXxvnmZ8RwW7pgjppIzfmqTx80Kacm7q7unm%2BH3pSyNDVjCpPvCRGD%2BmPT4s0k5e0HVbj3bVcmCSL9x7FQSYu5Ao9BmFlGjw23iCi5U5YPURZaPzhxRFW5fpldnkQPbR4yfePvO%2BYxlvWD1wYf2BmrQEkpGYaaWj4qNImg3Os6Z%2B5p84fWlhzUHnDD4WCLeKGvebnBBtuDTyHBmdAaseT0s110bTmxyDxOZC3nyeycLs%2FrwNS%2F5MZMzAt6pOMEVRXxZYg%2FKEavfNXoRg4h%2BdA0jIZhP6ZA2CWj8t%2Fl48qHVTobIqvFDb%2BdOpXS3QPq3O%2F%2BWX%2FJNo%2FWxGlmD3k6b0IL6T2JzqH6zzzyeg0uCfMv%2B4d3ovVtbX%2FCuq5pm5kPKJm%2B9x9HQQ%2FscpdQ%2B7Lwf5g9Wvxv5xp2HlwX%2BsuaHPAE4GYBvGwXb%2Fzli2btJoCeSao8Y6awIsVvMU%2FGrU7cuzAFuN1PkNmZlZBf8LjRnf8vqA415ru192YMLchPYC8Y4wNKaKrnomMpttUCESVKvE%2F8NqVQ5LUtiKVdYoWCP5Pcn1mZDQqupkSM%2BdyoBdNTd0K10vmAuMjslmXnfGB8maISrqPAToCn7SMLpqXa%2BEa6XlDJ8Gdk0W0kkfPxNYwvhBSLOnt7enY%2Fz%2B6IsjaJ6wgkmbPxLjx1mcAWmzlJvQWzum8%2BqKYoMXUmx0i9xchkShzyikKIMsca0xN4luIkODuljbCOIELVuX8Q75ANnvvU%2B8YWejqj8gNm07FomZVjoqPoo0aLbZmOaIr7XpSwtrDjfQdfvEqDPZ1FQdlT4WsYsaz5H6DFj1eNJZbcxRJTUX6pRacA1EZbFm33ilwtuK0Fa5YMoH%2F0R6Tm%2FgPQVSSbnPkPjnGSK70CdrENT6GZj5965aZCg3D6yE%2F56l3Tz5zW8C%2FluHX3Cey1b5h7ycUfk3fxcQQ6rlK43H7z3JDr%2F0hKg6%2BNcy%2F9FerJSO8Vd02iPbhdbU5d7eaq0n%2FHulG%2B%2FytZpWv0nYn52GVQf%2FzArAZDEm%2F4yPWAHgsSDQPyD7V4T%2BaVYv5BohYViEsxlPwQp0%2BfpuX75j51lALT4IcXbB%2F5U33izUHzQlOyimL9E4aCtn4WgRJhxUFusNvISZ2F93CSr4f0Drs%2Bmga73mBX%2FQtWrT1q32dKcMzIljz2bAroobylw6t0M5zeFJITNO0j2Mz%2FqTALmir7avz3Wtuo5DxIe7ifg4w3GuA3ZNnOLp49f4sOOHnP9mNE9YwaTh5kdg%2FPIi7WTO74DNqztD1Qh3K%2FioW%2BRKCImdRmkhUegzCinOIE%2BaP%2B6qtqtBRnSpdhZrm1i3aKpbszdo126CbJoKAY2OhfpDku2YFjOtdlR8FOUA5aQ1uyVd03RdNtFFYU3I7OAntgWTzV6i7JaS8H3c2sjyHKnOgJWPJx1vk2OQvE8xpabbM8xXju9YV1ueYuxXMJjywT8RN0%2F6ZP1kFB66gol%2FniEyEJm4NrkahMs20PBM%2B0EtumPx3Us%2Bs%2Bz%2BlXVZ%2BOWhnRL4vw2ZKeE8X9dVEtv%2Fik5%2F3yf%2FdLccOQAxVt6%2F7DNL7l58xyLsfbwR6OLCRRBYffCvZf7jlD9pw9SnVmmPDBeNaB8OpB9P%2BG8ya0PP3xj7A0HqTsPqg39mBURle0CTf8IhqOkq1pL41B%2B%2FGUzqm8M0NhLqzw%2Fg97VFkv8ycuC5so%2BY79iU0wUxQHngv6vrukWG%2BuObkmP0fx7mJnQWjsdwdCvgoEKtavN12eL1G12CaqvsVNubjWEHXfv6KPiDrtU%2Bm7aWOomSgdn3ZAbsquJTqNoR2NkPyCTYJsYnwDUo6qAoEbpW64xPKDXva0u0LSnYdbbGr9ng8NW6ax%2Bp8eMsTq77N9KQtu6txcNGKf0Uio1qkZvtkNhplB4StUejkOJb%2BFXzxzcqpiKWHKJs5CeCqa6sVbhB5nAGkG39Ga2pkKx%2BjmbTiEzIqInEIiVDqnJUlCYP74R0jU2lN7ykJjU1cTUosyO5%2BEcJPGOTYYp5ue64HbtxjtTZuErHM%2F9D4u2U3gFtXo1jjSeK9pN9oyyZlVZP1YIpH%2FwzQcGTfi6BTkI4Jv6zvw%2FHC%2BvOi6rwEDNvbli4cNGtdyxect9nRZNC2Kjt6af2Tk4IJ1U4zzeXQ%2F259BM3%2FdrSFeQGTk%2FucN1mK%2B5bsviOWxctXHgDig64EVwVfhbBv5b5b%2BqUf6ANUwxapT2yXa41dcyTfoB1bZIGkv%2FjfuWOsL9S7ybyqDr41yaLdUvC0V2%2F61abL%2F3Z58vcsfwAyNiwZg3hRerq%2FMDAsImGiFfbvJdIig3TRMAp%2F2xziX%2FlL1QG%2BDdP6kLzwCgnWHWde1M5C8c71OhEU6HWmbwkR7cCFGLnEvcnKsL0raqvDYI16Fp9WHw84TwMOnhoBW1lwK4qPuV1qVxvaN761R0jPoG2vQngahV1VknSWtIILd%2B1an1GtTPy2bdeAXY12DsFuxYfP5ybBFhb5N%2F9ERs%2FjbTjjj%2F0kKYiba1%2F0VLVPX%2FubgqYjCg2cYtcekg9mUJCzqF4SBpm%2FwGWFjIVe1zKvcfbmtZpqgtZTXuDXraHM6bYJSisflgTYe8W%2FMYaShNJtydVOypGNOlSPHhQusVQj4Qa4G5trzUYZHbW%2FhaBJ%2B12YrXXESeRMfn0c5BbUdm4qsZD%2FJkBb%2BthTjavJsueXuGrdJeG2v3LDqaVOZjywb9m%2FZzOLtBJOgwgHBP%2F2d%2BHaxP8jo%2BkOB7M65p%2F5TU3LFx0%2B11Llt1vwDhIqPufnm63oEaxfAkW%2BVnH%2FtcZtv9Kzw381rSoq0BlaOni2xctvOGaK%2Bd3zVM2g8R%2FP0vgn%2BdfyvzHW%2FIF2aYUZ5lUZzi%2FQJtXzdL0Sv%2FUaa5p7E%2F1biKPyoN%2Fzfqpe3gQS%2F67zz%2FaGlfonxl%2Fk69aR8ulXr99ff%2F7B6YFiW20eS%2Fv7Yt3REkldP2Omz%2FYzye%2FDPBv1gUplS1HU%2FKM6J%2FOwpQUVmO4G1NQo9Z%2BS2Dvp5dkexRKkEhQAfhDEcYgf0BDCtZYaviQTVvTeIytoJmwa4jvKw2NWklgpx9M48ujE7ueGIdQpZXSBEewVrdSlcONsVaHYE0U35kTLx1%2B2p5uV6Rg10LjNx6GbyMEk7o%2FkuOnkXbrAqS9Ei80N4zXj5gGq6p7SAS68z6Z5Ey8qRa5tJC4FmcOqZkWkhn0lJA0zKY%2FiSwpWKm2u94sUBe1qa4kKXCDzrjD47mz71mHo4HVGC7m1nk%2BQbkj9I5GwmRJUY2NzH1UjOhrE0jBOJEh07%2FSByYbrg3U1MTFvlvb5SIwMbKa5UNMnPr5dfC8P%2FwKtkbl21LheIiVPize1soiyUSbhm7PwLFN0ezU7l92MIgiQzClq%2F2Q303WTx6BToo1AsIx8Y%2FrVIb34dokIv8fyl143vwrr%2F3Up%2B%2F4DUPDGbBujn%2Bxb2oXPPuY4plduv%2FN9yyvrXPcwP1TEwK74C9wy03XXTl%2FXnya%2FVkE%2Fwxfyfz3Ryn%2FZlGZf3b7goY6BnamIrqD59%2BS5Zmevz1SSJxKUe%2BuPvgn6weZ95nJP%2BzNNbRojf573b82WsW6JrQqWLhG8l8qUiOOdYnXDvLPNq8p5ErZu%2FDklwT%2Bw1MTo%2F%2FYTDAew%2F3tqB9Ui20Ie1VQIdvVAPx7%2B2xDEPgqEKwB9R%2BndqatSQlBK%2BhABuyq4vNcuH621eq2VTODR57YNgSfHAkPGvWipAmpytYYsuoUrJlgfA5bv24m%2BCSwK%2F3bEq5i4zcUhq%2Fe0137iI5fjLQRXIy0sWUnrR9M%2FDNnrFv7cd4nk5waGVGLXFpIuK0lhMSMgAopEWbbpQVLimsfla9B5QTc1qa6sP1j3ejMqTd%2B9CPp%2B8efd%2F0Hnc4DNedGGHpHtSVJYlTkT85tVJzqqHDaCrY5SwNP17p7cfUFTU25BGGbC7r7Qsijiqa66XyIHU79HbfEviX4Szu2VzgesiRS8DZJ1MnKIiTaxO0ZENeMujTUo1JmMJhA2YIpX%2BefFiL5BTqJ26EusmtvSPzrw3AWuaDvBUCQBh27rrrBNOAue9CgIEH%2F3z24F2nPdbOP%2FpnDBMT6tiOR1paLtdjVCz4e89iqBP55O9LAvy5cyE8npPyRqisk88%2BbvpzZaapbYsEOap%2Fe87fHFhIV9tfq3dUH%2F5r1wxWBe3FTS%2F6L0o9C%2FwL0pUFLalzr%2BkACGsNMZKejSf7v3rVthBL%2F8qrIP49gJ5PXfnjyvXzqPI5vJYB%2F1ssi9M%2FU%2F0wHfY6hWYeYq3ZwlQkU5ioFFVKors8pwkAKDHwVCNZY6IqOPqSFSQnxraAPLsuAXRmfPFDkwrGttqnbVv%2FQxPiFfwehSoY3yLZkZtUte9HHRxmdg%2FBvQF79%2BhQTk0Ljt8EOX2%2FPR3n8YqSNCChDGiyNEurrOpNFaM0We6JIHPuV1k%2FUIpce0ng5ITEjEIcUw%2BzRrVhanCwZlxjJ07BYG9xJdkyKOwRuEED26y8fOfy9w1K7RYpd9hhmQDBDZRFU4xTzCZKjWtc%2F11GxBXlKKpzGn1GWbvNUuZM2LlhoEV07hL0Jjrsg5I3I0Rh6OrFJR5M2HiyuBrlGQq9KxZOnxZ4k6qTpTeKIFq3yjgz4SndpKEBUcjAYogzBFHX41XGl%2F86hvAKd7PZ9RIAEDnoUDA2H4UxyQVnchS%2B96sZP3ym8YqD%2FZ5H2pKzDrGJ%2FspenD3zXk0jvXXzzjVclMA8rBf5Ju0sH%2Fzz%2FfoM7s0r5c%2FcpKPPPm046eiC6O1lmqn02CX%2BlkPiOwv5avbv64B9MO%2BoicO10e3FHA4DT6eE2RY7%2FKiH5jIGuCra%2Fo%2F5YjcOpfYe%2Bf3Dv5OOO9EN5Tx6vQP6hptAuePLx%2BDbL4J%2BdMjH6Z6JBU%2Fz0GGIdosQnJUoptmGl67FVoXINpUonBdnwyLCvz0PXKXT0MS18%2Bk1QQmRIIRNwaeZ7PD0RctUCnXgwVm2rrqDVJ%2FspBWtaE62GEyRazfgM9eB4iO%2BMyOjs3oUbnSGvnm%2F8%2Bnovjh9nsR2vVkvHQ%2Bp%2Ffyq5lll2C609r9731oJwp3kjWmB7zkNCRiAOKWZutUd32BrisOcVjnnC9wg6kyiwuXEzZL%2FoDvH%2BuwZkH9y3Z%2Fpbk86AfJytyIqRpMdJ8wmqHhXFR7856f%2FeUGPMcex4bSa6xoUWHDncmmvisSd2enUYsuGYhOMp8Atsq6JQEXupqhVPHvBPEnXK2TYSrWqQZd8bdWkoQFRmMCDaZQgm88UsfgbwTyDCDG5WgU7d7du2QCK7YKj2CXgxm7tw11XIyTv0j9We6H9WsT91S75%2FgCTSmz4BiFN58K%2BbctPBP0z6JoYSUv6FZf71TQdntKeD6O6z1lT7bEp9di0LiRH2p3p39cE%2FmXYdCsBKeqO%2FU%2FJ%2Fy7%2F7fF170zR8uqoJoQpZvfFPK8OI7OeBv0TFGqQf5r14rGITHIRVsc3rKt3sgX9qZAH967vHtjq9SOj01B6vAsOdJWw6E3Sa%2BRzNJ61SpZOCdFKf6Fp10PUIOvqYFj4KSghaQbMJBDM%2BLaEJPIAwVcHMDjeotJsRXmt8vDniVOpXq%2FiOvQmxEYdCXvK5jNqHwa4Xx6%2Fo%2BHEWy8oXtAw5emT%2FpCFtnWX3mr7srQUIAO4mb0Tvl9UOSReXpibcwcFXazuXmB56NMKOBIYfZ87bo%2BOJV547aIi6oxOWf44UO1uRewIjSQelV6pKR0UCCH5Otios3YM4u4YL7SwBXVuE%2Fdg4ZXa2PUGHvsCq13K9T2wboaAahYpo0lrheNLxNvWdE%2FC2Nq%2FGvNasHyhtskujh%2Fw4JLkJiEoMBrt5hmByw45M4J9AhBlcuSA6lMVpGLxtdPseOiZAQr8PknqZEv9homRh43sdGNR5if5nE%2Ft7xfKjB3cHEunHEm8EyymVAv%2FITSSBf%2B2SiMmIpztK%2BeOJYLIpp04VXd3AGZVXalG6rDW7f%2BVwIP9gMoHYX93q6oN%2FntHRkaSXAuYISP6ZQCuzcqVnk9pmT%2Fzv99SfAfT9gpaGinUPu3x9Sx6Vr0fG5ZXndV2lm13wz8dHNYAllgd1emoKDBCV6KREGgnswYlmyCp9eilISH1C5Z%2FQ9dSZkLY2aWE07WdopY3ji3Y%2BbDzaFxvHWAkP%2B%2BlEC4pEUKyJ42Pj1RlDqSGL8d7FwK6Z45tsXBw%2Fjl%2BGWSyLAm0HWq3o6ORYv2r9SMyyq5O989ijzI5i%2FXC%2FLCGkKwqGlNi24U1wx8Er1O1b2p99125YffPoePhpaGWPPN7hcCK%2FCVJ98D9RQUXk%2BtKjag0XiYokzylTjZW%2FKXK5fNoIumPkPeRldh4l%2FCSrng59vPWT7Q5Xu3MnXoJQEQs21Y2H0zuWE%2BcfSBezAgj9laW6wZ7UGl9kx8JClj2T3ABEFQumfPBPdjrl2gPlX%2FsxpLs0uW7fN7H2Zn8fnfjnRMmgw%2BPQ%2F%2B6DL0aQsPi1AODFeZW%2BeGjvrpEPJpF2hVFNAP%2Fz5wL8E5UlgX%2B9M%2B9xXNI45U8SMf5ITocKekxgQ1opB2WSf5i1pkcLIPDEdCr2rz74J%2BU%2FKACHF2Uo2Zic2qHQfx%2F%2BRb5PA%2BJWpP6g79cy%2F6daW37%2Ft3SXL16bbkMbk62R5%2FUoAT%2BL4F%2Bjf0q%2FJTUG6fPnTi9Ww7GilDQJ7BMjHU40FhdSCtIIwmwSlfqJtoKuPm0NWdTBbK20cXwmCHZycZtQvloiqjEq8tkT2Eq3OinSej0xPqStBYVY%2FQKpMF6aKz4T2MXx4%2FhlAP9skGa2Xftig6qrrIuSsuwE3LTS1cnJFNZP4ZBYnS8YUjJziyl2LC0U12cGh4zNg2jX4tHRamVvaYjLt69K4h1Iqq%2FFQWndmNxRNT9sVFhC80dFeYf25LZhMxbSPA8fbWpr8lKcG2Hgo4vp81pIZ%2BZu2%2Fa39sPVjvYpAlEG2DVZ3Xg4vWMjUf6dVDErNg%2BSvkaVnVBdj8yrO5LcXXMazP%2FP3vvHVnmda6KCgBlBkkuiQBSRMEJXpFGIlDCKAF1xdUnRcBWFSerEZpuN1SM4F3MT7mjkYPX8wZGQjvzPWJY10%2B2yt%2B3utDX79vr0BsSp24Y5gKentMTDOUALBOLT4BIoDU6BkkAbTDmcWe%2Bz1vd8%2B%2BXzzsfnlR32Nl7%2FOBC8%2Ffr7sdbzvu%2FzPk80mPKDfwq7sEZNpEKj4QQuTXraFwow7%2FJzEhb%2B%2BaAkRP8I4oMIGcR3TX90kYUuYmz5gXEllV0KjeSYfkoJ%2FA1C1ZcL%2FtlYigX%2FmjPATpcu%2BeNkZs8q8SOjXd2gbGML%2F9SifI1Va4tUA5HP4xdisH%2BFg%2F%2Bo0Kfy%2Bc%2BF0hvIhB2%2FrAjzF%2FF93oQQkKP%2BiIUtiv%2FW5qjLSKCYf7rdHGCYGyb5BwcaDjbm67ovO7MM4N%2Bhf5i%2BODZxjCSYmzkvOF66QoX60Pl%2F4UZDJUjBhZSCFEGYjlxvX%2F%2B%2B26DhVVu2ti4JCUZpI%2FGp0muWnbL6kMCec05rhTwc9AGsRVLn8%2BMT8oGh1ITKxVPHG9%2B6yevH65cA%2FBPK4K1EEURxp7p4yvLILlVl14Cb5fUMT%2F9zpSg2%2FiFpOxX%2FkKLbnCqx38YrpK5mYzM4fyDWQyTKpY5GK%2Fu2ruRtNBvZu1RQJXRjohY1MVGZn3lnUeESeURFnk3BTK53dsoYDQTJqK3JpaZtMYQj%2F%2BjruuiMm%2F01xUnBtvurIRDyrPquhSg0Sa3geDTeJrc4XsyKHRY9POgexqw2r8YXbV6ti9MVFYwP7EBWEg9roor0BImJEOq0uUL6wbEOPq8%2B1fk5iQr%2FfFCSoX8LZ46e0WOgHou%2F4bLVjnB%2BfFgUwOSzlwP7l5ykUDgzQV7lvcja0T%2BcjaV48D%2BD27ry8lAlf5UAq6QmaaTyybbw%2F023QQcaZGRrGqRKkU%2BXo96IYP8qAf9srCClogKwUiVGuxBW1266hJgf%2FxUKfQrkl%2F9ca4ibQfG%2FQWR%2FzN93tP4VDrB6zA1r8o%2F9ynwdhX%2B228oA%2FoH%2BXYlgz2HcwxgzEGc9mEe5RaPWTIbJqDRQOiHzSSVIHGSUguzISlF4YPDYEKAhGSHDOOVxvRJSanR831GCFw6RZRSBPe%2FuQWdX6zcEt0KqMj4%2BlK3bknkWTl4%2Fv%2BvHpxgdE1XpYFISCIhj61N7akyVPcK2x%2B%2FH019RbMoQkrNT8QiptF48S%2Bwc29KazSmU5YSxef0WRaKQOra8wa4kP8FKEZBmk1VmCFo3pvTAr1QyYqJK31FUWc%2Bo2OnNGKa8k9ZBgg1M7SC1XnUpgO31VnKfhrrZEIvW4gu5cSgz%2Fj6wKLh65qiFKKyfVnA8fLy5RSkOEWsWWsyKFzrKs8PDqD3sSbRR5tXAuQRjFRSMF%2BxAVhI%2FgkmUyoZhBCTOuCN7r4VA3Wzo637%2BHYr2THvUq%2FAP9M8c5P3fFQlAPjLVB8jxNwwI578btgpgr654lslJjOMCl6bHlGkRXEbAP0tCceCfMv92JIVeHsQReu6F%2BWJSOhP1sFqbhfH%2FX7ExO0m2Jlu1biBLkyKf7CQq7F8t4J%2B5VfY2qiTnk%2FhFNoZ%2FPhqi%2F2KTr24n9Nki1B%2FpCDQExX9jPWGyApMKdHe24wC7nfwjU774SnUuFP5j3jo%2F8A%2F0b8mBubcHaAUSFaHShLCwL6JRKzdjaCa1QObTKUHWKylIgwylKHxyeORKETS8LIwQW7ZuSq9OSqnR8RG1QqbVHooqvvzf5pC7WsbBX6xZYyrWdxIfyAfmZkJG5w7LIJPXz%2FP6sRgm3mOa4xg2TrJh7Y8bn25zlaqyk21PmR2K%2FGuKzRcdEu1UenxCKu0Uu1F%2FshvbomazI%2BQGjM1R%2BK4hddwAHxLbnezWJfZAUTOLLiiDAjqhHEipqP5WPsQzKvZMvaLi9KccoP9X89aO774Fah2SbaTb0bWZUzgg4nc6EBqCbY1FSTB2dfZjODMIUSo6Hj7e%2BZCSONYMUKMbaVGqdFH8yFq7vVmUaYoQbbSuTVmDySUMxh%2F2RZKSGH4K5IaiIDF%2B3W%2FsvRzf5vSVW%2BpQTzBCaPC1V%2BGf7COrXXiB1k9LFvjQ%2FvkbknAu7T354FWL599%2Fh44LXIkHY%2F1TwKKlyaClwb%2BW%2BS9V8s%2BEile6qZB83DfbYWdTv8WaStNr5mtYrQZLkyKf7CQq7F814J%2B5FWcwKZxgvxASYWM4Q%2FTfpGT%2BLQmoAdSfwOULxX8pdjYgFcj0fKfDwLMxJP5xzHLal4V%2FvnVlAP%2FEH%2B00AY%2FaT0Q3Jk1tJirk2Co2aOdGY5UgKQXZ1QtkeMgUhS9ds9kGRbwNI8SWrV9dhaH9cbfXVPvG3VLdJv5OV0%2BxuZDEt%2FWO4pM7KT4iCWR0Jq%2Bf5%2FXjy%2FkDyOmz7qEGkbNh7U8NcUUcL1lWf1MBbo71qNna0hQb%2F5A4lpcNY%2FAISW1zvVQzVJ%2BcVZrNYGyiNgiUDd81SR0bAx%2BSDRaYs8QeBXCwD1XNiFmfs%2FkWYM3rHxVOoXqfqMACMRVWvHAgzHeIWpWbowXqjq62cAonXyh8X4NtrdWFvwNtm84WA38HnQhClEqOh493IWompNW%2FLE5WfjSqPstau32Q6wVgk6kVIdpoXZuyBgO0nyAYf8JHNCmJn0yNgsQ7gtzG3gsptLC8bsW089XSTcm0V%2BGfGxzECy%2BZN7k%2FL6jxBV%2FaP39DEM4%2FHR5Ee2%2F1soWzp9yh4wKWB9j0IX%2BVAFlx4F%2FL%2FOuSP6uHfAVUvpi4%2Boee82voXbOm8hr4p6xWs0H7MVmE6CQS%2B1cP%2BGdupWcwyaKkyZHbGD4N0H%2BjM%2FmizD8gP6g%2FTuoHiF96Ai02FTDcnx6D0Fpasxx2o8Q%2F%2Fkx1rmsmleJbVx7wz5ecB2bJ%2FYbUM8VQIWplhmT3VPOFHWkoU0MKMl%2Fo270HyPAsisIaGooReBvK1qYsDLr6eOssupYemkEV%2BzeQYyD%2FsQ0V6zuJT3o4QqlJQvmZvH6%2B128GHWI149E5na9zY8mNrq2r%2BY4s%2FMmBwVRbkEgEcLd3q4HR0hQb%2F5BYGENIjGHcIWld8S6tTaxJMtRspi07h7XabBkD%2B7tSduskvCbadpbDV%2BOaEWFU8k%2B8o%2BLp4xMVt0aQ2vDema5VR75TsHRPbz4XWUDYsvp2m9W%2Fd9%2FuUN5VS3Zp8Rn8GuJssTP%2FTal7EqJUcjx8vJWnEAmKrF1QF0dpFqr6bFhrlwfZVRXrWWTXRBvNsi9bMGy2JQnGf9QzmpTEaFImr06TbPOmaebvG9h3QBjZ%2FJhLRYN8MYtFQY%2FCPz8F7oR%2FunDcYKa2FtD%2Bx305%2Ban4DYVwjl9K2nsxn4o9iADcD%2Fz7g0%2FdiYkH%2F5T5L1Hy1%2BJyGr8l5f3ipZJKf8Zlxu2u8A%2BLW7ZfXYOW2J%2BdRGD%2FKgP%2FK%2B3GEp3BVMKWeCv5uzZLIQq8flOaanzDQX5Qf%2FC3LP53A5c1rgX3R1QbqXCtvnLaVw55zLHwrSsL%2BGd7jyLipTqNfDa0CgzhoMuQSDy1HWkqQZqKcJ85ogbePXICyPBmmP4SGgpVypWtZ0%2FzsFQhQyXMknkMsqgN0GqVars7MhLfzjuLT8rWykckdk1eP8%2FrR4dY7T%2BA2WirzE0fI7R19RBXWPgDxQSpNiXMqBJDPKpma68NDxI%2FfqEh8Qxj9s8YkocUrW9pbeJc0XwtNZux1WiUjb7l12SSg3aOxRYvhNdE27AcjlUlY1SC2T2jYq%2B03i8qcqs5Rfr6pmbxrTZvXMd3O02q3VUoiJZVV2HXbiwgbLMGDg4ODh46hu00IrfnDDw02L4xAmeL9m3W8h53rbLj4ePN0X91LCpdMiSlyq1I12dBFKafpQXYKeX3RaKN1qMpazD4sQmC8TyAAckikvJxtmDJeOncVSzhv7Dnx0bZlWxefsyduQaFdGCPwj%2BHmpBNXTtzdL9Y2KFG74HkqGNaMIOKn466X2r1Erb3Yqk3lQL%2B9YNaGvxzWhn%2FukTJP%2B8n88%2Bf4wjur5mXipkxevwdjp25HR7kyL04UnL9HPAwOonA%2FlUE%2FtmeU9YhtDalsCVJYw79d7SGxr5SBwXbP1PM9mfxPyOpQLP8Abanb323%2Fa82r7ecWkr8ryme9v30NOZYxnzrps586GGsB2s8wT%2B5kLQPjQ6iayYod197hiuOCHXYoFTJjrTBhbv3mFPq0LGTw%2BcvAhmyKHxl5CyhoTBCxl%2B2JshQqJVZMn217PtiUAc96r7TJ%2FEdGBwjvhtXb49PytbJKDWT18%2F3%2BnGM1bVH2IoL39JMUW6uD0uSford9DroXwiVGGIBPVvramUaR%2FiHpM8whgRw5BESWQaQMJGjW2GatkC3J9DW2QHGphZpS%2F0HpHO0cwwtXgJr87DETi9CbQhe7qgomOAXFSl4unq2aZM8%2Bd8wdfeuLpm4N8DlF4NmAWGfMOvk8IcffngWuyPNc%2FGWaMNZgm03CZcTbii1Tio8Hj7eFP1lQ1xRE%2BmFq2qYqgKNu7PW%2BVlG7exyappd6dGULRg22xIE4wn%2BkU4o6l8CekoSRRoM8dnXaG9fZ0cxxZ3jy4ryH8fWP%2FyeB%2FeYypFyRf%2Flk9ODlvbvUc5UOqZCkUCChl9q7n2Jh26TO%2BF6%2BzxrpU%2B2qEqAf703UOZfbRI8rr1l%2FrkH2XHfb4WZ8dcat6h6mWzHyL1uBexMuqyhk1hN4J%2BPBvfMKJ8QWIjj4kD%2FcK22xr7d2EzX3sb2z4TFfyv1I%2F%2BmsQnwXygQb4bkH2xDatrX5Mkl3pTpjyx46mmshaBP%2BIB%2FDnijXlZCglZ9GhkqKkMKh6IlQ3pbdaQNLhw8Yk6psyOXr90oSjBuXrt0bujYIULDJmGEJC9bq%2FhwLGjUiizZdcOZyP3lm0rr%2FGeHTwyd0fGhaH1%2B%2BPjt8aFs7REf3q3J65dgkQdbUOIlEhm%2FIJcKjpmLqufpZKFf1bVibmSk%2FBILhLO151hWmvkFh8QzrNs7pKhaPNo02M1IaA7MGkPDdicEqAWaX7JELqBqTfqhRIEqsaP0cxUHMFXJyh2VROEbFW9gqPBg38y19suGNwQyv7HpDTkyBF4Lwh65ZNbla6Ojo3JCKTcHKcnJF1JvCLZxDhdQHFpNlfOKj4eD42TVuJOQaMMK5DhcK%2BxlPt4UY3yRchbR%2Fpb5Y2SaXevRVFwwyZcW7lTUvySDqfHfqOX7MDO%2F13BsivBOkvFlNiXFoGswagaRmETu7svHoP3bDxvvzC%2FlkUE6uYFaSGyCxgoEaTFcagzbayVL6KIF1tLgn4cNZf5Z8teteR%2BZfyYpgCQY92VmDMa%2Fq5dtd23XIvNoubF0WUMnsZrAP5tCas90%2B0qPok%2B6QIH%2BnWt1Kk2%2Bz1rF9oe4p%2F1vS%2FcxfxDig4P%2Fmbaw7AfvGj3ta3IpN8cSfTWXrFgp66vLsXv7gX%2B8FTQ1LGl7zfcH0Eah1sg8aOHv9xV1pE8YXPjh%2BYvmlMKhTmR4ZWT45JED%2B%2FpDaLjKMELmjrNsreMLUWvmtm54o5uqk2lGufp15j%2BgK%2F5RJD4pWr%2B7%2F%2Fb4ZrFC4DFPO3n9EixWPgp096TPhOQq%2FBIcM5fUoJ6Thda1Yhb%2B61llDzS%2FOf%2BC3TnHstIXHBJJP74hRX1ig8FaupWkdOWmgV3bsVC2hAR0bbuSTJkoUaBL7JTTJ0Aob1So2vpGxQMhNMMi4Z56MoTMfxrFuqlPKE1C2fQaE3owRHnY4xyGswVd9yo9Hp6HfWTVKIkCSuOngwkL9XhTjJEeNmHLTdfaLeee0%2BzKWb7igvFgeoJqrgBZEknK2JZB1Lhn598LC0PhnQTjy6FB8FHzEkXMIBISSahBM3qBTGbClnExiahjSiqTStBiezARRyMCHY%2BVXGmIz2ks%2BKdPCpP5sTR%2F1vjJ%2FHOjFtaPk6rWAwCpYFgOG3VgHn0LLR3lslaF4B%2F90a81KvBfTAUiq9Ci%2F3OOkar4PmT7Y%2B431PlPbbCAH9R%2FY%2FkLJlDXd9q%2F8XqjzB85qf%2Fbp33f4ByLFoV70Yo8p2tXQMXOC%2FwjleZvVhr8sz2CJ5C7rtJao6D0r9iRlvrUlc9GbUWYbJBrl0fODh0bHNizs5DPEhoufnLeA%2Fd5y%2Blm1agGw2wM4zOpFnADAAXR64VrtxRyRVF9d593fJPXzzM%2Bch77Mqr%2FgNDGOv5VjYuy0LpWLF8D4E05S1b%2BrhbN1jbhc8oQEidq%2FUPS%2FBpkIvQvogmuIElWO9m1jaBshIRSOyUJEBOJ0uBOuBI7pxB4AJc%2FqqY13lFxipQj2uz4aiEZdWToE4rpuv5OPezBnfS1Vcp1r7LjIUmiy7FqtDgxTXGprXTb4z31AYgx0rvGZWp63n4j2108e5SSVeUFM26NB3ymomIkwEORCeaS635a9u%2BVEvuW0CoswfiyMgg%2BeVBeIphBeCc%2FRDVmKnTR3Ps8Cv9Nlh346S1WuJmgJTBPw1Jj2H4rqcfALd0NLg3%2BSRsquNKA%2BaIHVLXMv84Xkx2z6KKR9ZN2%2FoncqFmsKcAZygJhDHPQZa2KwT85VRr8awdxUC4uX%2Fyd06JQ6p5rZQYgm8XcbyrU%2BbeAX6R%2BQH2us0yg73aaPzmFazdfo6d9X%2BQci87P3tgiqxndKl%2FwP4NsODbEIuCfzyDbrqrfymoxiQ4fu44061NcN0evXTo%2FfNIgw339fb25jrZtITScjR%2Fms9EyPsIxhhnG971ifEP0ehywA1a0QK4oqndlvOObvH6e8fEx3q2Et7IZffxjnBTH%2Fx8Vu3WKO%2FxZKw46l6w6K9kZVv44W4uyVxlC0hO13iHxTaYkU2hcFOUR%2FfCnUAJBz1aj7OLMrjg%2FCeqm4E7QFpxTCJTTL2tUuXbfqDQqweNNLStS5EmgidbrbjqajTodojqbPOy5ky7kyVjx8ZAk0atqE6HVfZrKXzYxNSxRUq%2FBS8V8Le5W4wYccFQMr1eDtk11VJvQSlaVFoy%2F0D%2FAHunlScF%2FfBaCqeZauxmDXM86d4LJAW3O9Z7RbsdLBDMIz%2BSH6uVvgrToU%2Fh39OgEFW6%2BYJRRStpW0csX40Z5%2BaXBP2lDBZYGGpXsFbsBzG1USpOwwZ6VUv8Wx%2FqBwX%2FRRs2XBFVqDvtCxgmWIVUH%2FplbkVMVB%2F5HPx4%2BeeLkB1aFWql7irHvVtcHaLRSP9tF3bzJ%2FSGbtaInqUD4p7W1EyUIGu2CrxpM%2B4Z%2BePqK%2Fed2s%2FjMeoB%2F7q3cKEqBf86DcuCKk1a6WqxfMH1QScnasFXeHdjbb4rWxshy65bNG%2F2hqz4%2FG0nE4NmgZC%2F%2Bv%2B%2BAQ6DRa78RDvvkpr23x4FcUVTf1uIb3%2BT1Y3yefdOdHK9lqqThpD3%2BT18pagajF87Dn4e%2BJQGRaUPHKIpq6tna8oZEPpJPSLyB2UDrRxkX3aax02uVQCAsEEXZAadL5Sesm9pPQN8dm7%2FS2yhzVILxvaPSw%2FfkdOpBOg2ZUe65JGvkrOnHlQDbGR4cPNNwDmt0UfHxaAdr%2BljgeVbml6SkfVYsulIz9ytLXjAolEUt6jThmdKDtimS2rSSVQUGk3xpqrmilyfAQ2qCOQ60A%2Fvj3WmiVRhL3MTJ8XpBINagBAms%2FoB%2F8uPeygL3L4%2FCP%2Fp7yaD7DG2gEDdQUX7wz2wsBvzzrPm7AonoyvCCvFyCuORkJl4h0H2kAk7WDwiEkZcEVWqUaTDsCwMHWIZUG%2FgnLosF%2F0hh8RsPDuwbGDwl%2FpPfFshfL3yfzh5A%2FsYm0wfIdsLPCHSfjJM6sVI%2F3VbuvA7%2FS2QcDZR6fd0GVq1MTniBrnUla47fKxT4zPqAf90QKw3%2B%2BQx2hw4TEQKm%2BaI%2BSdWnzGElwPXYoYMDhg0iyNBcB5MUpV72hIbR85MMFYJrJabT2QHQqtBrJm%2F0xU9%2FPIp7ux%2FIFUX1TevHim9aDdb0qeOZp528fsmuny59uHMf2Fqd%2B%2BCUW%2Fh3EXsf%2BN6WB0vc6A79VJG5FHkjamBUz9ZWfki8gXQkd0Zf%2BEIGZ4C2O5wSCIQFgLL%2Fg0LZncWldvrvMk%2BRjEb67qzmcQqh7FGtr%2FePSms7M7dV07Z5BZltuUfWsUODZhFss%2FxGZo4C2zHncMXGQwdrtrKKTLC0XhOuedhomXv%2FPIMeUxtuV4zdEE5102EPVAKS2lRqW3HB%2BMv9qCufAA8pM6hSa8rMRwHaif03KKTL%2Bw6cHK8XRNJPO1k63i5nVmmKnctxfxwHe6IwJaF1cuLRWP9rwKWzsXjw3174Ua92urBnMo09GrXMP%2FPM5MU%2FcfjKMqkW2eoMvrDwTxoqyjQY9qV1c7WBf%2BZWDpEp8M%2F9mH6dqAoYFd0%2BQ3T%2BwPQ88hmZn0rB41cgP%2BZ%2Bgfgt3QeDv6j3r3Vkf9cKcJO%2FIP9whoWviJr2jV6x%2F8Zn1g%2F886bHgX88w6xKadTKaTMaLQbs9FFBrahPmcNKgOve%2Ft19vV1iXm%2BK1uvTtatWLH3OE7pqpWzFUMkwTPckI335645uyVVRQnTodZsxDNw%2FaIjruLdArrao%2FtILjA%2BodcaDRmP1sflYj895%2BMEZ05LP005ev2TXj6RHBR0pGhnSEc0X6MVA6QVzarMFaCvcSMVIXTMGjOS5EoMfyxgS8UiikPiA0Zg8L2MakaxEwsQn2%2F6SEJt3oWdbu35zMcoWiMRSO%2Bk1bq6WroAuH9mhphDKGJUJwj8q7oxaElObWeN%2FETIH5R5Z5v0z64dFHHuW3ygRwe%2BMOYcrMx7tYE39Kt2vIV%2FG5rafoE6OtHT%2Bs8sNemzB403FWFg4kG%2BjxHZ401RqW3HB%2BMv9CNojdz8BHop3bAKRcNEyinzKL6s8naldxPseqxdE0k%2Ba87meVW%2BUNQ2XykM9CNKErIYkAP883hTBIbkopn%2F3g0tnY6XBP%2BfLAPjGKvnrdzypgKl%2BVOE%2F5L64bTuNcd%2B0%2FUvVHXOqlHbYFySV6gP%2FjCLvqrJKfpF7L6U%2Bcd862zsLFv33QzmtEYr%2Fue4OzP2y%2BN%2BUrjcEH9b7UyD7Z5z%2BCYR%2FLPmHMyx2LqZA17qSV4zPrC%2F4nxG5Npo0pp9hJJxErRGbWsppWS3K86YnPXwS9amDA%2BagkpJ1LtNu2CCCDFOrVy5f%2FNSCx%2FyhK1N7MlRKy7XmWr9h0U2dTLHb2rWAjG%2F3CXF9RO6tRa4oqj%2B%2FiPFNm%2FmQQa0Ljcbqc0uWynr%2BmacXzn%2FsoZn3JZynnbx%2Bia4ftc52Zpk5oWBMkk1jICdjS1bDxH5fWbiYQBu4cXs7D3%2FWjNduoL4%2BzxWFH7%2FEkIhHkoZEcj0CorImw2NclmZjy4LYawUOpSR9y2WI%2FTHsy%2FyE9Bp%2BRe2H%2BQj1QModlVwYv6g0FHCuOWowtke5SJEsI%2BUerDzsN3qLe%2B853SvWYDtyDldDPDOKfCx0Y0sTgOtdbjsCcSXQw83TDb9LpmwBgSxgtyqxHZYRtZJVJQaTfGmqueLuJwL%2FsTo9aCauTlPkU%2FJmfaSPau2ieL2gAZJ%2BoN3uU1Hi78PLykQm6acpU6I48B9PcNB2WB4rob9YNBsrDf61zP9YJX92%2FPDtuleUGIpn7RaUVTzWrP3JWfWSkPTT1sJh3yoG%2FwVF8YHxkt6C3TgQIvwr6bAdOPrBcfFMgdsv2P49mPtNueI%2FpX5Y7zdtAYH%2F2zX87%2Bwwu9bxs5ev35JpX1Lt7v%2BcK8Y93BP8R69NpDnMWqe6KlGbWnZH2Jk%2BMjgoqBX1qT45qKRkva3FsEHWGWS4YskzC%2Bc9NFNtA57zqtouS4vpsKj9egi9ttlBsNdEr1WI64eHZKfdtuX1vzDxSVH9iTmzbHzTZj%2B24CmDWpd%2FdeXKVS%2B%2FIuslo7a65LmnjH7lfUnmfSevX7Lrx%2B0P%2FuYQiMT16pbjnxp9OM8tWfXwkIA%2FDMwvW%2FVqUMmuCwA2D3985eGfYpWdxxTx45cZUmfSkDS5XjibjmPPx40eprT%2BbbF1DLvXft26kgh%2Fkdhf0hBdal%2BvpAlUiZ2lvOqIircvRuGBzAlX7sFq22ZWhxKBiwHb6jSr%2FHi0jwXFmUi1CWnywayaKP1KtV1QwP9hnu7mEgQywHMltsMyolayqshgki9NNVfc%2FQR4iAr9JZ%2FmaWgmogADkU%2BTN%2F%2BfBLoJpoZJSBQWwnsk%2FaAE6VFRIijlm8kx6uS2AZzJTgT%2BdRqW3OXL%2FxGgVkyJbKwk%2BNcy%2F9GSP2vT3B3UlEhypW9sQVrBQlPsWPgn6Ycj4dUP%2FrNF7B9uNdh4XNJpofGW1s4duwaODsMtvUOoPyj456Dzj%2F%2Bm1A%2Fr%2FXD5HQv%2B53bs3HPgyPvnLl8XfWG8dV%2F9d6BLlAT%2FzBvLAP5Vc1ixnNkPidrUqrkIdKYNO92sPlufyshBJSXrTYat8tLKFUsF9mmTYt8ai7LL0mI66oHmOSAbJjK3Oui15t%2Fec%2FBXB3blM0LSehVc9Yf%2BDd7NqbMeXfjc0hUGtdam161r3LhJ1nqjtioQfJGS14%2Bd9528fsmuH%2BtHPykoEc2c04vMhWh5rVStTBDGlR6b0r9fnW4ysZKlVFwzJtMGTtvmg6kUydOf%2BPFLC4l4JHlInNloVO%2BpSzIbFfG%2ByZkZ2aLi680iVwDlAqJsx%2BlqQn7S6TR1lDRBtMReLVHxQFVlHvI82f4lVrD1wW9swdq8adPnyurk48B25cdD0NYnoahWDQe06UgHra%2F3f%2Bsk4V%2BWp7sj1xGhagVGDUpsh2VErWRVrmA6PYLxRb8X%2F6zcxxKAfydfVDKYmrm2mbiN2D%2F94u0UF8U5isX%2BBSH8%2F5ikH0%2FcRVCKV9NDQBVHFMFnAvBPDE7%2F5jK6fMXTqnlDeCFiwD%2Fw2e7w5VbdeFrMM7NRmV5CdpIi%2BlK0mvs13TQ06Qcj4VUN%2FnsL%2FCWVEgu%2BYONxB4y9cf%2FR7CvSHhseOixuv6D%2BoOBvtf1TTue%2FjYDfSIDaVgD%2FNBb8v4i4%2FtOGtNJIiV4xMsbKAP61LBk%2Fy2WapWxqUS1miovOdG9XDqgV9akWc1BJydpUfJc%2F%2F8xTC6KED392ZeTEXHN7GocZluAkqJNWKQ4HxzEo9O8%2FKEQuGDLgDjwx58EZ02seWbBo2aqXU4Jam82Bu3XbNvxCzZuEfKOMdePmfSevX9Lrx5mcHwbHv2DqJjpF9ZAnA1cqCWLgn2w7Mi0vZCf0eKn2WSz9oQdGOXMPwS2e%2FmUPqW69DimVPCRWbvKRZk1jmGSyPfEXm%2B0xaIuKQktEQPVE2ZzmprYO8xPGFCmxV0tU3PMUwTMqteN2RTKDv75OVuqV2wX1cwFa5wfEgO1Kj4cM6V0Q1yfVhkCb9gzO4%2FsdQ4C1RUA83VmpB%2BD%2FMFODI2Aw0BIZ09ATtuUIhs22xMH4LMaunf5qEmjC427zeZ4S%2FQkPmKFmNBMzeWL%2FZSs5%2FnmHZlYa%2Bx8Uwn8nST9%2BuIug1MM6jUcUwWciCwSmYcyIyujyFc834s9l6KXBPzsHfSFMKKX5g5%2BhLktidpId7WVqQaVv7te8grSi3QBVyioF%2F7w%2FyiOdMof80hho8f8RT3BLU7P02QzTYfjoAUf9qbdsf2fsa%2Bk%2BBPxb6fJbn8KfxoT%2FJ39tPtz8q9AYaeqYV4yz4mUA%2F3oMhqe4VoEhR6TI24hK1Hb%2F7GxvBchDfcrgVgDXFcuef2bhE3OidBX%2FXZaoWo8lawIXramIXrPwaqtD5pbv%2B%2FGBn5uR1UxgTWWCnf%2F4PCMYtzq9cbOg1laDxTuyFpS3Yuw2tXrF4oVza%2B503nfy%2BiW8ftTW2T328e8o9hkJyHDv0IH42b4%2BE1WzJNnOiY%2FSmhTXddV1GvxQKRIGsTz9yx5ScfkaXxOHxMoN%2BR%2FsXq4Jyjnk15jSwlq7iZ%2B79KHZbDraOzmqBKyE0KzSf4p2X8xPKE0AyqcqsVdLVBps6wq5HnqhLS7u879fadaKlSGiHhOtQyg7BmxXdjw8EXeJL1SKVBuli%2BkYanVyDwxcPHYcmn%2Fm6d6eQSFMt2scNN8e8G30mIaesC1jMCmPYDygHwz0kdNqTBbvBqs7WdEqvCmryFBzE%2BSW9%2B5y2P9Zoqq4ArfmDhH7HwX1eEMtST%2FeuCvB4DFXjCh5khI33YYV%2FUZL3%2FqveG9hllf1DSkN%2Ftk5UFK30uojEGM3wEfmH7cKe09k0lXv1%2BidkMNF0k%2BVgn9e3z5nG0jqg%2F3iaLx04eVE0V%2BYM0g6%2BqfOhNSf%2BqLiP%2Bg%2B7QHgTzcVufzW4U9jwf%2BBQSgItQfg6dkFj0wf64pRoqoM4B%2BNRn46T3GlArOGh4y2pkHVIsgfvtEMegfqUwa3Arg%2BteDxOQ%2FWxGSKfvOqGTWWjDBJsO%2BV%2FZHotUmOJhRi5Q6BqmXuwU%2F39xdyzpnWlNmXPr94%2BYuSr21rE9Saf%2Butt3b0%2FWBXX6G3S2RtQHFZ9pV590%2BJ7aqhgDd5%2FZJdP85L7HxHTuSGyPHfja69S0egtGtepH7pP7S2Z7ajL6FrxrSJddO%2B%2BDOVIlll5%2Blf9pBYvubXhCGxctN7G6Fs89fJWXT3sUs%2BJY1hgpMnjw3%2B%2Fa4dPRkRKWuwd7I1QNkAU%2B4qpcOUidIECOnHqsReHVGxmqaF8FnXYPGcuyLVwBeZafV%2F56ixtQ5sa7RO1mwM2K7oeDiqsbMgz3GEY5MNNHNQCGjaKsBz34GDRve6wzzdqHzVEfurtDvQaVJjGhElqwoLxp%2F0AS6nnKpxUBU1BX0YE2WBfz9d4%2BEHpKwiQ82C2X%2FmVBeXPUWmfQy1XXOHiP1PinETCP%2FPRtONqdNr3Jp2pzpt%2FHV0xTtmxdiRanJ7ojvhIfTvAXERtS6v8oaUBv9MH%2BX%2BRVj%2B4e7AnNFD5j%2BydSgCPPZrtnH4lpD0U53g3%2F3iFBPLkNwsQMjZbAZekjAztS5cb3xdthL5C1J%2FHARi8R8V%2Fu0W8KcCpc8Q70fhf28fiBN9vQF4emHJV1xRVF%2Bxf4xx6%2FZR%2B1EO6QrsZBVqjbRIgkOGxanGWgx2CmwVcRcBrg%2FNTKCP7zOvqsZqiTy%2B00VxemAKVBYxV%2BiUmZCC%2Ffc9O3fgDgjB%2FpWXVtXaPG57tqMdqyPbtWPnj97ZbQTtcXPTLy5%2Fdn4JoVs1Lz15%2FZJfP6qlvSMpt%2Bb7slwORAhSr%2B2q5QuF7%2FZsz8Jio45AOxUUjy0wJzMfOJJk0pvUC1ES12UPiaEkDonnrGydvGeSQ2z5BtLKkHLWKwdDCh75Px%2FYKzsNBpMwv5FFPgeUHRFI6SG9BvaaLqROVWKvjqhY7WGPOzTKz6jiOZr1xWfFww8ziRfzmxhLmIiaSLXEQ6AFDKw5Nms2KnVatwHkCztlPOktW%2FYyta0xqVpWbZ%2BW1hzTUEpW5QiGRDvfYDwQazzlhe%2BLHksNrXGXfeXRoumomtmPSdk%2FBZ1Bwf4Fp7r4b8m0jwFVUe4QNAydcZMQ%2Frkn01BgzuPz3XpMczXjcxnNdffIo6IWCMlyBw%2Bhf0%2BZf16Gd%2FljY8E%2FOgc%2FopUHWf4s%2BcvuQLaYn8x%2FtPBA0KI9xvmWgPRTxeC%2FRouJfUvrHAEiUFsCZqYfHEdqvPkvTcqNv%2FjNGaH%2BEAKx%2BN%2BACr8D%2FOk6gUBQ%2FS8J%2F9szeQP%2FDwwAPMEb7EUWRdUVOxLjPu6h848TguJi6jV2gyCa%2BU9m%2BBq%2Bm%2FSw%2BN%2BtpKOBrSLrngS4%2Bs%2Br5hRqDYblW2lNBTYBesK2PSx8rA1BB2avvQMirbNpvU3btncITQVr6zb5V7v2%2F8O%2B%2Fr48Osu1K0pa3Ol56cnrl%2Bj6cQOVfQek90ZBkWrKD%2B9mKgCHeOe2tbV3yKiEvFlAkAgacDzw9pRZxLWO%2FFMP2Imuv66yz%2FqSQwIeSR4SH7BCYNJio%2Bk2P1GAcppKbcYfsMslPQVRjs20Y59CyQKx1jWMaffVreg1TusBoiossVdHVHrABV9KDsuiWa8GC10rw70MsWbwmkBZNfGQYtGPxpbi2OBBhS9dkcuf7enlzFEmJ%2BBrKEVnkdo2kaoVwvRua2mtLSxI1SpLMCDafQHBeHBVrpPy8kTNnUzIctEa1xT1zXRUzVTU32c%2BNO%2FJ55ZK2d8UXAwBAdj%2FTaguKqZ9HKjS3CFg%2F4NBCyFK%2BL9%2F%2FqLnl9q15LmFc4n%2B41lMkWK9B4MqxgIhljXkJfTvL%2FPP4jzTyzjwD125EiX%2FL1bmv0ThQXuMR96SKgf%2F6CtaUuG3QHVCgYGEn6Azj7ma%2FYPvSWNM6DyvO3fTc%2BeE%2BpPP6OI%2Fbb4M8MEUcANqo9nS8N8kBwL%2FBwYPADyZLQtF0ZmRK%2FYrjs1%2FsQ6%2FfCH4Tul530aiVjLXVX7o3k22nhbAzMnA1hhD13LMq1KllmO1kr7wlJDiFKbB3GCYtGfWsAOz%2B52f7NzRZVCIkO7lr1DI3ti4bh3kapq3Ysv9hfGztfMetStAfYud962665e769ePFaS9BdeHw%2FFPLXwJiLQQ2Gls3GwSjJYt4jZQh7eRIQM3riXTRh3%2BqB1HquzVEBLP2QLs2V00InWSg1D%2B2tBPt7PDfDx2sm9BObalmfWKDjvFYaryUWOtTk2vgdYDQiLls3qi0oa6elg2S%2FzMZr3QIBXYJiQvBbZ51ujCYlXEo0%2BFPs7TkmMjd5B6Od3O58PO8MPTuw6l6KyjarW0ZknVCgg6gaV1QVlYkKpVlmBAtPMPxmNK9VoE8ZViX6qJX%2Fp%2Byi%2B3eoVIKBifxDmPL3hq8fJVL0NHXGQHfw7sj110lkI7saBqKrlDAfZnCyEC7mvmPbvipVfsenmVSQ7iB8mIF1msJzL1Js%2BrGeoEd0KT7xnPlybzf1PlgaXAv%2Boc7LYmICz5k0KgZf7dr%2BQj8x8pPCiCAg3bzqu3pGrBP7MznFEg%2FWNvcY3oLMtyVtpc7IwOHDkszHw5pLZsEz%2B8oQtnThwa6A%2BL%2F5bfL6V78wdS%2F63qf2n4n4YOKDQT%2F0ngf2cbiqKW66evGDJoAPRk4D%2Fe%2Bu4qe1LJ5n3ZmFatp3%2FjhVr951UBL4oNq8D6thVrBy2kwijsLHRa6lwHpsvg1127RHAnY2gq250tc8M6Wek1AnLRbB085uY96HQRM%2B9bXdePYd6968dueKZvLzr%2Fus6OYx%2BqImn4%2BeDnNDSYBEMmpOus5cZ2Au3A3581Y3X4l6iylyOkb7apkBweSR6Sftd3Or0h1DVlqzG5F8xN6adrDJqzVl5UZsnFJjrVSFNCQdk0RVJqLfgb0mto8IKQQPmsmqgY1lvqVIv66vJgAg1y3GCblOLqiEdzLMA9TGmOTaiUj3uBjp9T793Y%2BFodStE5K349psNW8Lyb%2BbmhaK29HMEgf%2FQIxrulilq%2B4nqU3ofpJ%2BQWrHEt1QACytIIfvqZ55etMGTKjVJLFDzisD%2F6pzWJwD%2FK%2FuQOHXzvOLB%2Fie149pPLa9dvsmtj2oCPBDL%2FPtqavDSaPK9mqBPcifJrfepzQsv8a9GjGPAfYNPdgQkIS%2F66WMffLHEzgwG4vUeB%2F3XO7YdjvxIiiUt8S6oW%2FBOayRlF0v9GqnUHBQZKm2Oo8cC7A8JYEMGSv%2B4whfhjhw7s6wfUccV%2FyFR3tFLcR%2FCPawV8Dvx3OqCYJDhy4Md95o1vFq4f30NesWMB72eWD%2Fh3zhl8p1hl5AmRYN6XSYRHgl%2BGeVULL0gxXm%2BNaZuRybnCLBBJZjtuV6oOHRiDX3NdvQWzvpvPuVsn5VtZkKg0pRLQDU5h3oMe13H%2BvlV1%2FRjm3b1%2BLIhBhKMurLPz2M%2FZ470F6Yj1F657rTYtp6OT%2FEinIua1DZHD3520uspeppBadEgO8ycPKdIdps6QbDXCugLasdqh1qAZCcpGzJKbDWeTYyY6jj3ZNVG1FtJrOFf7BkOqmqg02Oappn11FdhmgXFcYJtiItURj2ZI%2F0iqe3WaY%2BNKYbwbGGir%2B5opBn%2BtDseZGNzYlK2Ew5acpxhouXAjttbuHwzzR%2F9gxuNMxVr%2B9UhHvVRDUReKYftvqQZvQkJB1kuv4LfbJmX%2F%2Fe8eJPY3LP0k4L9mtpT9yR0SnZ9%2BfBQbsbrwv3hVY%2FM2u%2FAA3qnFmY%2B2ZulMQs1QJ7gTN8um9Rk%2F9sCkhXHHgH%2FbOXAy%2F1lV8s%2B3UzuZPK%2FY7l5885G0n9Y3zcZLtx%2FODlENl9Zz1Qv%2B2VHanbd1qAxQPwk%2FZAc6cUM71Ni%2F76dA%2B2aG0ewcZkhtJ6iqbtYX%2FH4oVYfiPoHLb6o0%2FN%2FiVEFdA25QNAvA9SMs4hWT5wdwgPAwOfjX%2BbBKS9mTSjCvyiTCg9rnkV%2BXnlc18XW3BVSWtYJZUQyyoAJng2NnfRPiM%2BlU2mCPFshSYrWyabOtzf5ZRjjSTdYI%2FYOjBxxJEuXGGH%2Ffqrp%2BCPPuXz8WxKz8NursUNBXg7UwG4CBRptIiG4STwHzA63kBxgIFjeuJ3EEUB3dfx7%2B6LHrKnuZQtqQ0iF1eoXEuTDoDFlGjLQS03VrGiGWyaLp6%2FgRBlLX19c3IBURj%2FG2bQiWt3ZsgZRCQK8ZlXQEGRtDqpaoGJaeiI21xQVoSw62ufNWSzx6pmVnoFqLO0hKGh2zpMFtU1vQ%2BQzlxv6NpPqBCUhd8b%2FPBq2xAgZa4sVZ%2FYNp8QjGa%2Bla%2Fmdqlq7URrzUUsQVQjWjLIL%2BIaBsUmNZ6zfht8uKtvI%2FCmAn9ldopxQ5ntD%2FSaPERu7Q4ZP4KfajOIKlC%2F%2FiYWhW1pbLk7nqah1KL8Ow%2BAmC%2BK5KvP2Z%2F9JjD2T9cGIzDvxrmX%2FQALUWJ8cFccPHKWCktyAc9na3NtU9eutxdojtBYLEagb%2FlFMCOoso%2FASc3OA4B1YXSYE97%2FzICJYU%2BnbJkBpkC5s564t%2FR3EfNLHRCvhc%2BN8GlMTRmw%2BODuzKtxMWaUBPiD7DA%2FzfN%2FeZlWTCUVuAaUWyeVW%2BmzolL%2F%2FS8ckXamfSsNl%2B6bKYlYOYb9j%2BjLDV0XJBe0Y6MGvS6wWp2WV23JSVssli44Nki50bE2%2Bhsychj0DF2xh%2F36q6fgizQq5fdudP5ZlHnV0gnhqspdmAtBzkTTKr1cgK2WmbehtpO9nBrjxvv52jtZyuU1X28oRUp0OCBdG4Q%2BIWtjMH9gx%2BOpCClNAFMdN2bL3FzVCR3YxURGYjW6w0MZs6UbUWhHSQ9BqkIzR4qZ6ouDHi6FQ97oivblQf0xtsV348%2BvF%2Bx1Xb24uG0TlvAQ5XkNrKgpovCl5pEEnsbVvnHm8aM9dDNBt3LV6c1T%2BYDSmPYLyWruUrFb2YpMu%2B%2Bxr9Q0DZkOJkmdJKG2qQ%2BwfBQCb2J9rRA78B2gzle%2B6b%2BZBAfyixWe7Q0fcG96O%2FwI%2BKBgdN1N27d3ZBCnVOQn8r9QR6GIYRRce4Jsd0VbRXQPnEfthuUKwfhB0D%2FpXM%2F2uWBqin8lAnIPgndmB3LyH4JwKobxKNjqzoUoda1irDcI%2FA1OoG%2FyQVBryfLEUA5Y9WjYPDeyDuYGMxrAYs8JrbYFgEomqP06nT4j5xs76ACIKdYGhv61mS7xMW6St23pJzcM6NH%2FzPWrBktTK%2Bc21PEoqYNAMOxsyr8t2MIeOVI78mXMWbEXGqcl9QIalPE5qhjwNEssEZsX3rv7bb4lFD%2FZr0OrvSaxps8mYRnNz7LKGHIWafk9vkJEamlC465Nqq8PohzLt4%2FXRBDOyXQNZ7rR6sbXN8uxbIfWB14%2F2yQzjtPT0KNyKtR5WepHGlq1eieOwZ0vZspr1USKnxh8RDAlkCPjGbBVJwJXQ3TmC8tLCTCYowC2FlraxYA%2Bp%2FmDJaG0XZLlE7NTLqNHVg%2F899qWqi0hM4KWWLG%2FHVLQPYrvh49OO94x2UwdOUnw0Bcze6OELe65D3zEn4mpOQKVuH7eU44K0dtmCXOUpOG8VZKyoY76Vr%2BX86E4uYgFBpNqzR%2F%2FGDeyChYFcmly8Y9vGhY0cGNGDXNXLNM3nB%2FBPBm9NqZj40FyPDtYI8wB0aFLp%2FHyYL%2BFF6zXK3Yc%2FBfZoXHG9v7Av%2Boxgu%2BcSv7qp4yA%2F5if1o1k8M%2BFcy%2F684GiDebZT82Q1gkqUmghIj8e86y0Xs1oJe5azicFYjWxiqvVDd4J%2Bkwh%2FmqfCj7Plha2rNTC1xBy1FshqgaAK8A8a%2Bcayx841pJe4Dy99YqR%2B4gIVM1jNFsEhfsY8xccEOd0Lwz8L%2FohdSm2nbpuadmJaSbwfUGj%2BvGvNSli2%2FJly1ntfwJGDGar9ku3pC0XCHKJotIgmM2CDNhEzOSdOwg5yxPWVUJuUsAXKBRNzvzxzFkRExYVTXD4l61V0%2FE%2BZdvX66IHYAld2gWowD3KHBtoDwmxa5D%2BhqUlgTKTniTWtvLVTbSRq37NrDzlGnRJXdM6Q2s1WUISTya%2FdBFmRtWmyF4aLcbkvoNtPqzbsx5PZszi4UShEQAFLGZXROqbFOcJX1dLYUrUAQBffrTc7VVldUNVFxfLJoiZipu1sabGc9wHYlx8PHWzYkefRoPMdRebsBCLsnKFv1vPVWjxVqUilbug5snChVC6r65LTxiKvIYPz3VqCma3fAlZiJapxz91Po%2F9qFoSMH9hiOgV19u42X2ZH3T6JYT8DO08YxSDWVVxKEBY8ZsaDH5i946pklKyz0d2X%2Fk4dNawFXaTU%2FKgoWUDpXvOASS8dRDvCvi2RJ7gR5P2WfrpuhxH6oMETWTwz41zL%2FyoXr67RdkrOZSVZi7KADEES53nlmmHK1ado3QdkDdXBmTsoZucrBPzVgf2ytZuiuz4kiHOc4upx1UUODyBVuIa0BQ2rrrFaPQf7y76BUTcAvf1rb2BQr9dOe68lQw0LBonk1%2BoqdD9yVacGdHPzP4lYjBWciDbY9FSUccDDJvCoTiPIuJm9ZFqlT1MngxBy%2BbG8VwQdCM%2BkDr22U29qDXjWyOqnSfutbUqJG91h1kDFNZgfJ2q0rPErX56%2BYmqPDZ9hDSlLq66vs%2BiHMu3r9dEFswL4NKRpzshbcguTCDs1TV1MycmM%2BwNlRXTNmtZ2kcZl2F2f7kmmIf0ibje9ZGULiALIUC74BtyOZuRYcjepNCgipqyvrhE%2Fw%2F1y%2FcqMzIIRcK25oGw3cnDiiK0acQUg3RkRTB1iC6Ug1RZVIHL8E2Ib0hgfYruR4yO92claOY5PFVyaquDPycKNsJcM8bU6oqThlqytF1cIwOzltbNdUbDD%2BvJ%2F3L8dMSapyHHN%2FrhuXz71%2F5N2BfXYNHDx0bGj4FIr1BOylKu4Q8cBYwAtLnzNiQc8tWbZi5erAWVTK%2FieOi1S5XCW4CeCjSoGFQ3Hjhjz12IEoB%2B1H02OT3Ylb5ZX70a1PvrjkVujB73jwX%2FgJaD9EDeZw3tLSGtouNVIHSc13JEficgivdYC3sa7BNO3rrSoFtOyYxag56SoH%2F2yu7O7irK%2BaKMKOgaPL9a2lzE9Wg0gXpuV0D0r3LZD2h7YnxX3ABEp9Lvyvs8SJbjdjQFhEMK6u2OX3naodvTgSg3%2FuNGwyEmmw7cm3hnCw0uZVSduy8alXAlQbiJS6AQBXPXTzn7b4CEZKj4Vp9Smp0gK%2F2u6x6iBDR05kWxrd%2BdNo5yWu2jGxN1kNKUWpr7rr191%2Bt68fC2Kgp8GABnz97bI%2F8TQPBmtBOaKu5jqgbnTfgCC1txaKx2T8UlNT6tClCEj%2BIaXqyhISx9ne3d%2BHlswaO3MtKRhK6LY6aogSwNmASOxXOhCAWSUQI7qD%2Fo7996QhfnLLlUedpg4dSKopqoRcGQpna7D9NXlrY3C6gjrVEw%2FFUfB4WzTsWLAAy0W5rS1qpWX8VFJt1MCKUrZUGmPdAdzm4w2q1o1wwJbtmgoNxp%2F3g8P8U9etLw3MCLFdUGrdun75%2FPDJE3adHD7729NiLSrvFQG7VrTn3ABGGUDZTL28ymgFrXr5ldQ62aitI%2BOBoyfgt4Kr9CJ9hEuBhcMUGozH2gque4N%2FphLJSTv6TtzQcj8%2BNewkYw9sV%2BSUHE8s%2BIeTPOnBpmIW%2BCQ2gqbrLfPPDgOwnwO8mC3HWeUU6VrYNVEpU5WDf2re%2FGQHZ33VRJGTEIZmpwAZRWuArHAz%2BvrCeBDILzX8jh5h8BDhx0r9yMWGFWg7Zgw0LCIaD69Y4GcjLtz3jw%2F8P8DCv9smbn1yOkQatx%2Fh3YTTlTavSouqRoZJeRo179ux9XXcS8cg7rCsbD2OAbxo72ZO%2Bsf5XC7oIDc0yIYpsx0YFwNBzv7SKBlFijrRkYlqu34I8y5fPz2YfoDDo2j9E2pjsDbTk1OUI0SCzMQiSOWtheKxYvxSUzMdofxWfEgsaw1ageAN0FyC3Llo5jvsjAEmMJHw%2FwCPwMkK5jQbcFuBxcHDKULZSEfAPj68p%2BA0dQA4Kjaq5GC7py0CtimcrcH2K%2BtKg202%2BhXUqZp4uGmlhZX330lrc0y94ty2O4cSV9oaeDTUNwikZMpW5xI1zsDw8QZVK5jTIKetQoPx5%2F24w%2FxT6dbHGPMDY4ftCL1u3bh2%2BZJdly%2BfM2qAu3Zg9EoBdqIZlvSQ1kAOVKqWFrKgVGmh%2FxGoiluH0toXllBXvBRLYJDjqgmFbsgX8ZX6TD7xq%2B%2BElh%2FyY68nG3ug1k8TfmIM%2BOfA8A93OqCQtc3ljlw%2Bl4FcLWm6PjL%2FzFJ2SfnEDlfZ2XKcVd3Bu4ZHKuKNVt3gn5UFO1HUWDxRpCSE0wLOMVNUTGvYChUPVDep1mnSpe92hVI%2FEP4J8T4wgYb%2FaCgINcgWJZocLLr0GQZw%2BayEV0y2KgD1VyHJmwj8069PFf6hJ6yRRpTyH2Wu15MZ7juv6k9Z12GKqSiZ6xKm2SdoTGtnv3BbwVwP1VaNDxP6ODJ6iImOoIMMWldHh53K4E%2BSUf4%2FXx76RaSoMxGunwkzdZevnz7Q%2FpHDox1F8t6BsXabejcd3yiHLBx0kQyBNt9sx%2FjVmpoR88qKD4llrX%2BCQHBri9QS6s1ak3bEXlFqAurBvpNeU98AxUAbEKV10NAJUDYOGEnUgLJHRh21XpqDb1JTp3KjSg62JeUuaYurwHZtabBdxxE%2FBbarIh79eIOVF9LauiO5ret0g%2FdKSAlLG%2Bt1KYkah4TU4%2F2p49moaZ8KC8Z%2FkbOEw1y69THG%2FADZLzY2M66x182rI1L27xN7RBTrCdiJZvTcwOgI0H%2BohCTFmXzBQn%2F4icpVEvbQgkemx%2FCRpFQeW5kibvXX1SeO1lhRT%2FzOSHYn3HXRb5PPih97YLaB5AnV3Bjwz3GgHfmuwEsST71MtrRus5tgFkwdT5l%2F8pOETIL3AnDWNe0xmUYBukiGUcXgn5WFsSeKlISwgHM3UwTeKkkNUPFwKoew9IXKD6V%2BlPCP0%2F2MwH%2FrAuYwBGARMkZM4FIjILxijqJDM77E4H%2F63K8sr91QXPgfhZOgQhpRyn%2FoVNWgqCzM8r%2FkeVUijGxoUcVos45jQ39aFHvg%2BQgaMYjXwlxXaqtCTGkwEMT2j5uDYiTuWs6sjNWcKP6tR0sXdUj5r8brZ8K869dPH2gHkfHWRTJznO9b8G52m3eTryZCcl07jv3hewkgUWKzAy%2FA8dE5mjKGlG33DolnLeanTxwV1zSYK2yS1YwSuikV2QTFbkNbmnF3WoqldcyEEh2awMgBD6AO2z5R9iio9armUHlReYB%2F8GdK2uK6b5XTNQK21SdEwHaVxKMdnXDrfgo2FdivOrcVzxupC2ageEFICQTuMl%2BXqCm4zcebjszU%2BarAYPwXOUtHzl09e4jAryTKfUSOZduROPPJzTGh%2F7WR4eNS9ofHii7WA83ouYEQ%2FfflQyWkfKGvf18A%2FXPIsl9dJewhps4lWAKC%2B%2BA5MjN2kIxZpzfFXmNFLqWemuBO8LoQxyYoYntwlWiPxeQpDvxjHGhHR2vWeUlmnU%2Bi6GfXOazor8PDyeS%2F73Oqudide0zbnqi0nQJ0oCYww6h28M8q3l76iGQp7k8JYfL2MVMEzG94DT2CZjhfZDjPmwTjABOBDOEk67TSJ%2FIDDf%2FxTU78rlj8BfMh7n3RV%2BwaO90m869JCv6nzf3KshfDXg51stv1ELGm%2FCvmPzks%2BMIs%2F0udV2V8pKyH8jTaAFvGVjtC%2BnDAVg%2BkagJ2Vjc4XSCM1telMNHxWl3QQcZZYvrL8INgvV7u0i1V1ClF%2Ba%2B664cw7%2Fb10wfaEcl4adSpMnNQfFtsFy4vgh85q%2FqNnP3NwFeXQDsEkDfoov92CU3NcoWUBQ%2FBNyQ68KA6889SE%2BztkkttrQWw7wQDjnYbam9FXwZpScZK66yVLQphUxIRoIpymuQPCP4i27ACo%2FIB%2F6iTl7TFdd8qaEGDbbrwoggfA7YrOZ7ordvzDywH6tx2QwqEv%2FZMd45VQpfYOq9KGXwTrKLhNh9vYZnitmHAtiKD8V%2FkLAnzSlE%2B1FIN%2BRWvGg6h6Fid%2Fvj6rTGq%2FmcM9O%2BXsr%2FBI7Uo1peaG7hwraj2b75pZ8Gunbv79w4M%2FuqYg%2F7AKKtXLF4YoftHWAK%2FDGqRMcwoQKqIWfGl8fJFiGZYRE%2BKQvWdUNo7hFflMM9kUZ7Jhk6e4sF%2F7vuZv%2BkIhl0wubEmLfrZ6zdTN4M6PMrEO7km6V6MhqCYh%2By5dRv5KNRVUzlXlYN%2FPVHEwkIo7h9UOTt7hLe%2Fyc4UobQglweHWYuFO3VQOxGMA7q%2F5E9dvTarbkgppc%2B1gP%2Fuj5RJge1NilVijGm5VBEkEHXFOOMGzt%2B8%2B6ckAv9TZi9c9iJ7Odz9QGCAfKiu3gGgWso%2Fmf%2FksOALs%2Fwve15Vx9dNi6rGCJWl99vc%2FrNgq4tfFaVqAF%2Fpx9RClnbYQUb6t3mzybajZ%2FL1yC8djW9dtV0%2FMP%2Fv7vWLUk4l4zVwmICZmTnNha0ML95MDNvavkQmx7E%2FAm0CSDJs2ktQfssUUgY8BO%2BQWByF%2FM1vTg0OGFHAfA6rq7dHNhmcE9BmxU2ShcJOe6vt1djmpPMnpyRibZrbPvcIW3CgzkDFReUF%2FkFvKymR4761cBvYlnJR0QR%2FDNiu7Hii1fafWaUY1QjPWOfcutQGmligF962jcRXyWw5rB2hapFlGsxpVHIw%2FnoKDp4JaoqFzvfPX7zKPuD7B0%2Bd%2B%2FSmQv7Xr5iq%2F6GB%2Fr68gBFD%2BVn%2BrC7W67mB42cuB%2BnD6MfmGw%2Fss%2BvA4KFjx4x2EKA%2FIIhpICyaP3ta6eTLsQQUCzmeRa6EbpKOo%2BrPU%2FT55HV7fSd4VS%2BH8Ko8ZTUNPK9i6Fs9AfGV%2F7%2Ftam3LhTlvixyt6zfJU03FbEloPIYqQuVq2Uilxo1TG0KW6L1iuwUPDdVJsq0mAPhnTrgfCjpU3iiyM2qSkwdjEIF2xybLa9gMWoORMJRDHjrnbDWaa9bTlRNwFJiDhbL%2FGH7EHymTIlIqgFlqTEtuJ8c%2FwytGdTu5%2FbIFzJ6WAPxPm40dBlCDI3OBTvYy0maVEKTDqfxCDot8Ybhf8rwq4wsCC%2BF%2BSGVxX%2FpghQiBQQcFG5RUTaqRfkyZ9oClzQ5yt5OT%2BIst7ZTk5pkcKddPjOuHMO%2Fq9YtyTn95ECkqy%2BVNjY5%2FRHNhyPDaN1NUufDeCffXlYwJtAkgFcMmfWeUX%2F%2BQnOBPvWdI%2BnxGvc%2BIghx5d3%2F%2FD%2FKCgTq%2BnTPQ%2BesgzIChZVsRdCiBcrFsXW3OnLyesiigUnPb5x7hqIa4TxUYlTf4zyUB22iS1Skz3hiwXeHxRKvtB21mlQpr5takAoxWa2IhCy887W4w5BYMa%2BeCqgGpWmSZ0pG58oLxX0xcnG3vJ7aNX6qRp%2Bty7dDfPz1ydfSmG%2Ff97MrI2aFjpoD%2Fdh5sDEHsKPuVmhvoHzj8%2FrmLVz67cQstA%2FPdgVjQe0cGxTWgN4D%2Bq5Y%2Fu2DuzCmxOfwvlf5IkllXT7K4Fs5JXrfXd4KleAWvyjHvS0YORVcjDmmxnH8jwfk3Gaobd8rRCm6knRdDngcqk8dQBaUZMBpi568a4M9pxem43UYsiqsc%2FOuJIuuvH3HqROWeUj%2BmqGkG114TXoMMsCEXaIZvpWMZCtHHKg1YPo%2Be9SUjoAj%2BN8jOxE2fpWAWguGmra4YxtxgAdxYy5ZdPPgH33%2FhYvQWCTVgIL7T6WQ%2FOn1MIUhOqJKyrqlAyPK%2F5HlVxhdQ6vklhaBVfEbPLOSr2HLRGsXHMk0dN2voWNpY%2BJNzZpWMroOYnbSVCFF%2FYlw%2FhHl3r1%2B0zv4equEkyzgR3rYMfgRacJDhxZspowfU2nWwMUugXbyjjZJhE1899g8pdP9Y4xmS7sw7RPPRxfPDvzLXUzCQbQ3bUVkQBWwrgg4laeswAu0mFNgxihDQkbYxIrVHkFpf6VGVH2xns4pqHwO2Kz%2BeaLX9gGswsxEuz6xpU1uJurRktnbJqQiwEJx5grEhFeiK7mxroXRFliluW0UG47%2B0bS%2Fa%2BKVF8snIBfq3zrvHh8%2BOXPqDEfi5eP7M0DFTuzdVf9tUlLL%2FgkdqSs8NZPJvm4neE0Nnzl%2B8hHXxow8%2FPDN04sjgQdOEg19wAP0XPznvgftKpyNk7x2hDVCSWVfP8VoeUwRxiZU6eSdoalp2j19eA7B5Oe4bdUiLV%2FsxCZdM9jqbuu3CkIQlCkbYUFuBeYEHiymUZhDrCDt%2FhSXnuTyI4bGkKLrVDv71RJHdAookhKlpUkRrQFkBqgLsAEhfP8NZvjrpV7ejtAc%2BT48t99cFs77t7l81FcukrNtcLPHmxrRQE3X3U10xnnvQ0MOwzuyaOwL%2FU2Y%2B%2BpVlq17FVJG7p%2FwkrZOthSCLRz9JDuGXuzKvyvhof6HF6nV8%2F8OmtYCscH2UgcLUBmZkMrWxlvbN6B9jgY3cYoc14E7LH8JfW9tqT5DrhzDv9vWLyk1IjY5QO2tFeHHGd%2BcU42j9JvCNiLNTqQ1IWqJAG7RxMmzip339Q2ID0DMkPZP3YsBlOHfFwAxhMWzaiAEmfDwtyulRkl4Dt0J4EzqbZlyj7aAj1QE%2FhBFdK9ojSK2v0KiSg%2B3GxsRgmzq9qViwXcnxxA9s2AYzAXeTndKQXh56NOaO1ZsVCjVlgm63G9YOYIutNZHSRpbpA5UajP%2BiJQg2uk8U%2BCuJGi36l4JrX%2F9%2BY%2Bd14v0TZpli%2FT7D2peqv2wwq6XsT8pPZG6gVl4Z0fI0HJ8jJ9w6dmjQfMie3abm3wWBQUJ%2FjR30mjk%2FyLyOq8J%2FsllXNrXHRRafoVy%2Bkit18k6okV%2FvCbtkNme3SiR%2FcQ6%2F%2FTs6KAkNEBroZ8tf0A%2FeZ345lGbAKHlOTmwsqeTlTQsK2y370RTnqHbwr9uKKCJZRmCRsS%2Blflqg3QdCIVQFyP03cj1Z1PkcqGe%2Feu1f%2Fqe%2F7uh9K2fxB7SAUIqwhOBimZT%2F%2BA1wwZXp06Xi7FZfMaJ%2Fk6hBpguv8NRY8F8ze%2F4is7c0OZ0zjf3T1MlWH0M3KnwhZV1R6u%2FGvCrjgy49vjQivtsp%2F3aeVhQPkCvVO18YFK%2BRkbl7ICAE0ENuLJfkwYJr7YQreHbkxePX5r7GqzwBrh%2F%2B8q5fv%2BgY28mjxVDbqY2696o7ZBw5sVEASJt5S8wUiyHQJm08AenHM6QcZ328Q4rW%2BzoLslVfHB6kMgpJRVDMRCuC0xiuaoH52g2yPTGgFD6rHxGRGaH3iKqMKgq20ZjDMIr9O7SkSoPtrByvMLzGe5Hd1vx%2Fs2fb0xYB2%2Bjh3a148u3x8cQPbPwjLnFTygFuTGnghLPTGbZKqIWaWnBeYvKdM%2B2sH9KYgSzTSg3Gf7FIAG9Z0j5YOi%2BJ%2FlP4rfJ9ZjZ330%2F3mWWK9YW8E1RLG%2Bi%2FSJf99dyAQf%2B20tJrpnv37HNrb%2F9u8yG9XbhUaJXEQn%2FEb2gC4Jaown%2FCWVc2tVGo91bOSd5KoDlLDi6%2FMXKh%2Fitqc3Zd0b5iwT%2FJTiLB%2BddA%2F2CPwwsRCjMNgHH0g%2FfQ4QmT66GjB%2FbgGbHLCML2Y%2FgEP4D9aMpyTwDwH50oUsa%2B3a5WD1oDtDugKkBZge2o%2BVvsU0dbL2tQI8z%2Fb3e4cceNwATBZIDlApFP1Cb%2BAg3kquNJZ3YbAf9E%2F7t2YJjpVXmNn5gza9rngf%2BpNbPnPbl4xWo5c6lzdvOTEPvr3Y8fQ5MJek0o9UpG%2ByXPqzI%2B6tLzi6b8WxLV%2BVNWbxz3Rdjqjivq3GB6bPYmDkRpwSBc%2BJtAsAbHh3PX4JiuOpMnzPUzX%2B729YuOse05%2FEEItXGgc4YeiLGnxzGOBGRvl%2FcS%2FtlpZ%2FYJ5r8G2hz3i2fY%2BIeUA0gpR0io9zlcc3jot6cOaGWUOswtZe1GxWkMO6IBQIE0DjfVaSdihzgeoGwwI%2FQeUY1RabCdcS%2BmyddQW4u2pDTYBgf3LTtTm7XdvO2mgmp%2BF%2FpjpLS0Jvvj8fGsKUM85ktsPPEDG4flvHeSf9kspjSkt23dhqyXhxZqchqtgeZtHdM%2Fwm1rzECWaeUG479m0Vv23CcY%2BIypnQP9L3mhFuPuGQO%2FCj8omNXbFUiFpV42jf4Fc2eVfN6nPGDQ%2F2qzvwCsdPUWgoWBGzdVs7Gx9qWVMdCfMp9vRgr%2FSWdddVPbXzM%2F%2BRAB6d2kyGvpmjJS%2FkmY4cB3HPhnvIEEJ7wtmumFKFxScMtpdejxy2hphvePoDtklxGEPXR8mLJT7EczA6x68K8niijd0Y1ciwYib26yTH1Na8hgRg0Ch9D6JMk4MKiBE6pLB4gJZASxXSt95qT9L6wQEMSZNzNWDf6J%2FsXkW6piaOA9v2jBYw8%2FOGPa2OB%2F2qw5Tzy5ePmqV6ES5XTObl3%2F%2BDSxP%2F1C1CNMPimGyfCFHBZSwhGtxwSNJ3gl35VcdVL%2BcTUxT%2FvxaeZKlq2%2BHTJnnL8Qlgbq1BjqCJbhI6wHDQGWo%2B74cO4a%2BFgNXievn%2Ff1K21%2FA%2FvbYfe8ulY%2BJbQ2UYUXC0gA2UidIxwh83itUQFtNe4Xy7DxD8kWCcoREup9YDS8vefg8V%2B7MVji7BR6xh1oRXAaw9VLpSmJe4h2jg2oDcfKhWtE2WhEqD2i%2BqLiccAJd9g6Iin7plg70uQaLSn9YDoO7lt8jUVmr118Xr71n1s2IJFXplp3kscXi%2FWXJZ41sfHED2xA0ApmP2jUyM3As20LYVBwssLXct9Y44JFM4e15bahfshpNVDayDKt8GD8XX5RcD5%2FZ8Xz6Y8seHb5i8IdxO4hpQNuZobws%2FS5hY%2FOAn4sjf4XLVtVS7CCRb0xTNXUvmzgwjML46A%2FZT4LkcJ%2FIn9fMtLZ1PZzy03%2BiYS4FMdhsZxGSmWl%2FF9Xjq13Av5nFEtwwmDHeSGaVZe2Mla5%2FC78Nh46PDq5Pnn80MGBfXbt%2F4efHz55ZuQqfgPVj2YGWOXgn48FzvFfFEl3dDuOg6gq9WSc%2Flz6NlpDC2bUYG2EASOSjJ1BDbanJpkwyhMT2AxBK322t0lfe30LWBccbS8F%2Fon%2Bz506uMeM%2F9vRnZfMvvD0wvmSAETB%2F8OPLVj0%2FPJVtaBfmKNYtA7wAYP7NfaPPsKkon79VftlfYujiiBavuge2lkeG6tWugClnoHh7AxUx25%2BwlwpYKsb%2BMr5i4DT1WqHOriat6CC6zrIoB5AC9YxOa9r8Dp5%2FXyvX2kCicE2%2Bf6DQ7%2FBcR0M8fFFSlOF164WpCGperdNOslIrVymx%2F1iT3%2F%2FkFAkSJUjJNT7aqFmWDCt2mNOANONIVNxrD0j0Oitt%2FIgjqIIyPmj7VZB0AbU59RQiLLRiOAeUZVR8TgQvQpMucAp1llPr69HS4qkS%2F1gkoMbNPAgB21C%2Fy%2BmRwEqExJ5l9GSwXdn4F%2FoAHcnnviBDeNlAcKfbYRD3deeW8SWsGlwiS3UsK10NVK2OtYnR1A%2FpCmbNWYAV6u6gkkOrFhwvvT%2BnVXPpz4wzxT%2FV6fc7gHSIDazl1etWGIqfLNLgl0O9i00Zb5aB1awqDeWrn3F1PyXPGeIAg%2FWxO9xTubzoC78x0M7Al9%2FsR8yYDx6CbwTVPtkUJyRLSPln4V%2FXsB48E8Jzp%2FJNvfXcNXhLG6zJZC3IrVX9sFJsyudXP98f%2F%2FuvoJdhnQmM%2Bcfj7qLdZn9aBrBVjv452OBc7xIuqPDSoShSAdqjiXKrVkT0how95uuqxc9PztgZEv68Pd0Zf9m6xTQtZOyuikt9SOODebNlL62ybGF%2FBM4%2FJag%2FXx09YaDCbeujwwdHugv4IM3SUfwq8uXSALwxO3g%2F8mnn1v6wku18pMxMnd4aGT01vXLAuf6NPaPcu105br9G5v%2FH6kqkSPCDLc8rhnx9hSuaZ4hY%2Fb1UF2zyC%2BZuRKkakgocPMXG50fa96qRIerFS1kx0AGd7wT9g9Ow%2BGmFtidvH6%2B16902UZeD5lUCWZdjH8eB44t40i%2Fmem6NWmwJN0IDjIPrVymx%2F3iTn%2F%2FkNY1lCck4mzojOb7jM6fU0ZxCnHYkxxltC3Q1EQqUkflMRgZvgYqDnTGNcrWzIjqjIpTsh3WUyVrTjLw1oRPsca1pEjDGxNsF7pQnrcCHGkJHZRQDDHTb%2FN6QvD%2FffPuVUI8UeCHcuDxoEBUj0FSp66zNsCWW%2B1QC%2B4bn26kbG7MPpDU533DM0BjhkoNxn%2FpgvP7l1j9jfMRrnlkwaIlL7z0Skp2D8gFSLF%2BxdLnnjKEnzvAdtOE4Lv8q6terk2vC1fqlVcEISw1Nf%2F5j5kRwQQ5l0nbg8jvqKREaOcv9kMGTOkpgpqkuqtXOYTLalvZKP8s%2FPMCxoN%2FrRRlStLmnKUXoiw7FfU3rZ3YGUDJeU%2FZBydaUx76X92NNnJS7MKaw7zPwH%2BXKY8K1NT96OoH%2F%2FocPyQlPJqZYqSoDvQ5Oz1k6XJOVMD2XyDj0WxFDknmBzJCvSEwpyzsoaGehv9QtRYlwDoY2LcJHYSKVGMM%2FO41LKzzl64B%2FyMdO34QH2xbE%2Bla%2B3o%2Fq8H%2F%2FyYbgWMl5TAyd%2FnGzU%2FPvX94AEbhxP4lm%2BQhZ71TjFp7XFUJgJFnk4dftsfNzQZN85Ax20p1TeBadzWZKwF1uPwsuGVrQj9WoWmHC5wEMpClm%2BOcZtwuogV2J6%2Bf5%2FUrtYwA9ur1VqPqnJt1AbXOSWiBceT0PvhmwmEL2yQIR68h8%2BCwn8e4X6WFRJy9%2FEWrM5o3IMmWNFnH2IrGJSSHZDXToUSyNooiodSBgE5LxQf3nChbMSOqMCq%2BkX8rNThz68z7Z5q7JnMVUfigJZVWNLwI2N4Bgo0VhEPo0HeL%2BG0mov38oKsS4imt1PoeOltOnDZQ19ksj3YaQ9oOn6ZZArBS9NIHg%2BbkbXCb3vSAEBUYTPlL%2F3GP7NRZc02nftmKlateNoB95cqVpqpnkP9jD80E4Sd%2Bmfm%2BhU8%2Ft2T5V1eGa8WypSgNPj4H5OAkbKtjUvNl3Tq2pES22Xi1efSaUUI%2FiI62iXVXb5ZT6Z9FezKfbsHijRcwFvxrpahBK8Fp4H9PMItrFGYkHTCprPEtwKlhKDm0D064OCPe8b18hvNXcBPI9zmO3I0RKfwpTciJAP71Of5PsrPQzDTbDq0QMvMxKC9nFFczrhIwD5IDyvi4egNmskF5fe%2FImPAf3wMlQOd5aSqu9KLAJVFSn98z89fvHjkp%2BP8mHqtrF4bwwV0ZgI2gsbeqGPx%2FzVQAHCtJBMBkZO7PV0dOm9Hut2EUrrB%2FtElOGSIyUjPy39YTlpR1j3lzv5tLwYswvk773zkVn8uVnJgtnZdts2YT%2FVg1TRsdZAzXA7oCsTiPSLeJFAuyTp%2B8fn7Xr%2FR%2B%2BihkJyDQ%2FTvwjzBCgBTECXs4vQ%2FNN6L7Rh0UNMJhP49xvwoNacr980TGV366zCHfNojQjsalmcZocJqa9XWoliJUiiKB5IiAPrlJZiFRNpkR1RkVn%2FhdDjG3o7kLTxv4LHbLOLL5a03D02AbZzgE4TCCJxJFTVIo6lB%2Bm2rA9q7EI62jmHgSKLXitsHaD2J2hlKvrbwBu20JLJe3ChkN7unuR5tZwW2YsvHEqZJg%2FEv%2Fpz5G%2FffOjMTvmzXn8QVPGfwugN2shfMN8p%2BW5Oc%2B%2BPBj8xc%2BXbSeWjAfpODpU5O2W05ApXQD69bx7xjYZglV%2BZM7ByTKJ4imWfovNlKa%2BoWbZ5JghNGSvQVV%2BI8B%2F1pO%2BrCV4Gxt7dq1G8sYpvyNqS4bLId5X%2FwApGecJ06yQnVYyEk55TX4CLvT6ZptR%2BeorDZhwD%2FPcRB%2FTG8jH2hvY9hsK1jNG514B6Q7WhWrgdKrqOLrfjWqE1bs4sK596Pw3wEBJFrOwD7N5NTBIjybAfFNlFd37xkQ%2FD9yGfX%2FG5flg8U93zGum0Ew%2BHoR%2BA%2F2wkyXeVwOHBm68OnVkWGIusJjMwXsX7pJbhmp2YCRmulok%2BzIMVKZ4SadN%2FdfjA8QNYzPoFEbX1bF53KlU%2Fb33lbEON5OnWhBHrfRtK1RU4Mb1QCRqy6Negj2EL2DTF4%2F%2F%2BtXWnA67SyjfifYz7jc2%2BGawFys2075ar4Rsmu8wdDORiFDAW2Pcb%2BKC6lGDPwMVxjzS8f0IMJ2%2FFjL%2B3UeJc10KClSIEJxFAFRUyCCsqs1Kh4HQMzWZ0B4tDBgaIPGQ8oNcY%2FcVLWX6Zxj3C00kbViOABqlyyktOYD6beJRJ7SmnclHuhHlIgnsVKrVbSyfL8UdGg6lIot1lbktT3Qs7JOl%2B7pPm7azP8a7dewBFp1wYxbSXH491L6l6benVgKTJ0%2B8yGD3wWwm4VifcI1bcaDDxeth2bW1ExL0LMj6efoURig0gUt%2Fh1ztpVcusDjM%2FHrwSQK0fTxCzdUWFHvBX%2FzTOY%2FYPyL0NkWFv7jwb%2BWkz5xFPXd3HccG%2F%2F7ne1Wgv8IUlmpy1sltWTYgcZyeLXMMS50wwZTecB2DIdsgNfjF%2F50%2Foi0o6msNlHAP89xQd2msABiAwxEnDQ5yvmQ8mmxx7da0P1EhU%2BIDQ2qXy1lf1uzEp7N9csR%2BA%2Fo5EhWogBqHZvbg9z0etirtU%2FUhmZA%2BF7B%2F4PHUP8fvXlLPljc80WhFQmAzSYI%2Fu1eiLTBQP%2F3z126dF6gfz8quDAKJ%2FYvyUi1ULCxTip48ojUrQcjlZ1lUNbLJJsbz5h1M2%2FwfGyRWS%2BpLSO%2B%2BuIM%2FOa1y5cu2Y5HPnRetuqr7hai7KZo2uBpc5jbWdui3oukW%2FUOJ6%2Bf7%2FX7XOd71v4ujJgUpL%2FgqnoN6PCj4WCEd7ny1pOPw6NwzQSF0QHtqwK0Pcb9Kigkcn3nG66wm196j4MItCi3ih8OHmFPoB5qvXBrBCChOIqAoAMMOpNG2VUbFauS7zinWAytt7fCgKHbqchAvvXMNUIDl5WSx%2BvkSnE2dDiJoizSGfptakLy3YgHzesS8SStCILY9sFR8v3sGdee6cpTxVYW1HaQywXdGvt0Q50p0q%2BhKVuVBONf%2Bken85zBUApGx61pNQDsX%2BYiJCLp5wSQJVKW5JDLv8TOiV8kFB4zxPRlh8w5GxL%2B9bZorqLCdYz%2FN3jExYJ%2FJiuO63ZwD3weyMb%2F9nedBD9SWdTl8QPGY1IdnGIgucOoswXbsXGUaBB2Zr7fMOUk0RJQzDrxBAL%2FU0D8sYWFY9gUnNBnyGpuWANaA0g%2BluVDAa0W4fbSUZz9akixFtWsbo0F%2F%2FENsEKFa1tKduydUunhjg1Y5HY%2F14EQ%2FN%2B%2FF%2FX%2Fs6YBcP1Plw2cPyQKrdbGA3EJ7Q73rM3q%2FQphyED%2Fj0fOIlXos%2FgtDaPw6XGMVIsFxXBzPURU1pupVSGHsLPMl7FcFlXx8clO3mDiMxQUYW11SHypzWEGPvrx8MkTJ4cvyKwDMh8nnWtvmm3eWPEmMBCsVyRbyKhFcnCMHpF6aqj6r19Dua8fMuKS1y%2B%2BQAGLiksfDx%2FH8LGbJgDYJuXIEo6o9QmcjcLfAZDGWWQ%2FJkDbY9yv8kKaMnPugqCMMfjPwMhKVMesECFmsnLLEJAVHWvPCUBicXTU6gB3RFB2tUZFPvLfO6dYjCKYn4jScaAfT8Csai%2F0Ltpr5UqdDkT%2BLYBMEJnot6kS%2BZq7Eg8GhuPjiecCg9i20wDuIr5fMN9jVZpk9QRm3pYA2Gi7NXy6Pfo1lRlMciVF0E1O%2F37oIAk0%2BJmVuEiGIOnHIct4shKfS0Iu8vNZ4PEupVPrMyFgZOm%2FQK3%2Fa8PvfvFinzVPgKXERgWlfl4kIT8G%2FGs56c7CO%2F0FO0Om2fjvnb3yL%2BGYmP0BDyTPTW3%2F2nAMm9LSZpXKA1Q77OwrKuJDHx4SKZzm9asnFvjns87CwnugN1mcQlazHEYNUC23Wp9sMm6GskiKgj%2B08FyPg6sQ1qw0%2FCd0ciQJtFyMsih2bKn0ULoVZsrY%2FZbbsV3g%2F3xB6v%2FGAFwSgEtXroycHTpxxBl4i6UHNGClW9OVL4jTHwwbfvu7s0PHDoEkZOegalcto1F4LCMVjgKid9SIjgYYqews40UqI2U9Pr5uQAobnwxQoCJGRUnxqBgc2Ddg0uXfn7GcJ0csSLnqkZOqDLTV4BXJFrKzZwoGx6jPgrSeemFVf%2F02ry%2Fv9UNGHXP9Ymp%2FMKe%2BcvXCkKQgeapwNawj5YgivOaVrXNz7kCQJgmXpJoEm7%2BDtlfMuF91hXQfyhgW930AgGOlMgGRkKSFRggSErY1DDWBW2MA0giKo%2BBFWGWVZgWQqjcqKpH07nEpFsYzQN1slXZXA7A201JVe6HP6H6LGetxTtpvxWTCBvptRhL5uxFPfcl4Ek1rAxgghmHy%2FdyQdrM1rWYJDJm%2F%2B1%2B2W8OnO6ZfU8nB%2BC%2Bq5UsmduE4uNmc%2Ba3QxWqoI%2F0AWdKbNqHHFx9dFHh8SPSAix6AcRY9yySd5nvhzfuJpiqUyVBSP2TMxIF%2FzXXr%2Btt8xiLQKBtfjYnxByRmpWHcNCW9x2Av7rbtQ1sRP3LmuBRctm2eULQfrpksLAj6d5OwZOY7fz2B%2BdT6tLdChtVY3XSSoBT8QdkfNSuyJv5wScN%2F6Rc4K1S4trVhx%2F6ElR5Kt8ro3JMQ7Exb2ySp%2F4sBuCQAJ4bOnB0Z%2Bej8GUkADg7AzLvfHBqmH7RHPMIPDB45MfThh2cE%2Be%2Frx3gweMcvLl%2B8cG7NnTJScxkwUqFYktkORioNs7%2BwFlryJj7jM51yxtcRxMfB0qvDgz%2FuK6AAdAHcFd6DulCqptsVIR1Tuw3VSEG11HFyg2PArkzrWTyo9uu3raXM1w9pT6nrF1v7Y4I%2BfPmzy2fAXcs7FS7IxEAbjyK8a6RZxzl3E7czKyS5Pv%2FNWI%2BoKguJJTv0D8%2BcshVSWGbJD0YeQiMECQkNTexx0OJ8HwCJvIg%2BTOcqgFTNUZE%2F8AugbduIg0SkJGvGD4qWC5HaC6YOUc%2F7OdC2gdfY9ZHQ4bmm3ybeFSbyieJpaCh7PImJbQTcju%2BHAw5O3lRpss4e4PxhJ3CJLd1BY%2Fo1lR2M%2F3qA5O33f282Ucz8Qi%2Bxctf95EE70g%2BRZQKPL39%2FX50kQxLbA%2FxL6d%2BAPNTb2HaOOXQ9WD%2FvDl9zxrgRqZ848E%2BzZ2RgXTLfLlARyq%2BajT%2BqjOr4A5KS0rKOdyjiuW12Pq2zJ2MdGQFRJFvOBwO%2FEwz868LCKauBWczMFxoqzyYuHOybWd0ExkG%2F2grqg6p6wdWsro0Y1sSJIUO5J%2Fx3DYV6WVB42AYjG%2BzYeGhY6XH6XbDqWin4f7MzT5IGANC9yQBODn8oS37MsUODh4yoz42RoSPyf4ZOnx4%2BicZAP8hjduRwtWH7zytpGcLa0k8CRipYpa2g5W6HO2maI2Vf3PBM8ib%2Bj1x8MFVT8XGwFPFJ0aXdUT9VCrYJIMTmb9CqFL8hekU6Pgt1nNzgmJvRvHbmMK37JsD1y9zh9Qs7WFrqJ%2F76gQhX4vrF1f6YoIMofw1T60hl7cQBZXgt42g9zFA45x4gSJb%2BoBni0cisxJBI1gXB%2FtRvUSGFGwNaDjYPoRGCbDoSEFKRfnBrrlNDGAV66AAvVwCpiqNiUW4%2FVN1wota9lgZLrQHbL7G2rr3wTJeD0NJChdq1xn6r5S91UkIe7woxRYJ4bOOtvPEkJbaFgPuM5fvBrtISXeWZxpL%2FRBHMMfBtYgt3UOoExPRrKjQY%2F0XyNoY3LgAJwimpMok%2FbGm%2B6oZ0BjWdPLHHF882D0aryig8AOPM%2BaH00k3yfqiSUxbWz9VhbZIQD%2F5Z%2BDfPu2Rg3VIXEA6k83wT42qy8W9cGQqN6u4fV5vCDiSyforkuRk%2BVVD%2BAEY5a08nPggTCvzrwsIHcL8qZuYD%2FwddaS7b0m9jdXMrRQ0hqE%2BqKs7244OmJI%2BJW0JP11CQBYWHTJ5GNpBu3eEqPdz%2FZs15YuEzBv%2BvTuGAxGhYTng9kgEMHBwUpG8yjDO%2F%2BfWvPzj3h3%2F5189GfvPr90%2BcQD8AIwF5N3II6L9owSM18Qpb%2Fw3PFnpCIOhmDSUMooaakeo10%2BNRD0B8QKotjC%2FD%2BOxgKWeO%2Fsph9%2BGPeQ%2BQCYHTFbK03eJMB0CKu61qcGz0wvGBt5nW3zvX70z4DLsqd%2Bz1c4I%2FlggXc%2F1iOv8SgrkFfxbRKpDYeruc3AeFNTeDG4n02M25A0Gq0p%2FsqTGKmlUWEmU6nHrBqfOmQioqRI5Fb%2FMQpiLYdBw%2BElYguDVOQBj1D6cDPO9%2B4pTqjYoHM%2BjXRwZ2spfOVjrpaNHaC4%2FJwt7DoIWaTZQSRXiuibVx3gu1G4l8knjarJFMeeNJtKYXA%2B7TH6GzJe%2B8S21ZCFuP59vKa5p%2BNBNbnn0x%2FZqKDcZ%2FkbwN2aYLbuY3XcnEn%2Bl2mAkBh6SfB8aJ7JTLhLdrlhf4n1IkvXSVvJ%2BIPr7viAdZPyya8YRLAP6xY8Kywxr4obQGNr5JW8nGvyyXQRvVJe%2BF5hRzOvWaUVyG05X4zbixxItA%2FxR8nVjgXxcWPkBxisz8gGjveKlcIDWIqxGH1IhxIKg%2FTKqqnO39hoxvC34XLwI6OSwuSyATWgVuKonSrbely1NrHhT8v2QF6v84J23ykRdD5t2SA5gMY9AsVv4P7NuHSQCIAbkwa18S6D931tR4hS0wUt00SItllSLJqS%2FNSC3z0g8RGbMNGxjftpZIfFetqAxYOyCA%2FiGoXncRhJClrU3RSUMgWYOe1yOnYAqNtP7euX5gYvD62So3FD1LXr8G5TOBjLjU9Yvv%2FEsIkoB8cvPmVYyvDxiwXchrGd42GQEEMQ5z7sTZLP3hd14do6hZXSGxYuTUC6wGqWUiOdMxLKYiIA86fHQ2qI2K9bfMLoMXAR1gHlpVGxVfyUDtz2iOcoouHKJzdDQW7Fh7oUOokDckDCk5U6LIPtfE2jeE2Q1Rl0VM5OPjwbgI9oa7EE884EZv6yOb2oqsRMbl9RxCtOdQ3pxwA%2BrpdmefR7%2BmIoNJLFTaZNteHw1hx6tU4g8vc2MzRpneS0b6IbKjJr%2FnvC%2BniGnz5QUYKb0EuU%2FyfnRo%2FiU1sn5Qww1NEpKAf4yKEPsrNn5Ha8jGPye%2FQafrJY23ANjdtgXaI52yt0pdGZofsAvZFAgSms60ymImEvjXhYXDQ6b4H9IaLPgL7LxyRlTBrR5wnNs4pJZeT4wjgvru4DJuunK2m73d%2Fh9R6f%2B9QCewcAIdwIJMJQl%2BQJhWulU%2FNMT%2Fcxc89Yzwf16RG8VyawafUpA%2BgFnk%2FO8sFKABRLGR1Murlj8v0P%2B%2BO2TIyk03Jcm14Ha4scWGz2GklnvprHXnzwS9qvjMHdPxsfNt53XBXB%2F5xFkkEISAUMfuMXvIBrmShqDKSDcuifcF6jh4Ie6Z6%2Fc2MqCruH6ocsNnxw3F6Otnp%2BQ3K58JZMSlrl9859%2BEIAkICPM3rxulq5MGbJspl514zt1CMiwj8WKJzcNflf6kWrLI4%2Fiv1JCmO%2FUCm49cABMJdQbmIUxFIBvg8JF7qK31d7%2FVPNA6wNUdlVb7O3Xc6ecpM3tTMGFLStdeUH505A1DCxVqFyWK3HMtWBtjLNB0QTlxVoJ4JB2S%2BkxZ4%2FEA3HCkuDRyVs4tm9qyEMazZ2f%2FPjnd7NOtz76Yfk1FB%2BNPoyGF%2FvTv0OusUOIP6SbOwOREMg1JIjuSXvznfbXN1yUv8E%2FpJcp9XkNTzFNjT%2BcpS4VMuwMXwNZwaZKQAPzTY63HfPPtbPy3OovY%2BBeHB9UZOh7qr8nMGjZC8UdMeLa0QCI3%2FYayIrr%2ByWnFX5pA4F9vLSLPeSZCC1mPWUhcf7ecRDVQT5AgkNALEVbL9kebW0idrng8MHhc4L%2Bdv92NJaO7g2wV3Pj41Oe9dvfNfAj8n2UrkADYcmtL0YilWVT7wZnQagcWgPxXLH3uySfmEPrHM1LfRV8Z9sVglZoxRsVIZWf5SxOqVI3vfcKYVfHVK8Zscef7lZQYWXU69cCrtEgILNLC9jF7yIJcSUNgGQkJ2tA%2F7Skw6753rl%2B7E6rB9bNV7jyaX3jG6LRJ2yapY9JnQl6LmOsXc%2FqbEEQwyOkc37px7ZIB22bK5QA6XHY5GhzEcK%2FeIM5WpT85%2Fh%2Bd6XEAV2pIM90csp1M%2F71USFFnYB7CVEQEgxU%2Bunk1MHJoBS9C6QBXd1Ra7e%2Fw8JAtvtgl7Zhg%2B2VLStdeZpK8cfQ0qF3B9%2B5UzzWU9%2BQ0hjZignhMOjTADy1zPMkBN3pbLuUfOoHUFrpyWOw6Hzh0zEy1wX3S3TiefTH9mkoOxn8Vieecc7eDVh4VtqYEdBOr8plMQ5IVL0Iuz3lfNtE5SeAFGFFPp9ynKrpFEmMfhlIWMh4g6xWZJCQA%2F9T5lG%2F%2BXDb%2BuY9V93w8LZWsqerB59Oyk9va%2F0u7jPzR5N96tnFyGRhlIoF%2Fjf5zqE6djdBChNcs11%2BxGly5mBqcJPRySu24HXAzxVVLG%2B%2Ftszv7xRFR3hy0S0Q70eOGoN1Q6deO9X8xAEcCsOrlV1KkOjppQer8A9LaQeV0LZD%2FUwsem10zNQlD1gmYQ8EkykhlYfjLZK2w8R3HmNXxvfBCrbV7hIqIwFdrkeAs0tg%2B5oKEnBglqNvqqBrmukBjCy3ce%2Bf62alnXI0%2FSpVb8idU39BdotMmbZtQzIXPRPz1iz%2F9l7wAM3JEgOaagO3LI2fPDMlsi1tuAF5s8Hhc4GVUpT%2BPqnalhsQ55Fqbj8iAxR%2BwzxxAHqJTkUPWKvBGyIqw1t%2BQpbW8CG4U1R8V1f6AmM%2FY4otdaMdwKBS2ObRj0uQNjMH81pwNg%2FhesCz5XNtaH0q7KLQniuej4ZP40DLG4wG4oS%2BC7PaPVy4itYWunFtu3mzo7MgV%2FGB943D2Rfo11RiMv2w%2BiT8w8a5A7I%2FRfHR9ofKZTEMSFSVCLqXIT9DoP%2FGbXOdfSy%2B9yZlf0m11Zux%2FpkIfG4ObNElIAP45JP5d89KvDdn4dWOw8f%2Bg5ubGk6oIxDeXt9vcI7nzxmhQxAibUqZyadKCemexAM1SMg8nHPgn%2Bnc9%2FI9up4VYVYE1ac0K4ZAaqKoa49x06t%2BQDk2vrnXiQXkH%2F0Wf%2F0O7xK6LLCEDi2JfOxiASwLw9HNLTAZgegCvSA7gpAW30OH3DQF06dpXXlr51eVLBPk%2FNHNaQobsL6GsAG53lJEaMts8Bmc8suw7ZMy6%2BJ5dsVq8RSHDauHrVYKQnQXVPmYPOS%2FFNE0eRU6HSTvu4vfM9UtD7zRgtn127ZLkTwdN9Q1zJcKDUzMxXb1Sx4TPxPm46xe%2Fpj%2BywEBIiOIKr5kI6eboZ1cuXTz%2FYbCM%2BcXla6Os%2BvFlPMLSnwfQruiQiLORj1ix4T86HxC3mIrIphNWRq9dAhff%2BSe9ukrzIqo%2FKqr9AdocP39RfrxdaMfcDJ%2FNw2hJsWDHg93RIYxemOgq2zV05rxKaU2tD081zvsk8VzGh5YzHr%2FeVkeQ3f4ZqS105Xj98HxfuV6k8XIdaS3Pvki%2FphqD8TfMBfGHNY%2FpFYj9A1Heo8GIZxINyRkKckW8eH1OKt9P1XKfUFSH0IbmxPmP%2B9K138BlZZKQAPzPdPKw3zO4PGDjN4gu2hhs%2FKtQzGPpP3lS1WMuo4nCcXy2t25t2Sb6P2nDtMpZ%2B38JELLcnEucaOCf6L%2BJPfwRRQsBr5m0BrJC1JDawCAxDhqN8P2Em66c7ctX1VpbX8L%2FT%2F94fdSugN1qWUKFXNxrxwTg4cfmmwzgmeeXLpUcwPQBTBawLgT%2Fm2pXrTS4f%2Bnzzzy9cL5G%2FokZqZkoQ5bTyewsf2lrZhLGrIvv3y4yZVoxfG%2FPBTSeP31GizTVPmYP2SDXQU0edTkdrKDZv71Hrt%2ByVXL9wpl2c%2Fqa%2FEmqb1CUkhSKC%2FMne1DMHQLZJe76xa%2BpcjytTiMCCGqxQCr19lEu%2B3dcfBl3epb%2BKj8knuEytuHUla6OXr%2BCPESnIiYkxmliOSl5iLX%2BNvhIe4BUf1RU%2B0tDc9R45HzypyuXsPhDXd%2F1sINnBMzKCb8ghPMr%2FN4rn%2BG55vQGan2Qc0kcz%2FXPrpQzHr%2FeVjOzW3mTb46OinENrx%2Bfb964s%2B%2FLjePZtyjSr6mqYPzJNHKvYOHJVA5efhWI%2FS1BSYZ9rbjj%2FPsTQi7wRIogl5d9JekpkPvx%2BlTKfdJLlT1tHr3e47507Qfph%2FPSCcA%2F63Lfl9%2FQgO8ecdyEIWwRG78xaDEIKGfpfxw4%2FC2A%2FwDoZ7a9vt78CsUJAQLUioQTDPwT%2Fa96taiH%2F%2FsiWgh4zZrW0HL7kNpJbEY82gVUgfD9RqOc7U8uXr5KVPoJ%2F5Ep3FTblGMJtd75azetxmQAcx6fLznA06YPsHSpu7rB72r%2BduH8x%2Bc8%2FOAMvdckZqT2lWCk4iFn%2BlyG5cGYxUvIkbf%2FZe6CZ5e%2FmAJ3JYD%2Fl64JCJHSmWofs4dskOuZgIbADjJyOnHXgcbWvXP9Hl242Fw%2Fc%2FgS6Zrm%2Bp9HpfoGLwlhH3BBeeoI6pisw8Vev%2FgDatEyGwFTaH54ZPFHXgleRo%2FSX%2FWENMXlI85XAfH8C%2FIQLoWO0L4ZHEAeYq2%2FDT5SHiDVHxXlmaA5ajxy6LHGxb7r298eoyU1zUkgWndNzq5EpjdQ68NTXWHx%2BPW2Gpnd8tSKLNbZcWzyxsnZF5llqbZg%2FBV%2FXEX9rCNxceurNOwPc%2Bj3kDVaW6cpCSEXeCIKcnk4afFTKfdDCaFkn0q5T3cjoPiDpvYXdfbO4rjvuev46OjgZjz4pwpPW%2F77psCf3iyk%2FM0N682wYofpzjtzUMO%2FCdj49BDGtfAA%2F6D4mF5DnQHN9u%2Fy%2BIIA6UUEN%2F6JBf6J%2Fhcu1j38kJsKXrOlNXBl9JCawYis4INj2N8nU2pw0zVn%2B%2Bx5Bv4blX7Cf%2BEIGWD02aisz65clG0KLCHAoiSv3dTpNZIDPGz6APODq8vf9WGD%2B6dP9WHInhuBgslYjNSbwkhVzLYyLB%2FGrMypc%2BTtvgfmmdKRcFcI%2F08Cv94wVTfVPmYPWW7QjZA86jrIhZxQNV5dhfLNvXP9ps2W62caWES6x4agynLTJACmjBuwD8hB%2BPD8RdQxY65fgu175qOIACbaLgImF%2BHSKNIQvN3L6F36q%2FyQmI%2BkraOyxMPZx0gk2HYwuNHXK3mIs%2F5W%2BGjiRDXN%2BWZ2QC%2BSRD4WX1zftZ0tKcXoBTYSwjkaFzZygkxOb4Cviae6ouLx6225lJ%2BnFrlZamEbgNqtiPDzxkXz2qoKxn9RuhEjGlJM4R2tROwPoR%2BXNaJqnVA%2FhlqfUNQ56GDIDP4zT7kfkvX5qclvhFX8iZT%2BvatpHPdFv5yDmwnAPzWDCoWAjY%2B522%2BCjd8GcJ7Jhmx8ZZPvCf6B%2Bl8h%2BMf%2FIlK%2FDGFUXPMJBf65ps1WPXyIwjhaCHjNt9Ea%2BiJDamxXv4ej3RomwU3XnO01s%2BcZlf4XCP9ljFQKy9LyFtwk25RlCQEWJXntwj7AwxHwX%2BPFkMWGNfKJKJgoRir9idDGJLOtDMuTMQvmHUfeah5ZAO4K4f%2FAYEBK0e1j9pDtR5GCjA6yzelqhYYw%2FZ67fs%2BaBhaRrjjXAemC5BIQF8hBAMs95volXNMRwat4h2wEoBUhxyiFIg%2FsC15Gz9Jf5YfEfGSZBASI5FQPL6rbgakEdLycZFOmHXlIxPp74kRFzdFm6EW6vt9N93Ol08C%2B61h12fsdOurA1IJs%2BNgcELIBmZzeAF%2Bz0uLxum%2F3zwuyW55a7s65aIOX3zIA3ahceOMieW1VBeO%2FaNqEEY3fHh%2FY6Xo5QP%2BVh%2F3fw5lks8bpyZXjqfVJyEgY4iH3A8DIed%2FxSgjRb9A4Ll%2FzL%2F1Heb7g4rh%2BOUk%2FScA%2FNYMKY7Dx0QVQbHyM4vayJF8m8M80Dt2WiQn%2BdQ8fojBnRz79k3BToSpAWgNZIXpIjY3GwQHrYtmCKTW66YpK%2FyLCfxGQFEq5LPlobFNgCREWJV%2B%2B4F8T5LBhwcHoMwDjCCPVlJfASOVD7rG8GLyflWTMYnCJjNmps4S7Qvjf2%2BfGUXnslu4gXwEFGR1k5HRm8wYeubeu3wPSwCLSFec6Il3f6xe%2FGIEZ3WYEANvyFl4CArBce8nkiCJ3Fvgyepf%2BKj8kNjFXpwGRnN%2BRbcTgBsu9hh6R9Htg1gC9J%2BQhyvp74kTFhx60kWBoHbdI1shZdBrYd2VLSuMjIHU0LqTVK1MKCFm6w5zeWAG%2BZoXF47dqXHbLU2uvvXP4gVi27XcMs%2F9OJM%2FjxlVeMP7En2BEY%2FD0maNuigPovwKxP%2BNj1phQ6xOkfyI7IlNvwKjmfSkhNB6%2FQTgujxaV%2Fqk550mjNRZiIzfZL7eknyTg3%2BU6bfm%2FK4zBxt%2FeFmHjW68yOimUh%2Faj5ywmIviP9vDfhse8IX5cRwtRtpQIKwRoiQAHNRe0qztxtKdkSu3R0E33vllF8L8VRoS77dpZwGFnWUKARXcZ%2FE%2FhTJmoH4EDHmWkwp8IVQyv6pI%2FgxfV6lKMWUxQzGR7B%2FDViS8BquHoJIAt1UE2TI0B6%2F4AzAZHpnvv%2BkkDK0S60j0B0mUK7HH9YhcjmB%2Bm0HiH%2BvdK%2F80hAKeyM3ySKDLXwZfxSY%2FSXzWFNM0EhDI7bpLIEWAEA7sW9rFjhxCJNUlthdNDreQhyvp7wkU1BbSRdDC0jltkliBFdBrYd2XtRX8vkHorSs629ONCBrME0xtAdJUZj392y1PL3Tn8QCwM%2FED0K5919jgeN67igvFPezGioYZ%2Bif4rDvuzM3F%2FcvcYkv4VsgMnxQcwUugflH%2Fi0HH1%2Fl51jssjN1j6p9uMd%2BF%2FcPjqv15jvxyknyTgnyynnxTuCJajJE8PZf%2BB301fH2vgVyksTVDwr3v4EIUJKbw3hZhfkhWChr6dELDtakE40mjklFoE%2Fm9q3ipAIScL4wTYpsASgqDdXQb%2FnCmD%2BtHxM5xo4MgiGKmdbeAv%2BlWX%2FBm84KmXZMzqCYqaEP4DqtmjU5dqCVuLOsj7QEG2HeQVoCDfo9ePSHfL1lYiXdt%2Bx%2FVDDuBx%2FeIJJHMXMALcQUzeEAFAQfLgQIgit27hy%2BibY1V%2BSCxjSJkd8UCIGOJL6FcKNBJs5PwtWsXkwcSycrnkIYr7OqGiIm0EvV30%2FXCLzAJSRPGFfdeSSB2NC8i74ZttyAGzhCbNFRiPf3bLU8vdOfxALCf1Zf3%2BxBhfrOQ9blzlBeNP%2B6eM5m9k6Lcy0D%2FZzhr7j3MmYYYi%2FUeQnb%2FQv6L8k4GSvOENx2Wh%2FaP0T49cLzOHsPBvCP%2BqX54E%2FHO%2B%2BZ3CHRJyRqHDg2vsKfUpX1q2GLdf82maXERvhYkM%2FnVhAcimFIU3yuSVbitqLti0BeFIo3FuCHE0%2FH%2BptnGjAAUsCAlhmyJL6K6Cf25Y0OaGLdbJYZZ2b45iZNEyUlvISPVYngxeqKzo%2BDRjlqQaDf%2FTgGr26NSlWrek3cMOckFyOnSQmdPdm9ePSFe6J0S6aL%2FL9QOPw%2Bf6xS%2Bm0PYdaoPmFhGA9Y7qI4o0P1K9jB6rikKa5iASctxWZ7uASSXMLuVziATbTrr2pReWPLNwnspDJmhUNXM5tI5bJAtIUW4L%2B64lkbprXLQ6uQcXsoBMTm9UaDz%2B2S1PLXfnGG3BmnzA6Fs8Mc2NM1byHjeu0oLxX%2FcXGWgNn6oY9E%2BdE4399ZmUnPR%2F7noMsvMQ%2Bqcz75LxzJ5OCRyXhfb%2F6S1T%2BqdH7hQvG2cW%2Fi3hn%2F3yZOCfuHVvDPhXOjy8xj4mX2nDUug09jw50XnSY8W8lRMc%2FLOwAFGYEhReVRkWNx%2FHVLWuAK5djaN91n2lcMLzy1e9LNYNwTI2wtimwBKqBPCPDQvqR2BADQyitEtG6oF9YKQ6fyIfJOfP4IXyg45PM2ZZOdPwfyWgmj06danWLQx6sIMMCjI6yMBs9%2Br1I9Jdsao2RLq2%2FY4ZliOe1y9%2BMQK8Q5vhtkEEIId%2FDo5tRJGrVvBl9FjVExIhEm5S2pRIYbjsNMqgWtaGeoPddlYuf97E8qDaKiZmVOztCtzGLZKFn4tOQ0zftQZTCylYurtvRsgAmZzeqLR4%2FJc%2BtdbhzuEHcll7783GC9MUsOTGPeaBtiszGH%2B1%2F3QU%2FSOzu5urBgrnEezPMykp6Z9S957ITgv9E8lRch6U%2F3E7Ljsdvus3R%2BiR6%2BG5DM89V%2Fj%2Fc0D4Z798XOB%2F353RfvQ1Tn5Zs4bpY8SEskYtdI2oB2RzZuy0ufE2QdF7BfzzfFomyKYEhfe2yrBj8gL5o9GIdvWzONpL7V1znnjyuaUr4Mpl18urvoptCntBJYB%2FanPDFqu3D6VdMlJlZBGMVH9%2FIn8Gr%2BRoKr54xqwVXwJUw9GpS7XBgsQTO8hbJKdjB%2FmevX48fZ9avJxI17XfMcOyx%2FP6xS9GgHcoBZ9tIgA5%2FGW1hChy8VMeOLtaQ%2BJNWvlSbVrKDM3WncT5lWxGJNh2nln4xBwVywSOikPrtWncIrc2u04D%2Bq5xjYuX5Hv5zRJywCyZWrHx%2BC%2BeWvbO4QdyNcMBM2XM5FeYOru5cX6QthKD8R%2F6Jfr%2FDdE%2FOV0ey5sGl26KYn9GlYz0T5PbMoF%2FL7NZlryowzd6DR65cMF%2BdJqPkYP5RBT%2BPyXhH%2F1yf%2FBPNr4e%2BPUD%2FxRmzRkBIfMla57FNRuazXklY6dr3wD5p5F0q3sD%2FHNngSjMy6UovLqy6Zi8QP6ouaBd%2FfkIZ2rN7McMUFiyNFhLnnt6Ibcp%2F6s7TPDvrc0NBlR7BqVdMlIxsghGKspLd3ProsoK44tlzDrxJUA1e3TqUi1XPlfcQQYFWTrIk9fPvCMzH5r3JJGubb%2Fj%2BnX1xl8%2Fz8UIzDsEAPBKah0QAA9%2Fs9avI4qc99BMDxRZlSExHpPjPr%2F8q6bMUJuGL7lZcCpPod5gt50Ha9QxNaGjYt8Pt8gtIEV0GmZNjS8MPS%2Ffy2%2BWkFeQWVL98cSeWvbO4QdypWvNT125YtnzzzwldfYSQVdzMP70mgD97%2FoH1v5RWwE1667R%2FZdLUN7YnxXwwHu2XLQf2FoJ62cp5W0Sgxrq8Bn0D6F8YPVxc29nwcIZEkIjfzp3lIT%2FR3ENvcC%2FZuNnldSnD%2FgnR6vHYHwTe7ZT0D%2BIKBvT6aaWtm5D%2FpGfhUHrewb887UQZFOKwqsrm47JC%2BSPmsudtaunGaAwP1yPPczDzv%2FqDg7%2BguDf18EIDKgWV9olIxUji2Ckorx095qWVFlhfDGMWQ3V3NEZKdWy%2FV7UQV5hKciT14%2BghUgX7Xd7%2FVoTXD%2B%2FhXcIAGDZipVAADz8zXppJVGkx4%2Bs3pCY4855YqGYfy%2F%2F6sqVAhLRZlxpsJFEEtl2JnxU7PvhFrkFpMhOQ2zJ2XzvUn6zhAyQWR3x%2BD%2Fe9s7JD%2BQyz7WUr55a8Pich2Z6FLAqPxh%2F9N%2FxvV1k%2FoBVueguEP%2FJGgPxsz1nsL8Z8vLA%2FgTqdLoqy8Bv4GoF1o%2BnjiGGfj8zyQRYOiD%2BjHvaV5IJM0XwCRz7Sfj3Av9RNn771o1rNBvf4xo7uR%2FT9UiZrkW3PIuNa%2Brr6xukVtkp5kPpzXRWvnfAP5FNSQqvrmwGTF4gf9dovO8OXbnCpR5lz6sL8VCCfz%2BGLBhQ6fUo7RLSgb1NRqrX8o8P8BXxJWPM4g7Yo3OZLtWGa3NxB%2Fkpyekmr99YSBftd1y%2FTc1Jr58%2FAHh8wVMWAfDwN%2Bv5ZzxQ5EQKaWrNg2L%2BvfDpp582ING1GQ02kkhmqG3nXoiK2QdukVtAirwtcZHL987nN0vIAJlVFY%2F%2FncMP5Foo5auHZsaYyVd3MP7oH6izg7x%2F6CmM1%2FHEn%2F6GeXGRfIBRHHSnfbA%2F7Wl3YOS3LFKfo%2BdR%2BMeErqeOoRv6vTyE%2BVwQf6aPL5fAtK%2BhEb1%2FaeQUHPudQJ4H%2BN%2FfF2Xjy80BGx85ANj43uC%2FV7oe6TeA%2FreiPS06l9ms6V2scUyma%2FcW%2BCcwLEnh1ZVNx%2BQF8vdvNPqD%2FxzWt%2FzBP22xVq5GaZeQjiOL%2FrYp3vFB%2BYHxJWHMhkdntFTLHnpRB9kwNSavXwmkK%2B13XL%2FadMLr57%2BmTp%2F5kEUAPPzNenyOB4qcaCFNq5nx4MMPP2xAomszGmyk6w33VFS8RW4BKSb63hp%2BM0Kutnj87xx%2BIJd5rj1%2BahUF4y%2F338ypXygpO6%2FzmrtQ9rFKsUhGDp%2BQXKTNA%2FuTS4KR31Mf34yYfPk6%2FKLwP%2FSL3V0Y0J3npWPIod8zVy5g5pck%2FeSyKMG079FzH8s9hWM%2FPssD%2FP%2FD7igb39yclGPjw0wN2NYT%2FBfQ9RD0nxWpGlltmR5JStfaC3QcORdFhaof%2FPtTeHVl0zF50W29e41Gzttvc4sO2H5rGkZjUdpVjFSMLFZAbQXKD4wvEWOWR2e0VMseelEHefL6lbx%2BaL%2FL9QOPw%2BP6eSIAHv41NR51vzKGNLkm1%2BS6BxdRZ6Ob%2Bv3Aeihus8T%2FpMPZ%2FjU9SMwK3V9sHo8BtbZ4YH%2Bs2U9i5HfHj83oq4Fcl7X9bPJF1ysHGK9bks4mn8I%2FADuGfnEbzlwW1zXK84zjljrbsMHTl04Pujnu5biIHuB%2Fz858DBvfKKqev%2BEP%2Fv9OVEkF%2FbdmcnZ15yDy19hsWyMo%2FNNOoPrBvz%2BFV1c2HZO3LN3W5PP266kemk5OjCs9GovSLiGdGlmsAPjK%2BDRj1qNUyx666yBPXr%2FY9rtcP%2FA4otdvEvZOrsk1ue7xdb8bsG0XZ8VTQ4cHduYzIP4vf%2FZLbQLXGLYnzOVA9z9w9OhAP1BrygP7c%2BS3WZyMj1%2B4oexn%2FcR%2BHPfcaOhjPNf0Ep7g1fIY%2BrXo%2F%2FdDoTD%2F%2FeNR%2BnE18o9E6AfYH479PuB%2FV6Grx4D8tWTjN4zFxr90yxf8t%2BV%2FaOc8xCsQZiE5mPFsWGN%2BVscOOKHRVpl3sqrBvyeFN1rZFOCPhn4llBZeCtVD6VrtDQ9R2tWM1DLvVf7xTfUq1bKHXjNt8vrd8fUDjyNy%2FSbX5Jpck%2BveXtRXA%2BzsM2IzHxjQDeI%2FDNnmlZ%2F5z140dCjeaGntAN1%2FcD%2BSED%2FdaZb%2BN4jdFWAj68Ug%2FXuJ%2FRw03PNbn5rSuhPmDD7QY%2BiX6P93tOQFaE9q3xDUyM9Q6AdJhA%2F4%2F0FXq6H3tJCNLwwTsPFz3cVsfA%2F0zAu7D%2Bi%2FMTALseOIa8WcFGKoN5StMns41Q%2F%2BfevCrGwC%2BFdIaWHR86F66EJf9yhd2o0yUv3XZHyT8U2uyTW5Jte9sGqc5k9bp1TcPzhuif%2FNpua%2BfDEMPsu7qGMOBeo2ofwc%2FqUZ9QX9iLrTXtXHFwymzIAw4pjiLR6F%2BvvmPkOxH0P6QWndz5KLQ79F6B8le9J1kmB%2FGDfbGvlvBPujgQDfZi%2Fw%2F%2F%2Fn21pzRWz8NrLx24T0U8TGv3WR6HmcLRVELfojacsZWZ9ea9T%2FWjN5c2Uwt61tlWvuMfCv68IVXdmcMhPTc3Y9Nnuy6Dq5JtfkmlyTa3JVkuJnC7j2jvjf0SqWKquWQWCh%2FAIPcDA13o7SfnCUnzYMHn8ButOmFL7agdMLoyD9e1H0Z8nHObl5If3sktK6fNwU39ug0P%2FpQQ7qAv0n8cjfAKWfU8PA%2FhT68QL%2F2Z19mb9pz4Vs%2FG6y8VvMXzG5MuuGkT%2FqJXpOPkzRu%2Bd%2FmLg7DNVHXGjW1Dess962nYV%2Bc10%2BBelH2ypXO%2FifXJNrck2uyTW5Jtfk%2BvLRf0rkG0H8P3V4YNcOA76bm9Krwf2pKTfZ3zrPbDW%2BjubnHxv8n%2BydX0zTWRbHFUrN1hkDZtEQlYSHGkJ9gIQA2fShIwmJgWDwpUn1hU2QZHhy4M1Nmmx4GUJ4wRnL7LCbwWbTZCjpbJcdMmJnd6vQMGsREJT5wyKsu3Z3JaOSGSCu7jnn3l7An%2FqT3la7m%2FN5RPqH1ofvOfd7v1%2By%2FHSIyFH9woHcAw55AXYMEn9WF8Y1wnno2d5xy7j5Jw%2FI9EOrdXy2dKr%2FBRXRuZPIn7yDDhdlhkLSz7ek%2FdUzpC7%2BqXgX7%2BF6ez56nhsf1vL06ZIbn8z4%2BAl7jpft33mMEoUGjcfhPyCMFdQ%2FT6GW1PgPxQ%2Bk%2FQ21ypkS%2F9aXs8WLYLG%2BnJ%2Bw%2BGcYhmEYJovIw2ZFivykzfvXk9HhAO5eqVSRGtAz2G0nSx3Pw%2BgRCEfik1Fp%2BXGnq2zMJqMv%2FcOx7x5sxvKDIk558d9FBveHi9L0g6v1XUB61X90yLi3N38CPOUAA1fsa0M7ciriXxXvDgxD%2BmjnhY9e5MYPRuhC9aYZv8lp35dCOEwrRpROT0ZHgpf6erGvStRZ9QfCMJbeW0Xtb6hVzpD4LzbhcKEswrbkFxWbUMLin2EYhmGYrIEi9inykzz3V2Jzt2JXYPfa7SXvj5D%2FORkJdTh0lMz%2BdHMUX%2FkGvjBZfvCq70FQV5qo0iuxDl98SIW8KQv2vINy8X9lJvHDsrxPKwaJdKv%2Fb3fm2FcPpzFnbNag%2FVMT%2FxTWTvv4Ef8FVP8vdOMvrj5rxt%2Bz00nwSGW9GKy%2BuR2PjoQC%2FoE%2BH7XYBkH6zyz8Uyln81plffFfbUalQ9yithywQ%2FKOCT9j8c8wDMMwTBaR8zZFflLaDvorbsPudbC%2FF70%2FQv5TzLIuxsbSCieZ%2FdHWMTgSnRRHDmT5UVd99bEcdAgjPF4YfQQ74xStOpSjWZNc%2FD9I0G5ePVMm1L%2FK6lHq3%2FzBZMG5eX2b9tcQ%2F3IffzH45TCq%2Fx6fiRtfw4yfU5icrCaXlm%2FHxyOjIyEgfHk0OjGzkHj0WGn%2Fh4vXTWqVtcX%2FSVPqZRQTzJaQuW%2FGKRb%2FDMMwDMNkW%2BQn5eyjlsPl%2F%2FVIGIW4kP9UsJjGLOgca34RFjmC9Bdmf3D8XJ%2BRa%2F9zwvKTvpIxm4jAEVGR929Hh1Lc11OOpkcu%2FhPKlU9nCOlX%2F9dvicgfg%2Fo3f%2BgNamtT2l9L%2FO8Rpv9LI1dR%2Ff8Con5e4MbXNeMrTxV%2BTffu312YuxmPARPTN%2BeXUPorIGQJOpB1apVNxX%2BrOc3kbCJflKel1ZR3WfwzDMMwDJNlkZ%2FUsIsuDnD%2Bx2%2BRFvdJ%2BV%2F%2FThW1QFrS8lL7Co8cLa8Grz9KfzL7g%2BMnnlz7nzG3%2FKQi2kUA5q17yXhOYaZPIUeTIu3%2FcWtM5fHAEJF29Y91B7MY%2BWNU%2F%2BZjA8W1Ku2vJ%2F7J9H%2Bu0xeM4h%2Fc5e3sueh7rhtf34xPt6nl15T4YXXl33fvAEuJ%2B9%2BvgfRXrIszF7n4z4T47%2FG%2BAuJOs7wR7TWns4%2FFP8MwDMMwWWb8d2Lqjxec%2F8ER4f0JXpI%2BD3dDrbOitKRIW%2F9bwOlvh%2Fb2ukbw%2BreD9Cez%2F%2FT0GLyWXPs79S0%2FRruOqL4CWfl3ldGDknonhyMyRxNvt%2F4Ntb9JEr%2Be%2BvfBe70xtqn%2B8y0mo5vS%2Fl9F8VFK%2B2uKf6pJO4ur%2F7%2BM0XRG8v%2FXz3PjU%2BOxhhkfV%2F%2Fqa0qsP32ysY4I4a9YV2cuuPhPo%2FhX7WFD%2FT5zZByojPH8wGdKn38kfneDxT%2FDMAzDMNlj%2FD%2BEy3%2B8wtnj86Oqm4tL%2Be%2FtaGv2NNW5qstJ%2F%2BflpN7bWIRO%2F9r6JuEXB%2BkfBLM%2F5HuG%2FT619j9Elp%2F0SmonZmCSrLwj0%2FkNNQKme3%2BVo7mgtL8wfmdA%2FXeilf66epkK%2B4E8855m0v4QlAmPOSu1v7b4tx6qkKv%2F5FnQL72dH%2FZ0X%2FitwY1P4acaZnwY0ja%2FpsTak6dGnqze2zxzscOLpFn8k6coHDLFv138%2B4IhU0YwDZXFP8MwDMMw2YMVU38a0PmP3p9N%2Bd%2FX20Wxju5Gof8PF%2B7bs%2BPrnHm2gsIj9rLyanD6eyAtkvzifpD%2BcRCV4QBk%2B6u1vzX9f9khqdypxpiMPzsrELbkF6tniH2zRftj5EsG1P%2FZ9yhE5yv5QqfqQMlbTa5rk%2Faniix6BGl%2FffGvVv%2FDY3PJDM6eDzu9Pf7RG8%2B48Vcp%2FFSa8XW%2BJlL%2Fyw%2FVMys2VhZntpy5WNIt%2Fuk28cxEzIzRZ8V%2F6FrMjPh8YuMpi3%2BGYRiGYbIr9ceBzv%2Bz4P3ZIv9DgX4sdGpvayH9X1N5zF5ctL%2FAZrW8ou7fs29%2F4eGSUnD7HK9rRKd%2Fh7eT%2FOKjIP3R7N8P48V7ZzOz9ifektqdaoy%2FlmZ6ulyw9xVebrftoL3C1dQsLCmzk1ETM762%2Bq87BfYrMv5fo5eiPf6ht3a%2FLKiVtP9Vuup7Tp0VaIt%2Ftfq%2FACW%2B38oMTr%2B%2Fz9c%2FFJ3%2F1zY3%2Fvq9mUgw2Xis9zXRkPZd4tHGk61b%2F7Xv783DRXSTMxcd8U9nC4mlOybcNIr%2F2MIdE%2B6ubDxl8c8wDMMwTFax23YAnP91pzB6X4TwTID8H4fN%2FICvp8sr9P%2FJ%2BlpnVXlZaQlNANR1akBVn5LuL7aXHauscYHbx3OmBZ3%2B3b19l9AvPjU1ESWzPxqLTtVpr%2F3NXTs9eCP2Jm2PRZPYK7yiNb%2FYIfR4zyXU%2FmCsyZj2J%2FVPk0YbGv%2FDkatJB79TuJSMc4mqaAtGImG66ntG3RLQF%2F%2B0%2BsdPzjcYmfzrEmVwYghnGIJT17ZJczDjh%2FtV%2BKne10SFEzMLd1d%2BlJ7%2Fx%2Bs%2FrizPT49hBK3%2BmYvxb97CD49MuP888X%2FnkQmra1tfg8U%2FwzAMwzBZQe7b0LwF3h8p%2FwdBoU%2FPzcQiI0F%2F%2F0Wh%2F1vB%2F99YV%2BuqoQkAu07379%2B%2Fb491G7YC%2BCFUn5Lur3Yer60%2F6T4Nbh%2BMh%2BzxDQRCI9GJafT606UCkP7uBlfFUVr7Z1L9n6MgHXGVlgoFYPlvUmFszadPRDhxhtD5DsYaXe1v7jFqAB8PWn%2BuRIeVoDe6lCw4l5xwi6lm9Eqwv1cMCvTW9MW%2FMuOcOivaBxYTmMGJIZwTMt9T2WWW0QzV622j8FPtIY0yoMbjtxch7QdJLC3CscMoDjdew2evLf7vGNDb%2FJuzwOKfYRiGYZjswJqP3h8h%2F7ulN2duFoWX1P%2Fg%2F29tOXPafZImAOg6PVZWVmYv3k5JKfwQq09J9zd5QPi3tYPbB%2BIh0ekfGY%2FP0IkCPCOZ%2FUGFO4pJhWdS%2FZM7xiev0lKVsPsEVhgX2HJfYFki6U9nIXQHF7N0AmisyaD2p%2FfqQOM%2FWn8Cw18mrTzGCFQrHBLgmNCBq%2FLL%2BM68BouQpvgnM05FXTJGdD7xYOU%2BhnAuJVafbDPjSzNUcwOGn%2BoPaTB54oSIOf%2FI9EQsCgMoDjdtzYbPXlP8xwzoev7Nucbin2EYhmGY7PH%2BSPmvbuWC%2B2d6Quh%2FH%2Fj%2F4QCgvY0mAOw6ra2tPe6s3k6NC36K1aek%2B2Hj34HB8L19A%2F4gThPT6PcJkdefigRA%2BpccQGGbWfXvPJHcp8eukVTueJcqjEuxwyzHoPypkYBqiEGHU%2FrmuCgig0dlSvsrM08NTRxdaIAZpbMGQ%2FkZDCbqt%2FzDX9A7a2s2XA7WFv%2B78%2B2b7QO3llfW%2FrOxPYLz8SMw4yszlONgnvaQRr3P6A3Dhl%2FkcjiEZ0RdONw0GD57PfEfMqCf9mNOkMU%2FwzAMwzBZQu5eIf89Ko8TLRizQv%2BHAgN9F3u6u7w0AWDX6enTpz1NJ5%2FBDT8909IqdX9nd3cvBMPDLhfiIaem8HlkihDcImhCs%2F%2BBvbmvocZY7dPDkTE0yXSJCmMXdJgd2Z5hZNkDyh8aCUj6U%2F7R4MhVWUSmjDWZI0%2Ft9Htg%2BX8ZhDW5lMj6o%2F4cGEzU%2BUDynTUYrvpqiX%2FCsqV9IBq%2Fvbzy45abuI%2FXvk8szIAZX5mhbGkY0vDgiSoF%2Bv2Cfh%2BeEbXTcOPAzz5t4t9nIBM5%2F0Y%2BYPHPMAzDMExWyf8a1cR1ES0YEaH%2FxyIjoSCKMZoAgI729vZzrc%2FS1g6c90rdDxv%2FACxx0e0zjXYfchBRfwDkBznR7J%2F7emqM5aYcpfyfI2EUzCj%2FscOMMozyLUkvfVExKH9qJKAaYvQK%2FUkVkUljTQZRbv5zuPwPfi5dSmj9IWlPGhkHE3GSMbz5zhzqqq%2B%2B%2BDe2D2AvAzjx795fXSdWVxJL86KnwWCG0hjS8OAJ82DxuIigYRO%2FKRxulPlJW%2Fwf95zzmqDR8GsCNCFXsfhnGIZhGCZb5P9Be3k1aDAUv2jBGED9PzYxDf7%2FWBRtGDQB%2BMAFBHR6DaBqg82t0P2w8YfHTt2YotkhQHcHRHPwO9XlRw1XbjO%2BT%2Fd2Y73YH6m1ivbJnibKMKKlOf1eeRUqf2ok6KQusi9B%2BqsiMjTWZBKV44MGGBo9wmToR3VPlnpKxcTBBNfxn30mK9IM1wI0xb%2BxfUDUssXicwvy4iodB1FPQ%2FrMUNaf4sETNsHhDEmQzYzOaNRwo88%2Bu7OpuTU1mpuc9n0woxWV13laWlOixQNNyLsYhmEYhmGyAdp%2BgwZz1Yk23s5u0v%2FhUVB%2BdAFTTAAhin0f6PMZIL9GMCR0PzxmegZSIi%2BTa6hXpoY21aPXv8gg%2FTO%2BT29uk4r%2BMil67DATGUaorKlqFk49SPl3eMUvXqFflEVk5L3JOJTg7zwhS9cGh8GlRI6jqhJbsg8LB5OPB38H0tvknWmKf9U%2BICchHANjxBh8pUG%2F6GlInxkqBw%2BewHHVSO4xgi6Y0%2B0M2%2B50dr%2FVn0yNelk0APch4G2mRGMdlhQzDMMwDMNkCxbQYKUVoMHcQgaTbx%2BUHw0As3MwAaD6G8XcdyN0UzMai5Hup1kBVv7yvnCH6AtzVjrA62%2FY42Z%2Bn97gEV6egUD4i89Ru3Z3UoaRVNa2kqoTnhb5J%2FeB6eaLsJT%2BqojsNZWuoQFGXDdGye3Hu8ZuV2mBWFr%2FnBbxg%2BD4MalI0xX%2F6tBEeqAu4hgoCaCBS%2FY0pNEMlbsX7lqXV9G9cYKiZSmXKa3db47K6tSodIiiAQseElWnBB40WXYxDMMwDMNkD7m2gkNHwf0jDDCY2IPKzx%2BkdT7FMM7N3sTcdwP0j1NT9G%2FSJQQr%2F26RFIpOfxf4fY4UpnDNV3%2Bf7qiRt3i7Mcso%2FIcwnEag%2Fk8q64JSl%2Fvd88nDjt%2FTDQUp%2FVMoItMzwMjSNdq4fxr4uIsumkq7OljwBwdxKjFUpOmIf2MBlWofkLefaQyU4FeKviky42uZoYwpq0WYGCuhUrl8a7pHQWigS43Dhbbd6npIihTls%2FZnGIZhGCbbsKL7p1Ia4NvaUfnRABCg5b7c7RuheSBKpwLqfjCs10VHWD04%2FUvR75Oz6%2FWTA7cZKoSM7cBhBg8zRIaRUtYohLtovx0OyXYDKf0NRWQZX%2F7LijFy%2BARUxKTQ6gOfSi%2BSqkjTF%2F%2FPL6BS8ULoAsMxUNGBBi7R05BuLWvBrjgJlkmzVGYYhmEYhnkd7h8Reoktvaj8aADA3W%2B%2FcvUbISdQUNwHSCaDwsofrNv1tWj3KSqwWd7cbQYhYz2YZZQ8zBgafEZZ%2BweH8LRC9hq3SOmfb30DpWvypKKr91fb3%2BJvlBdJVqTpi%2F%2BXFVDJxjO6DaFoPo3HOLKngWEYhmEYhvnfJ8cqQu9rXKj8aADA3W%2BXyvMxQHeAUfVTEpDsBMNIHVdNJWbqazj9tVEytrYBhpnkYYav%2F5PtyvoTeVpByt%2FdqCH9db0pdFIhiq%2B6tr3FTS%2BSkN764t%2BkgAo%2FN8pBOqmArxSOcaingWEYhmEYhtEg2%2FT%2F4ZJSUH7H6xpFbW%2BbSvI3ItM%2Fz1MHAOh%2BCms5DmH6pSWHC2Wb7puW%2F%2FZjVTDMyMMMHGXe36qs30%2BeVpDyd%2BkmkuqfVFDxFebLK8%2B%2F8iJp9yQoq5NpAZVVNCBUK%2BArxWMclv4MwzAMwzD%2FX%2BTk2QpA%2BZXhAIC7X7fq8G3%2FL3tnsNsmEEVRdwJEclRLtupIqDYSCyrkeuFKFnjhBUqkbiI16spS%2B%2F%2F%2FUc%2Ft%2BAUYWpKY2GR8z44VJ2QY3njgPgvU%2FLrqR%2FffH98R1rJI5tPx0FeDXhCMbuN0lZvNDCxlyh%2F8mmh5HQBamC8UzrlUMY2vTL68iajv7F0k%2Bci5vQEVeh%2FPyl%2B%2Bjod8GZ8QQgghxEFQ%2BU30AmC5znUMo444328D2KDmf9RV%2F%2F3dNs9WCGuZjALVsyyj8LCZgUT53VPUJw6xW5Gt0nN9oWA3vjL58iaivrN3kSTe9HkNqJQfCL4aEEIIIYQQZ8ECYDpDDKOOON%2Fe3dug5s911b9YJFEU9jWsxTtsZiBRvsgOTb4yHGK3Ijpf5W83vkK%2BvETUZ529i2Qam7EBFSGEEEIIsVE%2BYhh1xHmyaCZBlPlkMhldS93f380MJMqnpkGu%2F8kcRuHevh%2FyaHw1Q768RNR3mXzv625VbEBFCCGEEEL%2BiRcE%2B9K5CdT8Qa%2BrfjtRfjxUA6DMYc%2F8lR%2F4qnTQoR66VbEBFSGEEEIIIYQQQgghhBBCCCGEEELIOwP5LcPxBNTed6Fz71F%2B%2Bf2r0bWvaPrMoYORc7EWkAAQMYiRxhs0QtXX4AUN%2BIqmLSaYMqz%2FOYzONxpPqOVh1B8%2FabovJVZSFVCpm7vfuzgfr%2FJ8ljM6ddYA6T0RPnoFadxFxA2dT9Z%2BAZciefrUGo3UaNqIqg%2BdNL5AC%2FlaBxKRiAAx0oTmAx57EqLqi%2BIRNGHUwGwKa1%2FR1FoZw6QxViKNK0YnL%2BSmsxatrpbz3v50IUZ9V5Omq1KYVcOGqoBKL7v%2FYVwnlIWL8z72AMd9XWpm6sRZ0UAKuf05kvtBscm6aWtF51NEAMUpLsX2TkJW18tkPr25ommTxbw2dIrNRVl4KKUlpwsSuYgAMULu0yG6K7TLLKo%2B5y8wwciaVZbbrJewnk11IxSaikkEF5g0BEoXm4qRFAJvq2UezRiNLVpYzh%2B5BEBL9TjFNdgUlUlzFAyOwykpmVVhZVcFr91nQpnujlL7b3Nyz9XJVi35hw75qPoAx32t%2F2%2B31gh%2Ft2dFGf3lGzr27tn9BuhuVeSdhMjT%2BS25Qvj%2FpsCl%2BPlL2qs93G%2FXX%2BPbG0XTCh%2BG2qI2dHaPYnHltAWmU129JOUOHZAQESBG6PhgmnZkK1NmVfb4qdq2cElQJ2I2R1dEmwdtjYIRiz%2B3Tdv3usUkhwtMGlpJ7qpGb9NGUvk1rdKj%2BeG%2FWnhwQ%2BuIJuh41K3y4u812JUnzWXSwZPOGSl5wqBh52urArT9qe4zpTEGlQNK7YU2fpuTe67G3rql85EjPohRn5cHONjpMxaZNcLf71nVx89%2FuLu%2B2LjOKq%2BkSZBCQQWVVAioxEMIokhQCYU85CFppUhVotLUY89kPLvSRLK98vAy8Whf5sEv8zQajVZM6pnYmaqbmMhAHWVJs81uk6yWgPECTVDTNi00oTSENixtKa2gZRHLOb%2Fv3J%2Fv7Wf32pPU9p3vYdtNyr2%2Fud%2F5zvmdv5%2FQ6F2iwvJDsgojbhWGBnJpd33sx9becj3KhGiXY46vXuYDO7%2F3C9f%2Bpt2nKI5gFYeG8tm9u3duvefzd27oSqSdi87dioKiE0gOUWzauKbrUJBdQZ0isCBUmndzOxAEgkVEsgZysO1QtkazkOOnvu1aqJ0fGZJp%2BwXCE02b5waG%2FJV3qHcLaDp%2FXY3UL4wI57qJRFYaSKgyvD0nIiMCCD7fOv6B%2FEMEVsg05z8YFtx5cwEQ6e3Y1D2Ydt%2BgEFaa98PS3dZBj4JnzJIOigEVaFWg6oQVrLUL%2FyMJHaHpKlTQyEmFFK9wXVLeYnM8c1zUruq43LfdMhce%2BOTjoX3%2BWlTAsW26b3sg4bd7nz5xb8VlVl8RGp0bLI6URnVVa7qqo6PlkcJAbu%2Bu7V%2FBtVe3Wo9aNOS2rsfsPzRUL2rJalF4ne6e6pY96bxICj5FpYZVGR0tFYfy6T07t26BxHQf0s7FfYeioOiY5BDFPXffsa7bULDuFOoUgQWh0tAwYC4AYUC4gAirDNsOZQuahVCrx2e6DGrn5xt%2BC8m0%2FYL%2BPLV5edRfJUENwgjnj3mwLkfK5i0tjGBA%2Fb4wEsNSpsrw9pyIjAgw%2BHxrihSRf4jACpnm0gfDgjtvLgAjvR2ZuoGCfYNqSGlmYekYJ4g9VexR8IxZkkGRaCOg4rRquTNWsEFu9pTA6%2FvyTGkIlWjkDQmGFF9sYkn5NM%2B%2Ff%2FrL5rhk97rMRUzqL7F4Nqh93k0Bp33GvjkJ9%2BxzAt%2B6ftOWrTuVRpdFhTVasiaOTMpqt5r16mi5OJjbK6zsLhzlW6ZHWd%2BMSqauxuwrOy1hY72oJas%2F%2B6mPruso1HHXFuiWQkklBZ%2FiUf0URw61GqKMS4V8%2BgGRGEQXug5p5%2BKuKALRaTvJIYo9O%2B7dvGl916Bg3tjVnZo6zQ2ASpfJXAACJ%2BnR8JrAnzXrsO1O2RYZavX4TPdDjb8pHFwGqWqSafsFJdr%2BerP1%2FtUw1KWRwPkjKeh6pOukeevLUhjBgHo2jESxEEk72O3HJu3ARBCBCDD4vPYmCYgVKSL%2FEIEVNs2ND4QFd95cAER6IYMdmTp5Hb5BO6Q0YekkTvCxNUvoMNLtvs8zZkkGRaKNgAq0KlEthRWsuf0zW7YKzU6%2FL89UgFDt0M1bl0RI8duAYhNLyhfs%2FPunX1Cb41K0zEVMtW7i8PCjwz4PUcBpn3XfIOG%2BfU7SW3mOtz2Q3i80ut40y1lvHjoy9W%2FfPzE92W7WK%2BXi%2FvQD23iUO83HRfUo65tdJdO67sXsl3SJnQvVi1pWWIT2053FFeRLqG6pNppjam%2FsU5w4cWLqyKGGiMywSAyiC92HtHNxPyAoYJ5hvduT09NEUcg%2FvGvblk1dgoJxdCV5qDuFOgV7qZg2HTemMv8i2x6HsiXNKpLPkGZ1OdR4Oq35CnAZ9VtIpu0XANyEeSlchxC1mPruMSVP%2BG3m%2FJEUdC1Spvfv2nzv9vt3Gwjd8WIESUv1Bek0N5qYjhGRIwIMPt9UFeHaj9wZFCn25z1YpCELw5r8trnz5gJYpBep%2B85MHRYYwePHoShqsHR7dnwl1tKttcLzoEchGzZmPBSJBUWivddZmLFmq4FNimEF%2FhO2PyA0uxDNM1UhVKKRtwv12pBMSPFNCeJgqLplbI6LG3zsu98xx6VWscxFTLVuQvFslI8O%2BywCPtas0z4LV5F9cxIeY5%2BT8Fac4%2BxwqVIfa%2BALyiqLiDXaUyefOnNy%2BmirXikNZ3mUOw3t3P0%2BPRokRFHJtPkuOGtdjJlNUlrSxZJafa5lhXfvZGByqXGF7DB0S8Oojn2Kx0%2BfOX1iqt2oisRIdAES03VIOxf3xoQIiYKAcqk321OnnnIoRg8MZh%2FY1iUoWFGhPUSoOzV1CvbSZugE%2BzH%2FArZI%2BJWh1pKXue5eqPENCkKnNV8BLgO%2FhWTafgF%2BAgw3F%2F7W%2Fl549fdOTE0Gzh9JQZciZZpH0vvbpHkrDxBu9yoOyVgzlMiJ7nwphKlhVOAYiQCCZDdV76iiuMWKFPG2CCzj%2B1UflvepAAsugEV6dyG9uWRT19Tgny6ciNbR6X9%2FUqi2WrpCfi8sXUw9ATuMED8uhowZ3aTkgiLRRkBlDKhKEOnFsAJafH1Cblj%2Bd9Ugz%2BQKCiBUB3TztkGmEgcpvhMPxSaOaIN5hs4%2BdWpDHBeNUE3L0UfmgtW6Xig00XjW33WPfHS1zySYsM%2BtI1Onzp45CQmPsc9JeOvaO3GOy9WDB0WPa%2B4E9YxFIWnKys6fPz199GC17I7y7R2H0CW0syOiR5kQRSXTNiSOuxcz0zrSJLVjt9o51osGWeH8UgOT1Az5Qll1i1o85ef2KWqtyVP%2F%2FaOzJ6cOi8RodGHLnWu7CSnbsJd0U9i6TYHoIOqiIBBcFtV68Ojxc4qi3aiUh%2B2EJQBFzLpt4ydcRYX2EKHu1MVRJiYsdGtFk9iPhVae7bVzDPHRf9Ucv5e5Tj5U3igQu6f8r8Gm0Zms4MFl1G8hmR6nC4KfgB%2FBVTSs%2BK3tqe%2BfNuePpCCmIQlrdSNdGD86GSW9vyc7WCw5EOA3wq%2BdvWcLh608N5qYqJ01Svbd49OTDD6jinBNh3VnKorIVNqzDRbi%2BOT7BQ%2BW96nAUI6Jr2SR3sGlpDfXRzSFex1yYRVh2sfPnIOlGz2w3yPaXncuHBl2GFWqlZAx00NBdZ5QUCTalUar4VDlkczyWAFh%2Bb9LLP5eyWdU6%2BbdITd9dPqJkxAq3bwsZSpJkOI9MGxDGUl5eBVUtVygQahdklj095%2BwzIXz%2FSUU6inVZOKhgO%2FJF1XAa45gmn2u1NQ%2Bz0DCF7LPCXgrxfPzW%2FUc18YPqrOeTaUeSvdn%2B%2Fqy%2BYJjZTM%2FO39q6nDNHeXPmCfeScXHrocjejRIiKKSKavO2qYNXYjZz%2BDJM%2BX0h%2BpFzZqUGJiMeaanGQ6M1lS3aK67r7e35xsPpVJZodkVlZifzZ49LhJTEonZ%2BnkqiIQjZT9C5J6nzYvoE1tzx%2BZtJjoww329mX4RnYzGGCr1w9OK4uRkq2YnbN0qRxHPYiSI8kVXUaF5Y6s7HdfoaNWKtqFjMr29vX3Z%2FgVWNtUrK6UZINaGVCQe8Z0pL3OdbKicqcfuQ%2B4pZpD4bh%2FItGPT6ExW8MpljCEDvxEaNiHLyvTiV2T79P8Cq3FwkIIfwPnzSMH8wzCA8MNEytUB0pjKI8WPTsa0aoFaQ4tlvu2C91Vz9YAD%2B4olSsNWDza6RzBZXtaiZMKLguDzcI6oOqg7U1HMIVPZagssxBZZwR%2Fw%2FcwCsPipAAuh3if%2B00V6md5cQpir1nJuA14n2kKL7aEp%2FkcsncQJPKLtd%2BfCkWGH0aG2fGsaM7hJ9EeSBYproxFtpU4HgKrnoVRvymcFgLVx3pCMWHx5Qn28VVc7ZwUFKlNPSj52Un8vZSpZkGI9MGyDKFwXcnbMMx0cOttgZAg1QgW%2B%2FaTKc1CtuytG%2FycHDwW8MFpXsuIIph7sjAi4s89PXzh%2FivbZO8gJeCvFc2daz7Ge1XQKgV5UyGYyYGUioJdmz067o7ydr%2Byk4mPwAPw41o9OaX2zq2RSZw25q67D7McBcvLMCkpqXXvY1Pem1KdoMDC56GeuDzRDowXdksoEk7BEcgQ6JObiRZEYiS4Mp3ciC5J8pGwTYxu23S8T1ycG0bl3l5ktgZFGYYmJjkRXaoLiwjMzpx8%2F7E7Y5jvWrGIU8QvzErbusIqKMkjeuAuil116HT7zQuMKuYqhCZp9ygEFMez81Ekvc51gqLy2iDcKRPY0uK5VF3I95vbJfw02jc5kgDcuwxJ0%2BwGGCKQQq1hk3FhYZEZ%2BmpGCH4nzR1KwwFngMAysDxkpcSrQGKRLaDnQWU7oZMTTjhz7jqoXQ1IwVw9AsO3eomMAd8%2BiZHVB9QMXfC4XST8Xn4lg3RlEsSw%2BzrEpR%2FwpiouE1ZMyWAj1Hpw8efYHAqu1lPRmEOZq1UTl%2FkP%2FnNZMK9OuKSPQOMHBivf9%2Fe5cc2Roy1BKDGMGN4mhrISBokhJzQSI9kHY5myeBiZgBbPPkhXsuOeu9fOHZAblCePIZ0DaoT4gUz%2F8kW5ejTKVSEi%2BFqEHhqaEulVSCPNM65u8w9%2BHyEzZedmnzwbVuoNQql6pTULxfJQCrrW3SjDtVO%2FLmn2%2B%2BBzt8zwHOSFvvW2Timep2lL1LTTMBXorGt3NZ0TqIKAvXjynR7mY6%2ByVa8EkVdob8OOwrO7tP57SSqaaOGvMXXUXZj8HWJRnHhoXW4KFpNXxJ0%2BemGJgks%2BMZ9SmGZA57JUTY5OwkJjohcQcP%2F%2F85RmJLlRLzILcDNLpJ1YeKW%2FHYhs275eJ6cSG6Dw86MzW%2Fj41VSjkhejsyw3jhF168elz0zhhu%2B5FMGaVoog%2FJzKIWwsq1CRbHN0xqxICKaI42eTJcYXzr0p4giYGaPYBdlVO2n95JXYJhrrOXVvEGwXCe7otuK5VF3I9cPtApsGmUfjgwLcJnxzWBao4KAarArSMJUs6jNGLn5MU8Cx4SG0YBtaHjJQ4ATQGacz1Xbqs5UBnOZnxbhw%2BogwbUIAkA3qd98a7cnlTXVMpsE%2BgQki1Tvq5yKo9N1acdWcaezz8mMJi%2BBHfZ2mwLNRbabQ1Ji4yuPj05obPWJhLFEFu3%2F4itaamC3PD0JrPXpqRmAm%2F%2FwIhRXTnVmnM9ASBLj2lxgxuEkNZyQLFJTx5Tx5EW6iTsQKbm9wL2zN19uIvHCs4kN%2BjrMAzegjJqJFCPsN5d9mwTAn1qjOhkUhI%2FnQZemCI6o0g5Iw5Czj%2B3uHP92cyOLLIPiD1JwCgVP0xNEnDQ%2FtsAq5khfsGMH2efdaD7D0iAW%2BFtwHxrJflDarOEehttVwhZ2q%2FE9ArcpSP1sumsTqZZ46Kj7EG%2FDgsq3ub1kqmx8VZY%2B6q2zD79X%2F11gTEGkvtnoYlz561wCSfuShGDc0AY9KrzrK1BCExAYmpHz01%2B9Ll2TNTBy0Lsu7mkLYmVxopG7ERmQvd81S0PjGv3M8XnWZjtJDrs1kVE%2B1AdNTtbp%2BcefFXF3HCBh%2BWYMzqRhHjmkjl1oNwtHBEyKzyYj6y4dkuHFcoIOZZ4%2BEJmmA2GKsmKloN0A%2B9ErskQmWXj%2BLgjQLhPeV1rbqQ6zG3z6o7ytaZbB2nBr8%2FY9FfKwDxBsUw7g5SwOjFzPMgBTwLCyB1NnFZkHJy5SKR%2Brc2zJXHseVA8Fsno2V5AAW8Hyl9AsG2e4sbzZ1O5QzVJVQRevTTK%2FGKVO3hVgnWnZkokvgj9YTvsyRYCPXqCA%2Bk9C4sJRF7xxe2I8yl5l77a20%2FXEdDKgutOfOixEzs%2B3%2BBSUK%2FSrYk6rw%2BZ8yKVqF%2F9vw5uEkIZaH0JGGg6JIITy6MNvSdak%2BweUCFOKoAVvJ0VZ0S0bvKCj7qGT2EZJpqpHJpZCBxpPL7KFNPn6NMAVQCIMUW99IDq6KeN5Pp54QdHn8eflMWWXm%2FZR%2FOz8g5Qxw2ZgxNMvDQPpeq48oeUwHBhFHSfYvaZxxkX78k4a1rPyXeBsSz2J8C17U4b2NMuS0EVPz4y9cunz9ur1yShDG7ZxUfpQKKvWW5An2kCJ8%2Bp4ljy11t7DLMPqM%2BOGFi3a8LTis8ih%2BfX1KqmoWXTT36abHEcJbNIDWRFckV1Q%2B6dP2l2VPIgmgJyc0hraBPaUWQ%2Bo3YRbZhm61lJzYSfgs4104b50V0MKvCpnJAdFRTT56%2B8MrLF8893kIwZlWjiL9axs1LqLJ00gVKwKvYDhsQ6YbB91c1YDkcuVNB4de%2B%2FS7L5pXYJRAqu3wUB28UCO8pr2t1K81ac9fXSQpkXBEcNhUii%2Bwcou0iVngt%2BN1i4%2FsUquy%2FRi94FtYsgNTZxKUjHe8Y6VhzMUj96jhe36WLLQeKH8OameXJ9JmzV%2BKgz7EmUHiLY0C503Ly0r37A5%2FkfEA%2FEVL1YaHZOFq1p5kU1p2NNRtzxD9t7gi%2BD2Hhxd6CLDQbTQfLYuL5wlLSm2SPqhmVGqK%2Ftt2qm9asV6A18f1fvmzfn0lCv0rWTcfQDwQXRn6OVehPnZqBm4RQFktPEgWKLolmU%2BXLakCl1hpvGCvA5IS0kafrl2dOtsEKEFLxjR6MVCZoP7dhtn0mU89RphCR6QxSvbkSkBYeJKQe2LhOTtHDk81ztOZ46NRxzrKmCSHPoNto1vvpeQ2FxoyhSQ4e2mcVXhDMkH2uRO3ztBxkuLfeQxLw1g2f%2B9pu8TYgnsZ1yy6ZKVVmNRVQ8%2BNfsVfiJHYyzxzPK%2BQ1RWOVTCjQRyXTM2KSkbvC07sLM9ftAaMehz8hvMYtefqweRQXwqnqjYttemZcAcPESu5L1NEP0Sd%2BUPvk7NXfXdYsCEpIYG86Rjp4gH1Ky47Ub8R2vvGEXquDMd%2FsxF4o4bcRzjVFB7MqLKfhREfi8a3p8y%2F878tPn0YwZlWjiG9Z0RiKc7QwXykcRqmExmcakS4hqOQtiy2z2ka52pgr%2FOqzLJtXYpdAqOzyKSIS%2Fci3vtXUTeWeMs%2FMV3HKDF7DxmQGiaNkERw17LWUiJVoJXoBqNj%2Fy7%2FhWSB98pE6Rr4EpDI7Cbx%2FGZBGR7nb9V1YQcsB0zzluSwPnb2GuUQLTXclpiqoJx5ktAj081cB%2FbQUuZduQrNxpGrPRK5So0PiPlHGeqPZI0FYsD3e4kD2hhcTZ3qTTkkce6xPVEv5jOb9J6ApoDWhTO37v%2FhbfH8kCTfdNn%2FhuYQUET7OZHSvLR9m5XAzYngQysrv4XiBxYGCVq%2BtJCg%2B8NNfVZekKVKYyR8w9iiwUDpemyNP11%2B7BFZgIRXf6OEnWOB1HPRS5xYZ1Z79JWSKEZmOIJWV2K0ApIUHCWlHgVLtFKou0f5vOgKAKdKQfsgz3Oyca9Y7O%2FtTKNWYRtSk4KF9JsEM2Wfdtwzt88WzU6pfYuzzan3rxzdv3zs02hCGkc4VXUX2QA460DHf4bTz459%2BGa9kZdqSBwLj2aj4GCmzkqk3O%2ByY9C8vInfFp3cTZsZL2PdflspuDS9iadRjX%2BBRPIdwBz2KGMa0M01GrXGFsQaOAL6EHiDFlhH1IgH1GzdcFmSQ7mKHSPvYUL38SP1GbEwDhIV1N4WxE3uhhN8nvrgjXYDoZFCKiVkVyGmUIDqD6UGxz6cvXHv9RQnGAMXmj68OFB3edqOXhbi0eh4UhmGUufn35YBI513RuIxg6o2sDEcYsgy8qtkK89k0mskSO9CsJEIlDgk8PvIIeDzejpH2cqtVm3lmLFJOkGmUhrAbNBwkrhiZRgg46rXkidXQgsoD6iBY4tVXcRZIn24RUmulWAak0VHudn0XVtByQOavBTsZVQf8C%2FLr0vzTXYkJzzQfkbQIdtLoJ1PkXtHeDtT2h2AxyEiHRH0j1CaR90dG%2FqCq31u8ihWwQjFx%2BJ%2B%2FZnoTdR6x7LElmmKfSu%2FhGjRFSGv2yvefPPOMas1pJAn5RL%2FwHGlXN7m0gnwYKvRLMJXPIZQ1WuB4gcWCAntfUVDkTl9%2FcKBcb8pnVU4N9ggLg1ZyI0%2BHTvz46pvKChhS8YyeuS%2FKz7HPSEW6P0NuWv1cRmQ6gAQ9X4aeX2ZIPs3hICFk8UG14WCw3cpOHUW6aOfDalFysOaapvn5TMwYmuTg8e1zNWKflZybfX7zyqzolxhWtXrf%2Bskv3ZctVsbgxIuYoiI7i4kOiPyaF9J6%2FNzFa%2FJKSNiSSug3cCAwqr3BlurNaCWTluhcldwVn951mFko6aiePhPXN%2BvCTLNM4FH8Qp9JjyKOMUH3mhaouzE6CNNnXY2zYstrQP0nr7x9DSUkdBc7R8pC3%2BVF6hMfFAUG92BEO7GZ8JvPbo2oc51HKSZG7WQxZBPOjvyaXBFRqzdfuwQU2fu%2FTDKzwig6u%2B3GBnEHdLocCaOUrClW3w3mTL3qjy7hgBNXN162MN%2B%2BYWikl0H%2BSLMSCJU4pDitajye7oe7r%2FWxx3TWFddEOzwmB%2BgwsifCpuEZsvvAvJY%2BGw6ZFgdmbjKkG3mjUPNWBHcDZ4H06RYhRZecgPjwkbKDD9Vxdn0Xs%2FbI2du1nJlUOjTetQUkbIO2EX89aY9kp3vszznzT86j0k%2Bzk6%2FpXjNF7hft2UsJiwON5xwS1iY5vCEnz16f8mDpmB98KYNlMXH6ny%2B8SqdEXKU49ogYO77zhDbY9srrMuDHTYS%2FRpAwfevaBSQJ5YmfWrtw4Xkqa7N12i2b2ZB2pvLSSxLKavvjBeJB6WOzPiio8mUDRe7UrGvoxEYpqIXBXB2rvBmS8NK5519%2F68osQyoh4gmjB%2FqQyttcftln1UOQdOamX0WRDrlXB5D63PieZYfkc20OEtIaPlBt%2BM9st%2BrD2XdHLaU61TJj%2BM90q3Q8RRXBQI6h8UxesvDQPo%2FXSohIKsEM22f12s0%2B%2F%2BF3cG9jWNWqfCvfWGuqt4EOnkGpyNbQjuVOzY8H10Vl2qJL6Kn5Oc9cq7214gNJZ7hzIJfDLnR0DU%2BnSe4uzCyUxEkezOWGVarZtwIXw9j%2FlcszcR4F7T%2BjAgzTp7RlUmz3YDbtOrIGRJCaKjB%2FlBKSo3Wql46RoqEacZmVQboxTHxKBbsHI9KJvdDtWLRbKjoDMAiYFYUGKkEGw7XPolZvC4ojtRLIzGpFET9euhEM4k4ZnY5M0bGRjhlGUBmV9UeXgDKSfevoYRwQaqRrXiViYqBSTolD21w40XK%2B3s4GK%2Bw5JgfoMEcnwqZBtzl3iJPyddl8YvosacdTxl1IFfTpD7L%2FpE%2B3CqnwtOVASrAc5V5vWn3SY48%2BOmF7a1X%2B1vfLBltFwgGowAEQ0cWMAGh4Kms%2Bieokt9UvvH4tnCL3i%2Fb4UsA6Qli4DJpTBBF8DMmiTSLyZJGr6L4UYIGgiAQ2kd50%2Fud1pDerPNcx7NEUAri%2FIhJw2QxqyZUogD6%2B8YYmCeX%2F3%2F21z21YqPAchUd6vTor9EWd9wzGjBeIAaUU1gNlqnw5QLER8Mv3949Ux3DM3SgFyadDqaacl1GU8FLtiHz8P9%2FwQiognjB6as4RpkeAqj%2Bt7qGpj7T71L9HRIYy1REk2MFlghQ%2FhKPqHC5QbdySpURbpJ%2FHjkcNMQPIM2I1jriUEAx8lmNoPJOXMDwfuXur2mfdjhDB5L7BmYN9fvb3f752IYZVreK3bnBvbIwOqQ9qHTy4ZM%2B5lVCkQfv%2B9UtLKKGn5iePximvud0Us2OVTNkgdCTyS5PcdZhZKKkneZ%2FmpuDQ6qoiyUX2f2lRHsVGj1EjTN%2BDEVm1musmMn4JgXn9b2%2B8AHeR6qVzpCnEZZYfKUtFSXzyNvosE%2BnE9m7H8kMx8DSUqjjRqajowJKN5Cxq9e7rz5%2BbIplZPSjiF%2FExd5iyuxK1UtuoDafm51k1EYnKeqNLEDVm3Y2W5uoRoUZ65tUOKxHXrw6olFMzPb1K2Vy197xTHUskecZQOT%2FTyGRkWj1%2FAC9%2BtVWt0GfR%2F1JrCkmfWidmrr7j0ackIeV1IcM2szuIrTdCYzoUPmPrvNHHkACr4eCmc7EXgMP3XZR3rnDu%2Bh%2BiKXK%2FaA%2BCpgvEMyRy1nxgsPgXzgXl1FkfFl0t3lCG9KaQGlenijqPt665Og8v9L9gitCxx2xeD4ekJQr5XFAiUKopIXjvtUv6xCEjBH6VjiYasGewZS5aKhI02GOF57%2FxxgssBlQLEDxQUOXLAop65LPaCFhrCiuQl2v2FPkEVaoIm7dqglc%2F%2FuzLf35nLqSyMUI8YfRgiTFuEWpdqgpMfaSMqSM6RZnqDBKIyrJD8rm2DRJCqRWoNi7gTPdB%2BnnsgqPGlnzUohgdSFvrwS8uxrDtROBhWXlT5DZNghm2z03hJrkRfPe%2FzHGVGPu8mt7KIOS2b8gbIYU4HylxuTFaAWlySFynJfTU%2FOz0xL9hN3FHjHAnJZiWunrTM8ndg5nh9GYdroM2ucKhRVUCujw54ZH%2BCkakxTEmRtMrmB2GEVnCgewLjIFG1iafeubGX9%2B9doHq5SaRpgZXCilLRcddDlWYopGRUCd29HYsPxTTwrtU96Jhbawp9t%2FiwkLIQWZmf%2F3eO1dnjcx8dv2qQhG%2FiA961LkkFbCcijEYVqdYkyenpoQodDSC3JagKDtutTRX5BUaKfBTOqlExCColYfKq0OAwzLO8roIDWXRO6vgeRNWPjI%2F02LX4Wn1xhUZmKfHMsFfoeYMNYVGn4ZcQPcvpE%2BAmiSk1KburHNkcAlGmwzb8g8NeHtssCUSYDUcjzzS8hb7G%2FDMAW61sey3mSL%2F6qfXzZmQ6B0uJYMlADk3nM0HAmtOFh2sQmTqrA9rPPhSVfdMlcDBEvhyyr7WH6%2FouY7RxkwRguIrB9brP5sTE83aaDEnfzReHenvN0Lw9tUfnzhkhMB%2FCCIKbog4bBmipTJ3oQJqjE%2F1BscL8FPFgAKC0nygcssHiiHBrwsraIjqlE9sYVJ1OMdQBaZ0CsFCJCT%2BFoRUdnzxE3BFAuKJcA3%2FRe5bRG4af6Lxe2PqfwL3okx1BilTWAlIXHw%2BaA7C7Aido%2BdCkqWQfjt2uOJzwh01lukJEqMDuWCUwktk2x7XSgge2mdjlqgu9%2B1zbQTfXe2zcRWGPLy1Wt%2FKIGSrBh2ivoQ8Xlwvq%2BdU9b5gCf2iL4pSv946Pe1G06CSaTSSuHzLM8ndgpnhdJglNU%2BawROqqMXLcHHhr1i04xo9ChY6el6yMaamMWp0iT7cg3r6RlXYE%2ByMvE8UT78jPO%2BF1UtSkbJUFId8H5iiDfsNdWJfDt%2BO5Y%2BJqrVcaIoJttFRFxcWPSxRGjEUoN1%2FveHIzDe2wTwvE4qBvjgU8Yv4Aj1qcVedokMGU%2BAkxehgcqxydJhKpJhkAlN3NGMT9VP%2B5NGsRV9quPJQeXUIcGTRZ1ZrWAEKmw1SvVwpK4ohVSabZgdAPsSmy3M%2FYNx%2BgjcZcqwphWKDvSoMQp9cQPf1%2Fwd9ItQEISXJtg4%2BjgzOwyMJhdZRd0Rvz4h%2FaLwrcVT9ua5E5LIJbqtBtIxlv%2BtS5AMPfj04QIxIYOYKBM1gwQNCARW7jh2sIp1QhcVPSM%2FDh8URpQKc6c1QoP7%2F5FzHaONwirDPsVeUjssDD07In2VBCPoDQvCX6yFCMH%2BVjs3mz6XQbaWT2%2BqokbXCc%2BRuavxUiwKlj115UAwJKkPSB8s%2FyArw1alvIaoupDICUcUtuj7RthsM3OZl%2BYPB1D2ZSggkLj6f5Q0lRPkwExmlbqGeey6cRWvQx2WUCIVi5hcuLCDb9losk4SH9hmGea66XMs%2BTK%2Fgu8OSGFdhbstfq%2FGt7J3VIOSEEenRoZSLMFg9ZzYwMn1%2BCT0j3fEXRbkN4b%2Blg7q3%2FDeZuNSI73ueSe4ezAynw%2F23DB4scj4tPqvzV3qCWU5XZr0Raf7YfJBPNcFg1FpJ4%2BrpxcgWURTVg8aIoSCGHKiXfkRhEoiUngk1IdrE2ijUDXdivxCtFPXHROFVzWaQYPtmwXFwpeJztFvIzMyJFs3zsqBoijTHoIhfxDcW6NGai7vaFB0jVlU3SZEBShaHsG2WEeRIMUnVLmdwGqmJ0C%2FqPjz7s%2BhLDVccKmcsN4FD%2B1wsfDvGJli%2Bkm%2FhtDnCmyufyaZQ6w380VGlLEni4oMOjrmQoIZ%2F%2Bi0NpvQJULfe%2FZHkII2m%2FWxwXwatsajS7Q%2BF1p39prcX%2Bptg0yssN%2FLmukZH%2FjWt4MdMKIsIm5EDtA4RCWugRH85YcHVDEqQbOosC4vZj8ygI2uOFhg3C%2Bclmt5koD5eG0MVW4pQ%2Fscs%2FhkpVVpNBI2VZ%2B9dgBD4VTo2m18vEHIdcnn9AxgzYPqTVo7zUy0KVKu2oqB8d0Le7crss%2F0jxgrUQUWmFQkJMO2%2F3njmzKQT1Q28RbeG25XwLwA0KJFkk6neAb8wlZg6hlSbWF5IXHw%2BubaG2dFRIAVqKHXTcVc284uLGUNM1JWwF0KhddUEVrJ8FSbPa7FMBh7fPvfxH7DP%2F1wdM2oess%2FvWG7rvi99Mua5q%2BqtJNK1R41I4%2Bn%2F0hr9p5y5mjbKq5izFtcrv2WhByuZ43i0pWL4b%2Brbo%2B5NKSRUWhDx9dlD8jFzaxlOt5IaVL6oMKu%2Bs27ulM2o%2BJ03Is0fm89gAKg1noeniDVL%2F6PLiODzUGBUvTw1WWMFSQKR0jOxijgh3dF7MLDl%2Fu1Y0TFRjrBUGacSA0Q9HEbx3is%2FoXleFhR4%2FUMxKGIX8Y2JiTA9Wndx12CKTiUS%2B2VpskWMOUsHA17cYjGJVd2L7waNhO9mMVbP%2FixhtvGKQvVx1JqKQxfGPrKGiCtcFNOeYJNqUD6TQQVD%2BIoCMnM2I3MxMI%2BpV7LzKPxkGgxQSZ8SgpSuf7Q6DrS4iH%2FY1nLgD709%2Fs3cphfZaByZ7dqTNkS8o0C3GrV0ahyMVb3rDlAoPKNRRjZQZlXQCIuuJmDZ1NlUNs9pSvKBeJOCwuJtaj2ElUqbM8pbqetW8KPJpyAmbjrOi4n7qrjxd%2B7eP0qu6joTXdggZgT2wx5%2BjJ8NCWsNjmORwWQYYN5o3oCZKMOgQRb9o1qtMp7SRK2g9vK8Rr3wypLX0j%2F9x3u9etVbzyWrqrtVEpY6no5Na5QoJEpAerEVi47HSBmEAfkZWaBgI2xkjBRbsBjlnfOdfb97jrZKR3Vdfaurb1Z8Wy3R9%2Bu6957z7b2%2F%2FW1QPE%2F8s2ZA8gPg2SsuRgjYIcc6I8YKbhplh5xl8anwPPyo4qDwarUbFFkBKTZSgqBLqweBp4ATn4l%2FeOuofVRRT%2BUUXZCGbnwBQJitJctHkcGDeqayQgKHyRsSK3L8%2BRgggK9slg8zFoRObxTPLx6IjKULxk35SLr%2BE8nyi8cik5U6AQ%2F35yS7kezWrqh1Hldxta3I5972q8aJNLPoQ0URz0BCP1lmi%2BthCj2oZI7zaPA9fuXMc%2Bq1ilDISprx1exhIWCmoIvpdDBr%2B9M9W2rQ7AI9KmCR1qAd7GqxzWdWoOYxarObLb%2FfLAj1MdTj%2FQfmH065LMyKu25a1Aqk8KLMFSkjEwnuJ%2BB06E9NASw1HSvIN0GTCi6ILoOabF%2FYWiMhSA4o1nVdIoq4cCtZBGEQh0l1dNGZCJo8YZvmKEuJuUsvu04KCPGXDNTg%2FoVfI7L%2FxLyN2wq1IQ789GGOxkqsM9lZUKeym5r7Qre4zyFJzDx7oMnpY4TCw%2F5SXf1rcOel9MMy2C%2BPz5I%2BdRJSSrqojgNAcwWceGtp%2BJNGe7oJmTjoP0Qe4P4S3QzD1HbhjquU6pWMjdlAWYDhTwiLlQjD%2FAscQ0zbWc5QDjxnSxd0mwVclDfxRiM1Lp%2FWqVjlXvhAFXzAF%2F%2FYU1XzbCEEq%2B8jz%2FY65Kquzmhx2JrH5LZJCM9D7Qg%2FqruYyomCGigoUCDbeYJiIxXpAICI2l5kSP4zgUdV6qnBFN1efiGb1O%2B75YPBg07TZ4OEn1XPD5JuxOOPRb4c83D7YLAzUXNCGhn%2FxyNxC4DTaG3CyqJ7gszelMm0Rlos5zMevT8zvsL%2BjG%2BqFOG5nz4f%2Bdzn51V5yW2%2Bfh7kLhHPlBLNhjgUv%2FgjCD2UkjnCo%2FsH%2BBX6uceMQhAU0lxU1kMT42NLZpZzIWDWgq6iMOtuC9ZstrSlHkN2yB%2Fu5DnB6RFcUt1QjHrNQ8uWJo5RZq0JKPUZKEhAqVuBFF6Up3JBqiOTXvxcOB1yaopn8gFYND4OzLSQQsMFJaEmBTaszfiTCkHmHYr4Sw2ZAFrh3VCFVf2lwD%2BTTZ6g0uhipFqGquUR30HTzwR7yasM%2B48u%2F7cVaoijhzj6kFsGP3Y6b3WM%2BJ4uYk6TzJ1Jk8Rg0%2FTP5PwnHixnkFLbx8ElPkmfsMB0EFJKugJ1nG3Vq2PYGG9tkPKn2sa76X3n4djY2McI9Fr4p0qpgmUzNkZGgjNcElj4HLxKhIj80Y7s284CVujzOazdZgVW7%2Be4cdeilXu90dWY5S2mqUEJcsizSQjGuBOFHXKupWpSTMTNZlaeqKRLj2hH5KOit1h2UFINygcUnXVIsSs4UW1PppCkydN66ievDdzo1Bd9v08Zk3qmsChfmQVSrQ2QtMkCf2zFLiNrPIMdtNCKzwIPUQmiJiujU5yVgowrQ6Y10mI5r%2FFoI26c%2BDzyTxV%2Ff%2BbnnoGGt%2FGqLL9tC51zakKcKaGv2XhcvDM5ypFK5jiPFvdW4dGWLW14DNGNVMUkxldZzrnAfEWemLWgC6U%2FMeg1lS2xpU6cMwrpcCftBEfB6tJ0ZcAmRkaNebu%2FDccoeVKCB%2BadV2YVpc6KlMNlckTK5RSSJGl5RObNTR6rpSYfb2vjY5ppYYuSC%2FJPY6oujxBk%2FqLQh44uChBuSfnUkC%2Bpn6Y2OmL%2FQs5IyxzDhsCHPAdNXwM%2BOOyUFazbqMp1M0te%2B6ESB4YrCo61yO52dxck4FAH5SiwesXOJHNgJYtODktBOe3qRkLHSoBNxTRgRU4bDvokC0wnIaVAScp%2BMPzxf47c2kI6Pxf3HFBIsOlKShxstdUTDNZ9Hq9Ob8iKwoIERXE1yUiMiGiPPwzugZjuxaFjWwCLVp8JrNDns6LdZgXWI%2BZ%2Bkfz3XjxRr1%2BOSsoA2BAI1i06dvLsf3iTH%2F8VYZ0cOqiiKN%2BKdv8a3gDhOdOLgXaEPyI7qMS4LQ9QdNYhxaZ4IlDbe%2FGE27Xx4Tck2vSoaFw5QECZBRLuW96QeHyAJgs04bDLiLPLkWErfSX6LPAQf4CScRodcIMrRF4BgxXOr9Mtlp2CRze0Y2NWf7LUk%2FszPvcMNLy9V%2BXzWf1D3zNfmslWUUIvjDrxzuQoR4hoIjwa7Jnurf3s6Si690Dicr4AaZbzytZjZvEnN8zaxglWb86fd3SLiVRLgw4xWru9hPrbx2aZUNdt8XzAUSqDMoeM%2BjakfUPt2HiE%2FGdBCr%2BjfUfyQspqMW0vytLyCIZXQuCXmny8eUZPCuPvhi1qIvHU4oYlf5e41M1zFPrQ0UWPwWc%2B9NXdazAlPTFG8Gx0xP4FvGsLCZU%2BKjVYGtJ1BTFOv%2Bz7IqQPKtdNLHnthqocTCyOPvS5DCcSGcg71GFT6GTK2JnAFH31DPB7cQvt6tJwhaYwY5uronrAAwBXmHP%2BAtNJSClQqknZD4Y%2FadIOF7SDuQbo8U9hL5LurGSMJjgAxD%2F4zYqQ7TGkokNWFLJsivZEIJoMSWaQJFMlOGLaipMAi58QYeFRUyIriUgnPVgjcr9qFdZJgpz4xV4OrfpJmtedKUiBPDuoEepMPcqrzCFiM1PaE3iL8UdkB0UPm1xAIeMBVtCIYlN3Ixk7xCSOaUtLetXn190yW2tAvkPxRZqmf4UBZSZI%2BKRyh8SCvKvIjQ7Lj4WJqJhyWaptp4iJ0o1vHTqGEAQP41%2FY3Gg1wcP5dYZr%2FUjPPuoQPNyfJTBNt2kuK9ymM%2BzP8%2BqqJNK1r9fSabk90tNJCT0ZtYx2%2BlGqZL7p6giPDtnzKvTkluVRRvQK3rP6YfcAM8sJrtQk5moMM4s%2F%2BWHWueJ%2B5%2FmAdLp1yVmOMhW4dJBQP32yQUL9arTFywguZgU8Rv3PkJnxOoJWRx6YTEjx2SPj9IuckHLnYTdMWZpE7Q6LwE9MPvBD3vHnYKjfLfTUSiX%2F4vkDLjO%2FUcRbh8RabmxYTKsmKqKcFEcVEpjqFhA6plDVQU0D%2FjlWXRhOrBp0%2B75Y6HiV68j%2BozKAbYYa4qgZHKtQcXYSECo4woP2mZ47plLP9Im8hnELqHQlFCqRZ4uBJnKVpE9e6aeTkFKgNCa2YTD88eS69Bga4Vhf3PPEWYc9DJOc2kAgupkZ%2F6gGH%2BK0oQawyLJxqxl8l5HHoGjPHTLBixqkpCtB9MbAS1j1hrA4mkAs%2F1FlkJwKFzkvJ34xSdwWJbCxJ2HdEjVrnq1ba1FyQAEC1L3L0lJlOSPeYsxkZQTFYe35gGLGozHFZgYeWl2Paf9ztqQPkF93c7YWvoMHmN3JKqDsHEgU2SyFGNcNWOMUsWFnyrW%2BWLBdtlajx8ebr5p0wmN0yoAXn1RdphVcKzLtcd7i0ZabqiPQ%2B1OG%2FXl%2BXZVE%2Bht1zBRwaUxkLymh953zZbTTSatkhojmwoWUy6%2Fx61YF8miY5sM4E4%2ByC1uZJ1DRaxOYAS2CmcWf3DEzVxzUSjH1e9m%2FQW5cuLQ3QODN08f0EBhEydIWX%2FYrXGTUn75ryW9KZhBeYEIq9QPTCqRY4F86lRHp3Z9a0ixSMh%2FchAkZEDMBLiImH43nYPB3q0qaKvTU4mpcYCpmHqOIM2ovusCnP1mBiw6Uk56jCugd%2FSE1cwy6GQfpX%2Bispi138go2fuX6wx0ElTiCpff%2Fsp56tJxhqKFdL4UpTwo8qme6C6JZYT8tfgP61bFFmQobjs5q9AB0DtJAoNRfwnY8tGZVv3eb6DFUm5CUP%2Fp%2B6azDGMWf18yDeCgEg0ks54Vz9pifUv0wg2%2B8t5wvwVqJFD58DRK0PhKEAi9hsZFCwxr0PnQbmbltlTGJqpNcTBKnBTaUHG4Rv035%2BLXChq210pctvDxNYZFUcDNT2pEMoDifPAdQQcZji6LYSnfjXn8GhOL7BL4ZjNP1vwMe6U3kCgLKDoLENnzIVdmIJ7I8NzG8D6NDRHXpPd4sGVZkdEq3r%2BhNQnybuHyTs484%2BrNT8DBkIwNSG7P8XYb9OctVe%2BfsqpSlTSN1m9yBAp6vUELPWsAUCikQ0ZhCCkQ0aq7TLbenPLqbPNol9WChSQkJflGWvoLotTnM%2FRHMLP7khTleK7WP4wMrHnxoDbk0lPYuZ3ziF94QGC2jrya%2F82QyzBju%2Bw%2BueOCef7lM%2BKeoA5JxZPqByY6UT6ntav1lNqQPLvtXzSGlfQIt%2BV0cUrZTU0Qz33AORthlJmkqqo2U9gipGCQy5yuKOKN2K4fISjFjyXAY6JiFTZMDircLzEu6VhQUnxZbza4C%2FQsxZNJxJ1Y53g1oVgdBDXCInhmSGm%2BakxYZ0T5zG%2FwzvWZQ%2BOiATotmBf205NLOrw6%2FAw6awmCUBgqNsD%2FnA5DKOzsCqRYo9TmSbVW8DEeER2O6l5R5AmcdCWaom%2Bdtl4N42AKOwcGGAyB3hYuiyBPcaooxKmgstfMl0FhIWByCRg1SMO8X2UfCGtKw5OgDLAZLwyZ3lPjZpzHJ2%2F%2Fft%2BXTikjitMBGll%2F8Es4iAjxb9dbKT0F2XQpGqQielgPczFQmKzsoiFffywcUVxKRQWmKfX4bMjftf6cnaekvEE9OBo86f63OgsQ2fOZM0cjHtkbwHEu18fQjOZC4KCfNQhjAXk2cO6i3qOLslMCcfUR%2Flc7BQ1UuGZA9BRtzhv0561V5udZflWmQqT%2BuS4sE87RKQo%2B8ugzNtSIaeGdCRKNnui57KODRtYrwaFpobpJHmb8oSl8qem0lZhR%2Fcsasa6VUciFB8lBp3dr%2Bgsho6LHjMjmnvYl%2FSkYPQZKM%2FmAyoNC%2Fdl1p5b0oqKYdWKIjOhPszYtagVS6Ws9kQ7q2f1mzSGmfgBAYJwtoaDBJ9dUazsEgaZcrjdV9IV3osEV%2ByNRc%2B1FkIf8AUZGa%2BmNmBGK%2FSaRTx5xyQGgdQu9M3S5KHiiei%2F2rEA1biZ3Uqs6p%2FadToFKDTP1BNzbodeeru7elRz0Y8ArFDZpuRTXi%2Fju%2FYDEsXBq%2FQuBZSVfNHthau%2BULflF4ADxjh85BygKZNIFOiKTLb83grRWBF511QPwpYyr5vq08AltNeu%2BU%2BgprJOsjqsR3wltNMQY%2BOld3LJnGQh%2FWeRqk0IGUsPD5xGBJsFTqtxwGoslk0fyHSOY%2FXChwComAYwesv55TGxHfMJkmwjZaiuD52tG6TmWysoMCb88BlL9x0YKKFLs71N0k7RGMJx7QtPoCs7Uko8hHnb9WJ0Fidy3nhCQmoiUmOwvW%2FWosNdjh0BT6BWBhHqkAVjf1Fs7%2FO1ECn8bsI%2FirMOLrFDwsDCZ3qCh8SBlwZtifs1wV35yDqzKLOfXn05LyF9ccLaEvQ2cmQ3N%2FfPQgvDMhotE8%2Bn7or8ij4dsU8GjvZpH1qXW6xZhff3m2XZhpv4Llze%2FVGtrkJAk1md5IDaed%2F05748VKRp%2BEPfKmcInY9GjpgYJzTkZRHqsDkzCePVQrkPZKV2s2pObfN4eUNZ90fwhndNFKT7tpUFbHgnIopKvyRFmdrli3H0UGRk0l7eeKAy5LMjlJGx1LptnkGXhnaqNIKkDAe9CBxQZwidnUq9ApUKlBBg42XT3cp3xd%2FAvxSrC%2FFCMdymfKVTQokE3zFwgm0%2BLYyCGxtsBd%2B79FrwpOZ5HS0rmTkPLeUhmCsp%2BNTCQYodWn7OGuzEPqPQSoPcLredt5EFAaIpgfMzjsaourJOv3XsCKKMZg8xbqjuVaDbiY1xcNUnfBmzchnxBhISiKwGI7heUwYagU0%2FzLQsE1gR8jTyAjFNiEHFn7Yhfx2DhVAbPQymlBMcj5DEpbAEr%2BILUcVbobCImYXeomreYXllDQm5qztaAl5qPOXysjJHvKHxK7ayWJhxeSCXehPpZIw2AH4TjHpfPdL%2FUX%2BDADoRPYYKdnJOo63R6l2LVj8FCVS5WWstzknzLsz%2FPpqozB63scL0a9JJTQwxINlob20%2BPQXOOdSRGN4tHmXwmP5iwV8GgWZ8ioEaCxSKhe85Zifr1tmGm%2FAr4c9mqN2UWB1jHg2RLegQBTTePL6EFkYGcqvzef%2FC9jQiwYOiQ15kRJqB4MkR0pF%2F7MSDc3i5SvSC3dH8QWgsYRNTUHQ4bgqfnZ1bRUrT21BAVl4axYtx1F%2FAiTw5AXuQznkHPRCW10KL0GXUy9M8OjLmzN77RFBxZuJlmW0vx3CFQaiAGHp2mgs6MQYV1iAOmkF%2F0Qm1QpVNqYsGn5FyTn9Kzk9C1zSAV7CGsWxBxEiieoc5CG9xahMnbkMfsjGaBZ1JTTI%2BXvEX%2F5dRjReLdd%2B7rip0EEYKb8enHeafJP3d4hIhOkHe1vhN9MBoux7ZjzJnwjInoiRWFtlMnBkpz0QqWY248sFEpgE7rrpPtQYGmqfbFtVqIaElEZMT5GpwWVPp7foLSzDkthrKfyHuNBTCRXzC71recU3eQLZKrIQH3DnVV81CNKpBgkPH35Q%2BKQi0S%2BCzGu5E05WrcqBjs2HKe1ZoXvvrXWoQRabBbBtWqeEvjv3ejPdTTY6RQ8VKRVfNU9N%2Bbs%2B3OWq%2BI6OVx19%2F8LXtxNpTzT5mDU9M7k0NwTnojmMs2jx3jzgsFOike7i%2FF3UtHrQsDMzh8aN%2FmnNHvCQqoUhtW8VMro7S%2FFQWbyDZQkJiuuxujllVNJqBoJ3VlIeeO5P9AWwjeOoI%2B2n4dcFM7PDk%2FKYStJWp1V3jXtRhE7tJVGBQkDeK2YTG3dnDb5E1MovYY3obAWdZDeTNZJrTHyWSphwrKU20%2BHQKWHgDyMxEG1ERUePEToLf6ZoHeAR7E6GxQki85%2FUaETpHfU5Y%2Bud624CtVKcMS2IwWyJpHqaopB6lpcBtcNUpqFWIRiH8ewSfwDe9eKM2%2Bt6Jst%2FqPSFjyCUYRenKf5J4tNXb4S%2B%2FP2CRsUNQFgSdsx503QiEi5zipY%2BAvaoo64KAsG0gyVIvsGVcBblMDGEwMHfEANM%2FNba%2B3q7EvNi7J0SbWSTcidBEpHJSqxrtT2QRuIQQparabo6u9wZKg86jFT%2FTik3twhcbo1jTv89kiO1i1Dae9qr%2BjJ4SrqdHojND9JbBbLLtXuK4FPHf22feW4gXcIHuqeJ4L9mUSIKugM%2B3Omq5IVtPqqfA8RfLohyN3nSehLIt0IpPTniWhuWqx59ARvXsqjMYCtEAzQZXM2ficVvWbAXJt3mJkDU0VStB%2FWKaPBmtlQTUMZPU1sxyZ9e6MuA7K2Q5SszCQPrKIkNNwEOxAppaKJEzRtISi953QsPQQPvxtNAH0hnXLYEg3mP6iCxjxCEZ%2FdMc4faiNVuCHalRLUCi7mJNMTlsnRUyXinwm6BRPIUdteWRAvXUBVPv%2BdAZWUus7bgQK712dMvsrDGzu7kU2i6YDYNBVPe8jQPnNUGVZa1wpxrVs%2FjD4lcES0drULKYFmRVpNqzrubXnYEOv%2BlStMy143Ig3p6YaaXhh2AX%2FBFgbD%2BnnPh9XNpv8oaMGWqrnXmPMpcZ7mnyT%2F3Z586rHfs9FRYcVnus2ZxN%2FO9a2MsfokEYFyndWwDHbPi1BICgykGSqpRS4msClQ9wsxMFYP31bHH1p9ZZipQLD4sDBQSpeZsKAxEjazjgKl7Y05OJf3%2BCLOOr9Hmtnwi%2B6SbP7FNRgZi0c9Mk43CqnaHkicbl2WKR2VmhgjVuXHVmBsWCi4YStbfP8wJASs%2Ba3YnlOhU5ZUe9Wbb%2FPOa1DZkxF0CB7qnsOtWNtyZ9if59dV2WkA9cZBNwSZEnqapQqH86T0oYiGg341j6ZO3mulHU6HaPGZ5p4ciV6jmBE6zjfMHIrIDERvevra1zwZzdqLqmkWKxk9G9vl6Z%2BynIAK9NFauA6fM8o3boIdhpS0O5TYKOk9gmWHKegaDkejpoNlql7OGX8qcMvBasyQZp6hiDNqhFcGTNLSOGLp07DUT%2BFi7jspUsy9tnhR%2F0wx0LSMB5Y8eDesmRZk9GrCb2dAJY6pFAfUpsiO47psJVAEjzkor13Wzx4zcJmc9Owz8SuEhpXD%2BNVsEbtobO6A9G3LEcUvKkekiLCIFECzI03Jv2T%2Bcd%2FEikmMfZJZPcKw5S%2BkFSG45yV1swGK1YxR3OsekOwZrM%2FyBpF%2Fhm2YXuYfsCB4IvEHLLYjMyIALM91lrB0uCU6Bfx2a%2FoEFsmaXuS0wIY1%2F%2B50ru6FBTaq%2FupJZM3vSQbKfiOXsDAQaIxEm7WOAMVDOeByIWVX%2FIWddRS%2F1rO17LZFoj1lSAQedS%2BmWZQBEj7A%2FCEx0W4AgC1NIknu2BN%2FrH2th2mwI6%2BdvBkQwRFWIq5mqj21U8MOTkbQKXioe%2BZWTEGb8uPOsD%2FPp6uykAcdInzwfQl9OCyXUvpQRMNBv5pHM19e8G10RjlECzIbcEHuyZHoNYLZkPx2Y47bZ9bCU33ck9GISXJi6BQunJffsIS%2B%2BX0lQVeUuKcb9eRvVIMhUeE6jNVlJzfBTkKq50IGEhsB6c2F1MMCQpM6UezzT2kxI1EyKe3RPEMRZ9SM1WBmODCECcT9q1A%2FRcqEPZ7SmChdjORUyrqEziZDjvGYkeuDlvw9efAoUplq%2F%2BkUqMQhbeduix3w0%2BDKRJPjbyc9quwPiE2TxJSl0D4TIEPDSqBF2ttOFtk6TaSYFMHWrjlGysBgI5ECaHakQq8lop0Yw4%2BWwIxDemRKf0HKPCMi6gUQ3vNCl3V39e1dC7aA0NPd1S9UwHUAFnpKg45kY30O3yCqkai%2F6IbmX2BR8IRcPa0%2BAwfSioNF19luwFrZT1goIADWaulQxG%2B3irBI1hiTRASY0pdcjQhsNL%2BRxepx84KhPukz0CrLlGSgnoNg54CiCUgDik3djXLWeQxsWqfUB6irkQZAkRWY5ePFN1A39De8TJCKuUMiy2Ru3LFlCGV8ayE7Y310szPYQW4AzzdqYmh%2FBzCxWQRnH6uG8200I%2BgMPKSWfIobGXEzMM2wP7f9qvrj37n3O%2FtntIRe0uaTIqWfLIcimmTQ7%2BIGPJqz2nz7%2FHCIVtFyQewfUfYQx4xgcb5hpj2aV97kaUxkNH53bTLK4T1PTQMpzfLzBhkzQnN%2BAF%2BbSjuwYEgarsOnYTpJ3VsHIdUK8UBiE0rvaZ%2FgW%2BEG87NFXRda1vFPkrFXZfn2o2hyave4VD%2Fx8PZYbmIp8IaNQWMlbVKCTtFhZV3CZDsIo%2Fkf56yyCeTvxZMGqdp%2FOggq5wYirnVqv2KBAnhmzVVTp9%2FWCTZdADqZSZzk%2B9mQWgImcNXggPUmuLUNeEbKW2f2zQrSc%2F6M6DlGGg5TEKvUUiak7Iun2w%2B29QrRINAQq0%2Bn70LK37d33ShADOvvLng1HR6DDPgK3UZFBOLd1Q3zD5JsrCZ8g6hGspVHZy5vCeyXAYtKYlYiEOLYj1aaEvgX%2BHy6BRZrIhpWl8Aysio8ggJLPYERASYENkAbFdhgDdattcMlZg%2B9XIOUKclAlYPgvAalxQCKYntmP8CHRZm1hJHNohOHQRRT6pyiG3pslnfa5eMdPuqMaZqGZE45Q6KnvmWZVMVPiisWXRMTaXM5MdiBGJAH4uAB7OyQ84K0KyWwZgQdgiecAOhtzNqIm4GpsvKOHG2%2Fqi68YA7yd0MJPednUf6vRDQy6NeKaDClWfFozmrzeXQ4RGsIKkjsH1H2EMOMPHNtvmGmL3xo4yRVTupneEqT4H7aBFIaVmUkpmELre2XL2%2FePsYOLJLJdB3GLC52vHcgUqqItcSG0ntKRcM9I5ifrSw27UnNz1Zl%2BXmFIs6od%2B3EkoqH1s7LFc9LUyYls5Iez9DcBUdFcUc1ZRXOKpU6yB%2B2H7X%2FdApU4tg9ZXCITm3jEK1vqJdXdo6BoSOMdAQdZOwkt7SiFGG9%2BmEg3ABqA57NO3ftP%2FzyGw7pWfGoxgMwx0hZEIDyna5AWZBS2F137%2FYk8D6Ke8pb5aYMw0Annejmm%2F8Lv6a%2Fa2hjOurZj1J642y%2F6yTZXE0AK9BNgR%2BAaYmwjNoyqUT0igNpYvXJv7gQrJGGsIDKPs%2BEFXtZKA9kniWTwIaOM7ZbVrXW4gRyQQaqHATnNShtv6wodjBkq9frIrC4yrLZC78u6Cm6%2Fb7HJrZ8%2F1EnlYxD0qw%2FT0g8roKn%2Fhj9cDiuH4nz5EKwOHSqy0H%2F%2Fcc7CdsEEVeTtYemlLhtPiPoBDzacpMMR5%2F4hHN7j%2B%2FP8%2B2qbLlA%2B%2BrBWUroU7V2Sty0iOZ1DPoVEc1lZlhDAx6t2HNp0BuiVU5VkOcidyiKmWSz7Zj1rfWE9MwEGIguqAuKqUydeEvnPxIpDfsx5JdiC63pl5dFhdSSLSLeOjxMr9uOQxr32KzUlH0C94zUYrOA34btDOpPNNPSZfn2o4gf5IczNY5LgVgSnpeYhU7rEnDAwNxlK8wyt2%2BFTuS%2F2q%2FHd0zZw37JBkdhO5X69B6SP7X%2FdArUEAfEgxgrQ008nXL8gz0H9Hynb36a1BZy6xLTtK8ZCZPzlNo4Kl7bMf3kgcPHf%2F4egL6XTqf86KIckPb3ohHX19FXsiGF5Pn%2FnJiScmHVLaLByABEGn1SvfdENTT%2FF34d%2BrvWp%2BSoM4pw%2BHHY%2BRC1qT0pyX775VmuJoHSDPxAYHmUYphWn3QgZSVC%2FkLDwsPXGBZkVXgEAQvN0cefVS%2BLFmCSM2YS2NBxxvDsh%2FHTVqPsyNZalanw7EffN99B6UVZU%2BzVfo8tF2VEhPt37ZyMTtGV3b%2FoNWuwxsXSdBZIvblCYmV%2FCTz1bcRrrj%2FJaf2DBXHcSaTNG8VgJxEDcp0gFmHZLPtwHJXoXckIOgaPttwMTDZDv8%2FQclNxldjR%2FqsyjY5ErekcEQk9fVrIqDnLMRTRmPWLIpoP3GSGNUR5NA11OETLJo9YCT1x%2BCnWZrJhtt%2BdV5h5a8MJ0cx8D0pHEu1zcNNVreqfiJTGH2ZclPvT7X75LzHg9aglV1Cuw%2Fdiyl0nIdXw6AmnPTaVfQL2DMrqlJCu4fzsd9Rq0W4UTZJ%2FPOeuiGWlM9A0bKmY9XLIMSt%2FylNtfJtdTcv1zZbcjYyXLQ0qb7cnEzT%2FxdNPP7Vn9%2B7dM4ba7BjHwgu2M71n3%2BwRkD%2B1%2F3QSVGbppv8Mc8sxWUZ4LiXn1L7z6P5MwSV16fkO1X19kh0Kg0Ju2Z2GvQs0cWa3f0wDq2OQM3v3z754QijiuZ87h7IBVMHyQsoIBVCnsyDlezKNOqF4FEI9z4hEWg6kb48T3XDPe0C96fQJyi9I9jz1NA7cZ3en616XQ2V858zeg0ewPLv12ST%2BZTXRSrPNgAU6Ty2BCzso9plI%2B34L3XgWFSwcey8Gq1Kr20eQsN5FFkq9LGrSOg0%2F1JzRuMCGIv1x88v%2BJ1IiL%2BMiLgNkoL6pZgeAUosyKLZwPrB%2BpbvBomyW1ZPW%2B6PhFF18gSp1QLQZTxoSwUc9A6RaOyDRrGm0Js0akmjfIlQPlE8Iz0C%2FGOzU7ePNd79eDcz0lc2r53Thq6E7BA%2Bf8MmA%2BnBEA%2F%2FE%2FZmlrQx%2B%2B229Kg9ItOEZ9V0noW%2Fo9FM8T0Tzk6OpiOam2%2B6xwxouyqNrZRrqcIjWlE0esRJqHn8ynWyYzXfbijkupA%2FNHVk4pagmlX14VQVIaaiG4zyDGmqDjlr7wSJZJBtHvXX4KuDqOKTaY1N2iwZ9Yt6eEczPxolCOv4Jp8QcIPQtnEco4gf54dMIi9G%2BAppSRybdymokqek44HgdVHocCV1jerhhaL3dstatw2%2B3br29wf%2Fj%2Bee%2BMzs7e8Bwm727eRjud%2BTYyTN4DyxUtf90CFTel6m%2FtPQVMtNNI5Yd02yGUu7gGGTTATzfke%2BlagQUlgUL0dfYvQs08cCsdxzcD6yOQR449MKxN85apNjTYVHAdHo%2BSBmhAOr%2BgxmQMvP5DZt170klXX1e63AJIZGIfTjRjeO1HBB8ZqD8guQ7zz1vD9xn3Gnw7Wlk3UHF9x44dPT1M0KyQakMhOV32tWEqr1v7CyzMDmM2hJQoTQiYUc43QtGRHwWFSxzHGoIC6gM9ccjKNEntiH1sijbNRYD1cTPuMCGjjM7DNsUmUnarQRSHNgSK1PNTgDFH8mdyxuQ2hPqbuRHgmgfxAtEoh1O0cUX9PtbRaLNeBKBGx%2F1JiHho8sfEuvOVNeAKCPv7oltJmhxaEt75vnG4413%2F6k9TyA6QW6PTXv8jYL75tupdQgeWm5O%2BtSHJ9%2FYlvtzBsvN9l%2BVB8xZwIG3zoiEHmt14J2ZNNQ2FtF83PJo%2FKvGPBqerelf9jgefVCSR9yS1%2BN36mjMcSE9zR395AmHACb3OV08RUrjqbGK6cwswNzgT4VQz4tahzsNKTcN7x1Jpfe6TyzYM6hoEotNblX6T7AFPhf6Fs4jFPGD%2FPBpExbbeHXVGpmMOIJMus2%2BSlLTEpiv18uGS9vGzPXrQKUf%2FizzVfjtUNr5yclXX3nl%2BFHDbQ7N8jDc7%2BRpu8fjeAcvFvefDoLKsLe%2B55u7gKNgleP%2BaAHld0%2F5OcvQYN%2Bi9AaZBIVlwQKp8t3YuyxNPHr8lfQ49gKwOgZ59MSbZ4DUMWqX2wBHzA8pIxQL9YVjWZCyqjNt33xKuhiY0AizXGVPd%2Bipaf%2FCqnye%2BEvzmYHyOySvnnwTh73P9k6Db5uoRI79zxx66cQpu5AIyZbZLkuuf7%2FXbTo1U8OmYXu7wO69MIlhRzB7gB9R5cKwXnntp41hmX%2F6nSN4BOXjYgEaT2Dcdk2P%2BvTqrrqFIOzQ3VGFr05qqJN6i%2FnJ0dBUswNAaWcdzvIVJ9JAd8MfCaKN0lnBT6nrKbr0kSHRZoqegVsWSMOldkFiwZmce4vYctCajxaHO21p7zk83u7df84arIjAJuz%2Fo6cXp1v6g1Q6BA8tN2UrVpabbHGRjGd2y832X5URPdQvvoQehRSpupBRly8movmXF%2BXRvUWJZoveXw4Ijz6J5BG3ZEzgXfwrYS5PzhfMbG%2FSQnqudbKc8pteHjytVVFKgxfC72nuEmodxIzyEPF5UcFim5DiL5pFqpdTJbFhw61o%2FN4M9wwWYdPfRv9uOIW1Zmr15xeKuHEYNpW%2FsUujGXn0WZdihS4cTVNQWRgpjOWiBtyQpdKSK6ECF4zafc%2FWGt975513fvnWm2%2F%2B9LVXeLxG7uf2H5XL7BSo5DUz3xIcxQLSv5S%2FYCSvPibRdsCkO8i0a%2BxNDTTLVSbRD8x%2BB3uXoYlv%2FfKd9DhzClgdg3wLSwtU9D8Hox7DWEJwxLyQMkKxUE%2BdyYKUVZ0%2FqUvND00cDEykncAz9nHMn6n1yZ11%2FGtbzXnhGCi%2FIJE7ae4z7jT4tolKcFgq%2FtqpBNi7p%2BxiL1Pdr%2FKp59SfYg9AQhF%2B%2FsDE0ghgUYMEWPyIvrrZ%2FmsN691zjWAB1auO%2BjNUYuvZxWuwRa8Uy1YrbZLwrppi5EU6281fUKZJZzLJv1AWLYPHaKrZAaBU2ipMrENMQt0Nf%2BS7INoJifZS6nqKLlJYUBiQaDNFz8CtWUi1tkAK3CbsMF3h3OK1sMUfxYNmYtPQY3MmfP%2FPnDr5Qzy2TADSSynk3CDb%2FrjvzsATt9wkA2J4m9Fys%2F1X5YG%2B10BCD5EmGTXl%2FwZPIxHN7zTi0fTH4egsDswSHv2O2pJ%2F49r3ZcfMQb%2Ftw6zjOiWkZ%2Bb7MxLXqZgPCnh6vVBK4%2F82sP0VbdYj%2Fn%2FfH%2FpcKfVlO5EODWREyuU0TBXRY5PCUdDucM%2FAlk8XrQlmg%2BRPLENQrUOLTcjq5g%2BK%2BMHRkjMHnt0%2FU6%2FAI83wF%2FgNgsQYOl03HG%2BvyUY%2BB3C9YTaKwZm%2Fdspx7t2EB5LtpPsPc5kdBpWKhp02CiEONr6CEoYemlRzjyRk2nXcdhfQDSrCehQsZphEP3r8VexdHhpiVUDPnX3jZWHU%2FYa6fgA4c0LKCAV4MiFlVWevLQigbm97uLekwOoSjDC3zgZbYC7Xq5s2DK7Hi%2FTGGVD%2BRsd7lgm8icNScSADrpNHnwXJXsP1mROm9mDTcFLi4NOaICxokHxYtkfCqs6Gh35%2Fw1gTsIAK%2F1JCEoRKNJ1ryBzTYqA2WTtv4ucZ7Y5M6VXVttau8w11WLoMF6tgHHlngKJ8kGmrcH1AsZrJGvxIVIOmIlN0yQhWJZO0fi6x3RtJiv5%2BBm5NQkLclD%2Bk0G2iIpwbJJs%2BORzFMwYPXynt8YG2Basdwg%2BCKQpb0l9JUjDSlKoYagwPNsfc8cQtNy083juGt9ksN9t%2FVR5wvAwk9OyXDRn1xdxzuhryaPHHIY9OB2bVyKPVlpwVM0d8tRuzHoyihfQ4%2FQf5Y%2FjdZAVNyN8ySmm8Ogbdfi3FTlPINI%2FXLSJ89DsPKZfTVBYabhqOATKKCPcMkdXJeuvBV3%2BCXFVZbM43FPHRHfgZh%2FfvmaphOopoGkBiDJ3eYzjeIZONtD8ecLUdBW2LyKgbH%2BfOvI79h7nMToOKsMxFIcQBKTx6YMGRlYcmfFygFwGZdkl0doNC4I%2BCxQEm0Q2ZTveuCMyzb514cXafMOq7QV1zRMoIJTtSCpSensb4BhjdiyFmRcyYEIxwrq%2BIarbt2Gyo92N4uVbxRWriIDU48eLBvU84kp3UI1h92y2Iu4oD0E1pWJLyJ6w%2FtKqzjRhbRmra1MEH0IQkuDjHzTSwXQucPipySgcD0iRB5IHKHdmzW%2F1PoJ401KGq01%2BsYE3Grsj5DUrXrJm2YmIdp6DHFj%2FSMsaLEW2OoZcpupykxb72qc0unrweG1QGSIN9%2BULiC4n9PfFlGkh0JaHbZn8yiPplaejhwTvak%2B6A%2Fvxk3EbeOHXbonisxz%2BnF%2BaOh0%2B4sjrHSZ4jhrfZLDfbf1UdfAQSen%2FEV68npbfnQgMRjT%2BRTvNo%2BRYrWQXczyf2hjxas4cMmDniq%2F2Y9WAULaRf%2BTuBow6T7ZL8TWQfKyml8bwzURyUiOdhvz98NZ%2BXSItI5yAl7Q5lodvGuJySASLQD%2FeMRFYne5TkGnAK%2FsSFArI6WmzOOxRx%2Fy5UD2a%2Ff%2BTg3pmdtVRsMVoxEhpDp7%2Fz3NHjRgoj4Lw8urnPOOFXqKWSyYvTv1PHjxyU%2FQe5zI6CSvNgzA189jnisKlfeNKgDVR5aDoHd0jmxfNdMu8yKNdYD9mChWHTOomeCldUdQLfP%2FPmiaOHDzw5nTDq6yH66iikFCj9lf24hwdLPX3JvNthjmFYW4TVJ03%2BrQLHrN2PDa5zITWTAiEQZtQtWkIKEZ8%2B%2BbLBNVUTkn21v9eCoEqfSaG7uLYBLPN9B8tVIipUnZGa%2BrAg9mGivxGsM28eP4KQBB8XBs03Utd%2FJZXUhEuvVAjVHHDl%2FSdVDrMwPXy%2BoY5Qz0oql5P1htnReQ5K55B1Yp09BZX0R%2F4Mkis1RRdkh1N0QSWkl5S1fva1Y%2FVgPNk0pFq%2BkHTlppD4MoF6e2IbKCX6hGvTG817%2F982%2FhPqt%2Bgh2bYbIeNiVbCJ4pGuXxQi8sWjLTdD3TPjWs%2BYMIPlZtuvGpfQ7%2FRHfFH4I2f7Z9ySUESThKf46xiP7pZY7tmjikcr9pAFM4U%2FbcfMVm7tne8Y5IP%2FdmWaTeHfUvadhLa%2BlCbxzrTnLqnMhP3hfXwJ0DiqWkQ6C6k2TlbDdDlxix6boN3cMyTJwD1KeWsqi00lq2s7iqaXk8r0viMnjh46sHdmqk6pxfRu2zR19NWTb%2F3y3XMAJ40KZNSfKeIkvwnNEkTyATqjMr8v2Sy07D%2FIZXYMVD038EiCo4K2WGbMMUaWh9UmCctGsp1J9OoWk0e3qesvjpl6xjGj8wH8CwhCIArngYZR82%2BdWPzYC4cOPLVr5%2BZRMuqOQkqBEnbebz9pL%2FOoaeCWebclwMQsMVp9jplYb7vtvX0MxNJlg%2BknIHePQKilR%2BM0IVkVDm7%2BL986eezI7D6Da4QkO%2BAc7DMZHsQwLw2LKf%2FtO6zIf9gVKtUrSliuzZcS%2F4awXkDFJgmVLr%2BI999XAmWNLroGpmDPUB6ozAmmUl8dbzohJXR8bwJrsg4ApdSDY5piYxRZ8CMhuZIpuuH%2BXwim6NYSF0kSba%2BvHasH4skMkKo45QZJT%2FHp9lPL7LItDknWzm8mxmN75hTf%2F2Moy8v628XfiWSb7W4UvJJsR%2FHYGTl8rhrgwZo0J3j4hIcb85ZUjaONCd%2FJYLnZzqvGJfSwRqNVC4U%2F3hnFmFBEI%2BGpHkYRdMuSR0ssd%2BpdxaO5JWfHTOFP%2BzGzlVsJ6eW07G5PR8lsO0ecJAvof0ZMzDoM1XBJaNbF1vZKOn0q4eWKRbYL6eZMSLVxshqmW%2BWmQY9NiY%2BxZ4StRThxBIj8SW9clNXNOxTxsBiDEw2Eg0ffOPHSoQNP79ktx559z9imqbfOgo04Rs3fpMiJODVuT7SjgFbZNHuiAxTEWujMT23md%2B8T9Yq8CR%2B4rKOg6rmBL74CHNZGWubQagdNpLBFX8NJT5OPb8fsgfK4SXSvd%2BFsoPMBDEum0QoqrpA8DoHLOpuYg%2FsNq99aHhkmo%2B40pNzVDM6DT07XK9a61dYgCitWdPVgQm5o9enU9IMDG7jGeE7CYDknjhIIXXQOBJDQf2tbvY8ffW52355pg%2BvRAZJsX22A8fC2a2LUNPWiarISsLpCB1LURbaPPTa0zukh%2BcLyUSMsHAdo7tMQ1n48gAyV4mkYnjhJV%2F6kTMEgBNC13MfN37CIy%2BmEynFGmWp2ACg%2FnuDC6iFkjy1%2FJLtTwK%2B5%2F%2BspuhCcILfoE232tXP1aBISq8Y5QtJmTaE9E5DZRHtNsnZsJkat9DXrq0OzX9yLhmSbk5lx33yyHccD8U8cz1sn5wQPn3BvKxbCoyw3sxlxt%2F%2BqcQn9f983TZN2TeN47nUimpd%2BYkU04%2BNheNp9Qfv8kEd795M8mltydswU%2FrQVs84AsPwXML1P3x44KHB7SRRewoVN0HKhQKwgbkwP2Qrj%2BUL61aSgikW2CalNT2RCyuWU7i7hMN1UD0KPzaC7X1qLqm6PCq2p%2Bad041KyunmFIn68%2F3o3OXFq77PHf3bqxNF0qTR%2BgzS%2BYWTidSl7dXeuoGBfsEw%2Feki8H0Gshc48j8wvBuDxTehAqJwbaCuDFoe1kd49g1Fh2kET4nV21k4%2BvmPSttVuNux1wxA2oD7OKOLxnpjlGDItJpDmAt6xF1xWDOKndxg9j3EZLpAidhRS7u64td81RHxqvAJ9Ens6NtDqc%2FyrE8ZuZ6MzzRJXAdxZaqKF5RwgEPrnz%2FiQOAPgkMG2xwQcFtdDy4iLSQ4XPM0e2m%2F%2FkRuQNsRQibB2TFoXoC8iDflwo5jkTABrhrb%2BjWHtsA%2FgALl%2FLA0jp3B8kc6YaIENfXW2mb9xZVqv7ui3y4e%2BOlxvOgBUGk%2BwiqDF34F%2FEIl2wym6FACUZNM%2F8jqJttfXztUjA6RizpC4c2m3bmkvdTcQnBuvBpuJ3zYpmWfMAsN3396Lbl3GINmWZCDJNl2qo3ik65Vp8AZ4TAA9J3houRmamvDUrYwJMxhxt%2B%2BqcQk9uLET0fSfL%2Fw5%2FwwRjdmzjYjmz%2F5oa8ijL9xKW9U82uVOQh7dAswQ%2FrQZM%2FNMJNHUIfJGr1x6K8JfNes16e0WFczGMmKb836brqSX9j%2F0KyF9pEWkTUgLv5sRqc6lgPMxzqcexPfYZHwscU2QXaiqEzcuJaubXyjix1U2n%2F6ozW4ePvFLkyqhaMP4DVLZwcgktcqsKnMK%2FiawTN8rU58ssSadcZlfo57mm9BRUPXcwMPHfvKzk68ivWR43d6E09Vr%2FjG%2BfZvx1JzcPm69dDbXxwyx%2FZINSFaH9tJeFt0l0Q8ZMs3xT3X%2FB%2B6wXBbXgpLHdPKuL668905QxLlCWptLpIvl1s4ceP6IuR%2FT5t9KYMIiRNX8nxH5l43V5xfEsENRSchrMMZoVwqkwojGg8Tpv3sNNiT1Da57br8FuFTwNL3vuSO2PLBjHFWTwIF0S9X6%2BtQ2mTFyDNN1TIJX9IgPC7EXfkJjWGP2AVQhiU7DVMIRusqHIWIKxqbT6leNr05gROwvYHq2Ok015zcoHU9U%2FcQ6bV9CB7a%2FVVN01Thd25wWTtFFYOweQdXX3jwkc8oVkg5HJIRVLk1WGi2KQrMXY9k1Pl4HzKvL93986gn8Tn7Gqzcg28wl%2BFtfHA9VP%2FTCaITHBNCtxsMnXG3M3mKk5lhkMOJu41XjEnqI4g%2FiaXTzD3UWl%2BeC3JcfMnKN8OgJzaOTlI7Po1uAmcKfdmKmwpQkOhw6WEUn5y13aaG9OfFmu6WP8%2B4CKU0S6tz%2Fu1h6lZA%2B2iKSP9JlmZAyOGEuJdTXB9J7emwy0HfrjKQV0uxCmPvwLDb1%2FOz2o2g2n45Ra2hvP3OO7ZqBMyGXQxQYSaW7uHQGYQzWnKlxS2emkdIknXGZ34H%2B5XwTOhEq5wbCU%2B7102ctB7bKlkNQcyC56x9f22yJbHncToH6osH0%2BXWP4HXQA0pROcdIGhmQOw2uWDkvRT8CLsvRu8PGw7Nw%2F9Lbbr4WK%2FwcITWnOULKW4s2qx8cPfTMPqtP8no6DC%2F%2B6uYR%2BPoYIviw533LqiIrgqCAu7aWUyDD1DL5kOpTOCyfH7VyfovrpmsuV8GTSM1efPmIkeEkVRPydXRCbMSn89nBSExiX1EP1kbAGr4oLPsAqpBE0yKuxHqqOr4ZMwVj06lh4P%2BJmWb2JzElTXakDFHmNSgdT5D3YUUNDN%2FpH%2BRP0VVyGvrrVzlFV0%2FSUoKtJiCR9ecOieGIxK5qf%2B%2Bj0w6yo2eSn28bZ8YrfL5HNj8uvxNLrrTXd%2FeRuQRlrB%2FBIxRYaEV%2FYzxT9QZ4ejLgUU94Pd2RGeXSctObY5HBiLutV41L6C1JmzKtULDCxNDcRsIffB%2Fys6Z4dG9R82iT0tmZ8ugWYKbwp82YtT8aPWIopL%2FrLt9iR1eW3e6yWQKXzYGURkROK%2F8tkgwNhPSqRaTzkGqDfY7VYrlYqhUMI%2Fzmfmk9tNC102b6TbVxMUvQfhRNR%2FImu%2Bmi4iPikqCO986%2BBUbNvImj0is9ozS2S1GPhcQoKBLpjGR%2Bl929hG9CJ0KlgcDWaYvk1Nn33jPuLRgVZpl1KHv%2FtnlIH9uwwd649SVgUnV9XxX%2Bks2iI4luYCD%2FLfR1MJTmbxT%2BCIf5lcvuufM3PvoBvgatR4rT3CDlrZU2qx%2F%2B3bEjRp%2FEwATZcHOTHl23LswcMyXqVwQ5%2FSMFUmIXMyGhnIADSh5D%2FZffa3BdfZkKniA1g27qx6ZhWaomVOrsnbJ2Q1%2Fge%2B3xCR2T4BUlLNdvvbp0UVj99gFUIYlSAXMl5okzsfRoFJqC6aTiuLnl4ccaWBXTnED56sxrUCqeCGf5Ui4diEF2f8v54cu2z5Q6eEN8ii5ouiLaGSD15g2JNnVVefHT%2FZ3tpRTbzBx46dQ5%2FnzbOAM7MXs88tjYJJtQWXINWAHJttfudkl4EPDzZ18Mz6jCw6A8Gx4aFKgdGQGtttzMZMTd1qvGJfRLV65BBf47ezk0t4Hwh9%2Bf2ovY069RXdRCc0jxaEvEy%2BTRrcBM4U%2F7MbM%2FtOjrXbiN3P%2FgigeWeeb6uqcMdeWdydAy8V2ilKaGTp9%2FY0VjDYX0qkWkY5DGDfa1CpxhhJcwwq%2FG6llatCjoEoYeNDYfUcSjYpPddFHxHuWPzL6pV48%2BnzBq5nFYmA6n0FCPBUm0S2mSzrjM7%2B233LAYb0InQmUmAXPkDZJnX4LsCDoYy6xDw5tjKEMUbUsaMam6vq8KRxbdJdFHRPkO%2BlpYkRwr%2B8FlwR%2Ft9x%2B4b%2Bntn7j5WiQ7OxXpZbY3OSEspjyBHgL2dPyPg5ja5oe%2BzCozN%2BmCaCYFHk6AmKuaY9mDhMQhBzgwIdpQ%2FyXEpaRmMiT11JuvSdVEjkN%2FgzEjoZolyHromGQtYT24zOJ64KKw7pMHMOa8oD01cYqMRlESxe0V31cnINieV7Py1ZmfoOLOOqRRkEtXwnhCJmkNSG4dKfUmpuiCpkeIdhRSrT2QaFO3Wilv8Wj7Zk0nznrDw0ytdF0Jz%2FdnVrt0fJ%2Fyq%2FDyMiTbiNp44%2BJ4XBBYkB96MTwbBhvhGa1lw0MCFO7IDGi15WYGI%2B62XjVuun0bKvDWn2FPHdZTDYU%2F%2FH7tibRq5Y2lbmyhWSaP9ufCD5FHtwAzhT%2FtxMylTrfPpq3c%2FWvXlVZ6Hjva8PHcz36Afgbzi4FBc3pBd5Jev%2F%2BuT6vXWd4iCulVi0jnII0b7Id%2Bcdpj8x8lZlpBM5E6eZW1d9TG1W4UTVcTr3dRcaWOyYgmO3ye27jtFDUZz901LZ2nBDdQN%2BM3GV7j0ppDPp2RzC9TmR0IlQYChlMPGyRP7D1gG45%2FCvNLZXV%2FBlour984bFicCIRfLiY2WXRJog%2BBTBccfb3n7rvkWPppcFnwR%2Fv9O2695aMfWoxk%2BtwhrY%2FNFVKuzvcWaNP9C%2BcelBx406khVP7BQfsLkwL%2FLgFyx62f%2FOQnP3VnCKmwWo7%2BlQ8uu8dQ%2F%2BuvAi4tNRPdlA03%2F16qJnL8QJzDVRqOOWQdkxT%2FfQLrzk8ZWLfecVFY5vNSD6AeflQJfD%2BUGUh0NAoVBba1li0LIcGe8MwJlK9OTqAMmqygdB9WmFhPEsuMJ%2F7blE%2BrS92XOEU39PZbGiHaMUi4EblD4pgGLlFplbpCfAW6TdgcpxseZhtnHjDP992flvmdJUiEAr%2BKCivhrNmoqC2GxwWB3WwAuAiewvJW4%2BFQwklluYmTstxEw0UGI%2B42XTV%2BXH1T4iPxDEU0DRx%2F8H1UpurToM%2BqRuX7Vfl%2Ft3OXV7fiXPgieXRLMFP402bM7Gqh8jCUzQ9sNM4jPUpK782ROXsCIzxcyYJzi0VKU8WAsd%2FWQnq8RcyEouDFFpGOQZrN5l%2FH%2BVJZU6N01Ykbjqo%2FtBtFtkjeUOpNVhty4JDJDhvXy%2FfY0XnsBesRabTOX%2BNWlGoaCEdNKzP%2FaplNa67s9%2BnMp1Xmt0OhXnG94dQFi6S2c8ZajRqbRjWXl7xGRyIcOkzhF1XhyKIjiW48JR%2BwnBn09RM33yTHLeCywh%2FN9z923QcBcy6R4jSnSG2JggM6T55%2BLw1MfilvukokkAIG%2BV8mBRIgH7vuwx%2F%2B8EdCSHffc58cn15656c%2BYaj%2F%2BwM0WjeFcPPt9%2ByjJoeaGYr8WywmuefW5PP5iIF13ccuDoufV6z5SnlqCh8CJKFFqkKofXVArM77dFnUYPCnfHXyAYV1NBso3YcV9Niq%2BuBUbIou6v56ii6TznqSVhZIw6XcITG595VQtes7rFp8JJlgmTI8zNRKzQrwKbtG03lfOHc17YeRl4PvrIraInj63SfU7WKAi%2BMxAXSL8fAJnwwkDWxqUZabsrjWmjTijl8Vl5uDq8Yr8PSR%2BBuIaELHH%2B8MXicim8fHhhm5Rng0Ht8Dft2Kc%2BGXgke3CjOFP%2B3CrJv%2BSZiRjeAi8P%2Fg1jaU0r956iWZYeCiXEpqVtonHpPrl9xJIT2NRjz5pRLSdwzS7Ab7YZyfVtb60wKb8tQqkAUpM632o8gUyRtKXRo02pCdMyY7%2FNwLx%2BA2DgdH6zZujEeq5TJTDlSlrlaqVNYwEMbcdgdSmh6d%2BaTK%2FHYeVHLqO%2B%2B1SEbKVTtkzNg0Wlpt0GBkqzBr%2FHwhgWr0ACMR8EPyb5tFRxLdwDBk2lBY0NcPLV7kjis%2FmHLZj9jvXwGUc4%2B0d%2B6QskQhNPvIsTdo3co3PSiYAJoOhP2kwA0CBFe9PIR08yc%2BmRy33PSRDy0m9W%2Bkm0K4aaMSVk0QrZM6UBcdjUluTj6fy%2B1vfUUWWLr5ymuJCt3QvUm6qkKomk7tX4Wd8ZQoRnx15jso3YcVdKsFZj%2Br15iiRE3x62CKLuv%2Baoruz13S%2BdHoJK04JHPKHRLJNhAFo5SZw0LPqVe5OZfs59bH68ZfNyu0xbQFVn5I7jnOzY%2BZLwddrl%2FxorY4HnmEuhwnuDie37y51Xj4hLN5nRWERpabor8ZaEp8H78qLpf9qtmPy1PvTCeiCUZ9eedViaKjhL8fUJFrg9FZeHxPeJo1zoVHY1ZLMUP4007MvLd8%2B8le8ICCOdbdN7WUXrQwpsizM%2FwlAL4rSa8vu92IJlJfAS7ElF%2BqFPJcIT3%2BbKuRZjfYD%2BJ8ZGEgtMGJaY7Qr5oblzbTaj%2BKTA38hlIvt9qQss0OP7X%2FoHMbdx2dcGfftNHbfvWURNwo3S51I1KaHp35sMpkdizUK6692SIZGDIzZyumVXgGtNqgsQMDDLPG8RYIonBB1e4ROn2Sf3cZNu2S6LcYMm25tCbNwmVJluYcaW0ukbJEITR7z77Z7x0z45rt1DW%2B6X3hwG8%2FN0AKGCQFPswLa0iLP%2FTh5PjglfgnkaDEhpu79s1iogRgMVpPeX7tkmKSj%2F1jRiTZYGk9BK8enIqRoT%2B66dT81cP0UAqtZioRXx09kan1oAyaLKB0HxYLg97jXmWPrd3IrRCAuz3EqJc%2BRXffdNTfIw6JMW7%2BkFiLwIebKijploCTp7I5K8yjcK%2Fx8QLHIl9yifYeIa2qacB3uWbUFsUjS7twggief9piPHzCteWmOTW23IT%2B5nbUXeJH3lfN7vcpIpo%2Bf9QXzvizS%2BtirBbObJeVyLW7wegsPL5nfc0a58IvajnmVTi3ETPvrdp%2FkUFHlLcD6d7G%2FvkvochTLHh9zPbcZe7HFkhpbkFrEdMKeiHWQvrsSHsbIz2Oqclzg1SrKOMG%2B4zzr2kwWLcY%2BlUzyaDNtNqPIiOlXmK1IUPIDk9Ni9u46%2BiEO%2FugdTThnVaDUiQuU0ZpSGlG6EynQn2fRbJsZXHt4DAmPYFWGzT7D3JUk0mwc%2BCYoi3K6ZNdH4ZNI4luYIAjRo5ckJrTHCMl%2Bx%2Bt1Kef3D%2F73NHjmLp26qeJvIY8X0n%2BWZTwqeSNFNd8cBHBZYSFcHPrtJslDVhv%2FkxeumZjEgh9pEQSf8riLI16CHWKDP3RvjrmX6u0elqlpESRQTOT9QoUFqrWgKoRlEGTCZSWYmpdW9pj%2B4iIZ6ALgJyGw3P5Be0%2FLjxFd3Q4TrTjkPBx5QxJ29TJCcD8Ij7fOCTawTzM8LD%2F5XqZpsoIBYn2RyV5RcVX1atcq4m6MTxsnsMWmiseyp4Z8eMUbMzKcjPT%2BP34VYs5XDXmnamFPx6nc99Hfrfgzue1yxYaWGgydE15NOfCzwFmnNuEmVxRJY%2FYQAa93dftnWzgn28e%2FO8jnY5qBmMvc%2B4yT%2FoWK6W5965P%2FdZ9zCdwifcWYiWkz4wUi0RDpC%2FNsu7SaqRaRXmJBvt41a9xg3UrjQfr4k9MMigzrfajyPhiLL7BakOKyA6PVcRtHA6OcBsvfpYlX29uAaWX%2FpT96IgUHp0LlUhuuX3psgcLJdMqvBG02qKZduaUOA7MHgTlY%2FjX2OnTL0N87Dom0SNHTkhxmmukpNmbRjfvmN5jIGHq2gvHKPmXHVtJ%2FhnO%2BUmB37qDbbW33Ihmg%2BywEG4iKtm914RMhxAuuZeuN4hJ4pL%2F30IThDRHKGVPFhVwusqGInsKmyNDf5io2AYXRe2rQ1ZKDZMXNEcl%2F9lBabOfWjZQOm%2FFxDp1bZVE3uJl0suQ0%2BiRWrT%2FaDhFt3BvlGjHIdXaAYm1CJJtb8sSRDWvWY2J9gHTTHyt9WMD%2FwNfCqz8hpLxNEqkj5eDZDuCR5H%2FEA8eqDnDQytb1YvnbcyRcaQZD31VXG4Orxr3zoQRwrfPE%2F6kYprzjfNrZeHRak5FnEc%2FyrnwrcRMrG3CrLto06yLdLVIM8puW2RWUnrqHg%2B7dLoX3SJ8SaQ0DxrHjX%2F9gP%2FfMbEXEdI3j3QGNKIx0n3TFtFcINUqymYM9uFTwXbC%2BGBd7VDdfhTZDmhDliI7vGGYbuO2oxNu4%2FfrZmXm0V2Nnz6Q0eHoPDof6uXXfPTjn7rr3gdW9hfXWloNNJUaRzXZka278BTH%2FTMD8hJh0wsSKWl2aXB4ZKxSN5AwdW3%2FQRuWNJDXqIpgkhT4j3DRhM2Q6Ui4w9rmLMoOC%2BHm%2BmHIpqYtLIRLbJKQ06W0ITtTH7FFuku1GmdRAZvLqlGf9qQ8NZkLlEVT%2BeoYyGkGJ506BVaqfHVU0Kwk%2Fy0CNVzKAiqet2IdAoFJMgnwMcmka36tpL5qiu6ZhGj3m6RzjGjHIeGUNyTa1HFADcX%2BvvSGjzb7Sq285CozEhuYKI8QjjVZdj4qTnCPOraq4pNsx%2FCQ%2FOPdV3hO44GaGzyUo7EXT04NLTezj9%2BPX7U6R1eNH3Rnq%2B%2F5diCiSc8XMM7fbgtQul22dCk8mnPhFxxmBnbK46tAm8ip3TbZpqT0lJY%2Bg2imMBBGt90ipekurVvbvwzqQl7Ca8jSQvo5RGo3c5NPnCuk2Q32obfBnoKTX2CreX%2FiOqMdqtuPIrs25KMfR3Z4dYlu4%2BjotG7jqGH443W8QSmseWrFZGzR6Xyoi675yM1L7lj66WUPglYPYmAAI5Jy1QyVv0SnzwxliByR1sdyQQqavdxk2Q3PtpB2TKE%2Bsauh5D8UkZipz7%2Bgy%2F%2FqUjJgoH%2BlHTDwcdD%2F7OGmiUogm6pYWAiXnrQik0hMAmZqHIKcp%2Bx%2F5rgxDESgyWgMQNSSUY%2F6pDuyIjWSC9QWDk46XeVaxSHKnDqF%2B8%2FVVwXNSvKfFZQ2%2B8kOShcTgiC3mlYEsYN9SfFryfTxC0p9i%2BdP0X39CIg2iv3XRm5qFBJjyvwgabINECDbIfmnBhAkU%2FpKP36NndYx4FAWqEPyVBXiC4KmW1bxsfexit8snl6N58g%2BPFBzg4eDGZTlJv6kLDczjd9v61XjB93ZMAlrNhXR8Jwa5%2Fs9wDX7xjawyonx6HswF37uMNfahpmBHXNIumF2%2B%2Fike1TJZsIME9Pp1bJnnC9SGgNxk3k%2FV6b%2FtR6cpYT0c4UUH3xhjpBysUA43JTB%2Fv%2Fq9DbVxDuYhAMUg3%2BKDNZtN4rs9BDZ4Xvue4Bu43BwNGZprGEExnheNEP%2BRQFTnFEvEKiXX3XdjbcYm0ZLqw0aUE6JSGyCfWT8Ep0%2BCSZehsgfKU5zi5Q0e4nJsveXBgFpDKOXx6eqadexNtakiOQNOxsAs8r%2Bi%2F2dhpPRwkMYLWzoP0YLZww3EZUY2dSwwDKtE1N2b2VbTsOY5A3MBgCfkM86GYXM8WJXZFYBU%2FKvR33SBcSRGpULVBYOcFGUtUr76tBmWaVGNSiw%2FtaAGjdeN02DihWtdd6qKhKizWURzuspuirlN0CizV3fJuAaCH2bhYRTrpA02abeb1uq%2Bed7iDwcy4BJot1t66EOif2UVfumsBKEKj5z1KSpUTzh0JYL48ED1Xo8vGNI3PAUeG2GA02z78%2Ftv2rMCGE5JmFRRMOZTVo844zzy9awqjGP7i5djEffhMW75ZiJtX2YGdhpAwJmBUY8DX2P1pbu2ioFjM3nmZW6kAb%2Bm9zUKT3xZGIwh2LIO4dIZ1BymROktIijXVoTBvv%2FFL%2BZhSknmmr6lbV%2BrhL4T%2BlQPa9QZM8Of%2BLWO%2B6%2Bh5aX6Oj8NWou9S%2BkBmfJqhNn1AsG6vsWfdDYNFpabdBAbIKIBDne9XzqI06fGcDkjLQ3F6Tvu%2Bp6k2W%2Fb3nBQMLUNUu2xyWMU9OnAhOw55%2FHVOBvm5q%2FLWhA1lQtm%2FMIekEM%2Ff8VkkeLEJUY2VTJwbKtE%2BMeF2KHk4pJnoMZ1awVCTlY5SqmIpsWFTuA1NJ%2F%2BEFkVQFLsT%2B9LFKZXrU0JpWk7rwqLopBAUNrLsPVt2FduNAyUKtp9pMJlDap1kEuohVbtJ7ezrk%2BhjI2mqJbxRdgEeEUXeQT40Q7Dol7a%2B6QSLa5S5Fsc6BuOrInKAPavOCA29ZTF0TB3YfknkgTEBqyM1U1a0TwkH54Rm4az71LrpsTPDKFJzQwD702q14hIdv%2B3P6rxvM0NyyRobkU0VDKQfGMHub0X%2BzHr2wy2VN7ER592Rxi7m8TZraHKgPrKu8tVtAvKdMEPw8248wzgx7aUrdEMBbiNi7qQccIp1Cy94oL8RwiHeiZK6S0iAs5DLfpnsYG%2Bx9NguuinFSBzR%2BsSxTU28wfFNkTDIs%2FdN3H6DYOB8cPXY3FV5gXfyFmgtTgrIjjHo%2BFBPXyKy2tNmjsyFaJSIy6%2ByGgaMrpMw6mHUhr%2BSF9%2Fwc%2Besutd95jqhMr%2ByHe%2BQJEJF7NW6lskO%2F6ptHhP7VntxEJTY3XJreZ4%2FGvff3raAa3LlCW%2FoNmZ49KrGzKhEyAVVy7ns%2BZ522mY5K%2FcmZU5vh63cHatnP6G9MGV71aNi3qhv7TCTqTCjj9UORUuFC19KySSird%2BaRTVIT%2BCqkGrFteG7X6NqgLtxwUHsMMoNTkAAaPHAHIIHfKn6I7VGw4RVdcN6f2PhsS7c0wq4sQ7TgkvoE5Q9Jku1pjRMiwJKg8e31TV7lutS12W4cOibhJpyhNgLfOviNqRGUcDxMAHOHSCM%2FVc4InncLTl55Sr01luZltf27%2FVePxCIbmQkRDLQdFMzizBzgtCYx%2BydVfIFTT9vn1PREevRAxsz1Ud9FyIf0DA0Np6Pnf7EzMM%2F0eWql5rbLBjo1lz3dwq3o2eSjn02u%2Bc5GyNMGEr2pibGCwj%2BCavjqBzFj%2BpAbrPjOPUWRlOVfQbRwOjrI%2FaTVIkWXXihIwxVedhQf1cmPTjpGtSURy%2B72gPFGnzwxg8kZqTvkhXfTB62%2F%2BhDHFwdS15ZSO%2BwkH7Ru5e2bKHPWaOZBXd6l%2FY8%2Fzp3%2B%2B285%2FMPR%2FDWl2tqjEyqZMyARYv3uhecOrdUyya0bMqDxY1qN25k%2F%2FwsyirlcM%2Fc8wt1KvMDWlrlf2H4FUUudz0O8bmv34ocVq3n81AbVBXbj1oGrZQOmEDINHNg5IfuqrilarL8IpukdPOaL9rrfrL7khSrTjkPA7F%2FKHRLJN71Mv0GI0Jz1nsy%2B%2FfS7tm7pKjJ7AqUKUFFKg0w8Ff4jTT6sRlVE8dNCQD6wxnqvnAs%2F71BQe1o3SlrwWWG7metXsg34pojnP5H8yNdAPSgKby0oyTx5Nm6oIj15gmIW1VC7SRWsQ8TuenoFb4rbU5pM9tIVUWlP7I5d2rqrSOddPZRnZcUiZMgoTvqm%2BXmbENzDYd8E142gaAEcG684nFK09dA2DBIwOpmypVVNzI6vOAoPKeISjmq6jjwe5dKUadfqMg8kfKU55In3%2F4g99xE1d%2B5eJb2Ra7FbGmvZUdwqf0U04IK6HF1RlfGrPPjP5eaeh%2F0Kzr%2F5VZFPXfQywbks%2BsEhMMulgjY0QFhRDo2ZE3a6n%2F%2BrpPdOG%2FhvaJltFBhUwL9tAXc9qqXJHVvkcyVBUVcMMc9HpXBFOQM0PVN9gE6Di4RLgpI0D5idbzYze5Kv%2BOF3O1iqyzc9cGt7yR71dP66ziEPCKVdImmx3pWEX7hpt8bE72VT54RNn00z7NejS4LjZcA5xkOSD2GYnbpzyeo3h4VpQdPmKlRfCg37ff9J6PHwuldFn8oTzmy2w3GzvVeMrUCqi2Tftmfxr43yckVaffFxJ5smjaVMV4dELCDNZC1dc3UWLW%2FwFZtjxz3TiCcC9mkW3PUs0s3OaiktVOuf6mZbzr%2BxQpHq6Fg3Ces8T4SiD%2FZvRqoYplOIeTuk9sejBuuxVm48o4kf2%2FamHeWHfbzsDNVxoULWPRzBsIOKfGQWz0JGyOvGPr7n%2Bn9I3spfZADVaHFP6x1xv74bBdeKlA8WQteep1J%2FY%2B9cHDP3fLDQb8y6zh0xXfvDaG25k9TMSk5QF1pAHy3rUbrQjw5789uy%2BPXYG%2FFCGDQ5qcX1Zra5ntVTZfygjdWQoeOOZtmEuGvc%2F6Pm4Mj9QyJc0B6rxmuy76OM0tuH3VF5PaPUA%2BXWBI7Xsd8Ipus%2Fujez6zUHC6ZE2QCLZHg9a%2FW1AQr4pTeajW3cdePGNX1Bj%2FxHkrThuVnRInEPspPdMtNdmDryEGoUaURnFkw71NddaqfGI0%2BfHWo%2BHVrZIx%2FGUPuE9rbPczP%2Bq2UU0B5%2FcKX0UVRrnBz3ApHfGuteLXKG1J49mq7rm0QsRs66W2pPqosUNf4QpsGBtraUKSFfCopwNZ3ktnrD8UE8O93pE1IjEDkVKKgMAKZVRkkWh3dw0bqHehsM0oLlnoxlOkcG6bUbRkiMexlT9vHAgYMpADRcaVO3jwUdfy%2Boz%2BGfmhjRXp0%2BdZLfeRL%2BF7Tsu%2Ba9u%2BjxcPVf39fT09PavdkdfX2ndo5vGaoYTfffAk0Kzl1L%2BnLHTxHaa%2FytJKcZiktENDlZ%2Fr8HVR1h2RN2opWp%2FO7tvZmtZtourM%2FABfdlCI4O00P5DD5mtNn5EfV8d1fORG6ixegZQ%2BjlXU4K7Qf6RUmder%2BEU3VrynZ0B0caUnciu3wwknNoBiWR7R9J2zL1HlCbOXrZYwAVnX%2F6ZuOssv%2FNmFBAn2EGNFB%2FhIuEOZsVE%2B4mzbiCvquJH8CAOBCyb2z4Pz1vpjK%2BW46H43vPjCJ9wFd6qjvb40b6rZhfRHIDfTM9AKJrBGSJvSa8D%2FHrGYMnohSiPXqiYyVpAdPXiVk3ULwMbQvrHUZwk2FLCopwNxvnoof3ajOWHujitBmeRC3UeUk1lOF0r2Dx8cwB%2F0%2FhNX2%2FD%2BbquVM1QphAZrNteFC0%2BdBijRQEs%2FGSghgsVqk6C6jYEwZnBPzMfpPk7fWp5vVHXL4%2FIa7wWUFB%2BmPvDjke8NEuDG5ERPeJo9lDRGp9c%2Fqt4TMFjtutC9UyF1b64fYQ1mMJaZUaGAdb3Du%2FftRMbRpMlCRrq87IRdb22%2F9DMotEj6vvq6NSL%2FlFzAaqYGZR%2BzsNMjDlVRh6TlDrG%2BKu5Ptpf32aZTwZTdO1w%2BiaZSkNIOH2xHZBItqfALQFKZOZ97nH7DFRSLntuhDbHfwxf%2FUEzQXgJUy9chIMIpUBNBRPtHMjLKn4UD60Dcd%2BGFJ6fvOSGjt1%2FZ8vxUHxfS%2F04mIHAE84Tw1vVPhw92nfV7CKav%2FYHt%2BJcrUivBef%2BkvCBR%2FuPcYxHL2jMpIpYGMPFjStCCf%2Br0zI4QW3DEhblbAJ%2BcrwuD7%2Byyo4Mzuo0pFxPaw2maynHF3Yv2l8MiQWcOF83bKun3kYP1m0%2FijnPC1PHpQs%2FAaOOU8OFD3URfTxU10sLnD5zR9qbH9LLFouxzsp%2Bw5o3XFReQ6edR9YN0dwfRvzw0hwa6O8fcB4o3zc0%2B6tlWJ7fcs2vMl3CTZdDINkwJqEX33pQfsDCRDWx%2BFxfXOUk2rPfP3xAtoylegpTnA9sCS%2FbSF2v7T%2B0rw5WbLo5UubRo3x1dOpFk5TVLQfFnxQFFX%2FO%2B7wGNVkXztvbC5poc7hnsu0jUUyibf%2FJstszEW0NCTmiL5XbAYlkW1QlVecrnTrKfqYIB51Sl0mb45rHZm3q33Ce31bF7mo5gMvkKhPt7EzlIxDHAyCUvgx0nY%2FnBNj7%2BsK9Lcej%2FU5wYlaO36T3kG4fjh9tvGp2EQ2M85XJP8Uz8kk7iUcGHr0QMesEgBJHMl1c1PXUsBj6RZawZGIue2g3j8jDr7toI4OzOgsp1wpqvPV0LVE1q6bPJdDbQIwT6G1kZI0I8am30YN1249iTvPCvne%2BtsnLMDhrIUOlbiHc0MPx%2FZWcnT7jSPmOEmmenqScqHVTYqk%2FZFlzubG8hv0vZVL%2BSs0c9cmaParG42ewJO7nR44d%2FuYu4UNZZP%2BXXS1zpY1mH7CqF4pJqsSKOB2Un7Am6wJr1OiPDCxkKn%2BITQOZyps%2F0BwfUOmXil6WYwZpDJm1HTE7KX1fHfwkVTDTJGUOQFWbABV7zpmWSuYkaRUNvL2ZW%2BdsLTVF9%2BwJEG0JKxvs%2Bs1DenxzudYGSCTb00k%2FKfeioljnWO98e%2FmCVBv%2BzqT%2BHeu5L52kwlkrnyv6cEVObeT5SLSTpmIg7yXj4Qlqnq7z8PzoJQg6Wo6HN0ynHiAdY2sSS%2FqqfTjDke9Vs4toIDKjgwv6aAPxDC01t5Qz8OgFiFlLJf3B%2BuyiVW733AeDPtDAuBYTc2mkn669ukYdGZzVUUi5VoQa70nmMdV0LTZ93pYY6Rb4KlV0jK30Ntxu2o9irvPCjbzzqxkGZy10qNQt6CkDACgWOnk7fcaRMoNNpLl5knLI7233yDDdEcuaJwOe7xGllBzuqIPyp36ao2Dd5Wp1bJOz9TM2gMdeFSVEUzl2stFrbrpt6bKV6NbdNGpgbSW39WMSc%2FImcQDRhCP8Y%2BL6g%2F%2FYyvwTzvEjs224TCWEP03zAVLqxjPRtUGaDpm9wQ50dwlZaTg7FKmXDgAVe86RDdg%2BHhBt8Ejn7e1P0a02mKJ7wAWVEUFZk5Cm%2FnCiHZC4iv6RDcpSH81JPNlIsT9YNGeUIqTP4AezwnuWpysHF5ChIR9uWVqTYczj4hTlVxHHQx0SU%2F8BnuOHEY20HA9vGNci%2Bp0IMC8fgYpUlpa89l41u3vO3il6t6eimR78mWl1KOy3b5VB1Rl49ALCrKWS2rmZmZiV%2BJMansUWPZMpSGb8KiN98nT1s5kHVVNSOhQpkymrlfGLnq7llYv%2FxTJPaCMblhqmwaQV%2BLqSq7YXxVznhbHi6DAGrgMZBmctcKgfDvwzJYNO9tLF6CRvp8840l6FNEdP0iuu%2F407711ZGrTMv2KJM8Z%2BqLGCXm0M3E1G%2BcJPU1x%2F4KlTq6Bwiwk%2BP0YPpMuxX9U0rFtuv2elbdS1MYWFtYOkNoxJimlM4sGC6Q9cf2zZwOVrV4na4PUXJVOpko3RLUOnX3BSM9GVPFDnc%2Bjvb09k7FyE6aujXpt8QAFNBlDqOScQX1U6vTXIrXeHM6FCs009RRexW2SKbqdAYtw1tYOp5YFVg2g8K0qKvUsEEt2Jw1DCfOwaF2hTxkyYOxLYpA%2BxMxdo0V5bUzQ1jicZybTF0vgAD6ORFuNhQYpr5QRO9DvRfhyZWvLadtXsIhqsr39N43xfNNPDfk5mfGs1c7ah1xYh1BEevYAxcw3QDgu9AW1ewZXUt8BJ%2B2indsj7QOESjfQfk5Yp9bOZB1VTUjoRqU6mTKTcixubnq6FcrHobUgthIQXg2EabKnRepv2o8ghL4wVJxSFcKZDhrzwQoVK%2BTMdsOap0yeRtt%2Fpk9z%2F7vsLax7dNGqYvx2Bu6ms0wiAidpYFSfDhUCuh1I%2FzUJXd8FQdSnwY3b%2F7LFTx58VNfCSJhNi77v2N%2B5e9tCaIRNOVG0Wf2RTeZKkVsckPBGWM%2F1Z3d%2FdXVhdGpTco%2BszPPqzE4ed5zT0SBloI68ePPKhuv6dcKHQb41yJAtZKVMvurVW7w5zAIo9U3FQ8edc2QHsKMuWPtFgii4N4tUUXaq2IkS7QyBRcTU1nZSaIfiBUPezSLEPdEEgIRjAtl8Q7mNw19kKY3UUZRMnT5RD3OLJ%2BZ4k2uHNE9DUOB5zmgRncOwsNzxXukCEq7rI2%2Bh3IidW5jO05LXxqtlFNPgIlXE%2B%2Bmfp5EhlPSRk9uOH9gqRa4RHL2DMXAPId3UXrS1EMeXui2G88Q51eR3Ysgz3UluwY8uU%2BtmqixbRYicjZafY6pTR6I1NN31SbyNiJe7hHFLjt9RovU37UbT%2B0OEe589QFBJ654skK0INFz5Uyp%2F9DZ0vQ9udPjVS7fQZRvD5IAX37zdOOJXJWtl2xn6BfNGX1wBmMAAD5BqGmt3O6LO0ttjfW4RmAv8F9sVTUAM373592QduvvN%2B2zlshESANYSXOhaTmH5fwupNYXUnou1VA%2B5F%2FvnLs0%2BScTTF0FTDgX3kqQmmul5p4nWTbp2OZLpHpRazWtMjvuYC1GQToCLPuddj%2BzAmaQm%2Frkam6K7iFF217UcsZDsFEpfR%2BhOw3aPfRMXc1s%2B6lOiarhJR4OIHDn%2FPXXO9acyVUhh0FMbRdmxMOlzoW0qRDRPtKu6N4bEnpxZANNLTAM%2FwF1qHh1OO2NLDDAnF96oyr8Lb%2BNG2q2YX0dzriicHsIj1hC45pZWS5EX1KHV5cTes1M3INcKjFyhmrgHa7Tdow7uPemY%2BAIGseUdNYhVOrebcMrZMVULTc91FyykpHYmUSwU3Ck7X6gkQaseXu8AbPb0NSTh%2BEypZZbfRJnXZUWAXbAGKFh863KNmPsijV70aBiVZEUa9sKFSqcpXRE8narfTp0aqnT79rO3cImWCHdzfeOBPmF5d44n5MBvbQnmN7QPAS5R4331WDDVp9DlsGLoMZDHopSL%2B9ybHrrv54sfVN91mN4uRzZMVwCoOXGJMsuZCsAYg5vBKeL9440WtNYgnA0mwudbiVKUmWKnredf0kr6N2fXwEWXLLlMvmrFrUIWWgyoNZwKln%2FNwjoUe7qWn6IIgXnCK7ntvYNuPOrV2ACRdddnldDbyAiE1N1CUFClESES2c9f%2Bv3Vs26h2v2b3qwHx0S%2Butw%2F9%2BiL%2BGX1LpyCygbWOq8UNqBcygmfVAFL%2FFGgoPIeR%2Bx9tKR5OOaKujRkS92gX%2Bc3slpvtumr24yqTGHFtE9%2BaqdEoPxXNJP2zyTQtEOwv8sFm5Brh0QsV85XpGhBkhuUkU87vo5MJdYGh5UXN8kKAp3mme0ce2VhWqkk8OJEu2k5DStoddliGEQgQJvViVhFW%2FGsENUpvI%2B%2BXYJfN%2BqwyqfuVUHAXbCWK1ueFe6mZD34T6JGCYCouHlvoUPmm1JR%2FpjcWI6PTZ%2F5Ia3khRYIdjY0mOzdQ7O9%2FmI1tW4JyyWRgLmC8g2moSaPP8pjL6%2BHNkXbls2%2B%2FrH384seij952z0qrTpww%2FcMDxVX9xUdiMYmkzy8Iy0q5w2Sd32XYVDKQN63YaPIi18xAE6%2BX9MeZXfdufJqBoTeBYuw5gTJ%2FygBKtRHoORYh0cYjo6bomr3qglN0TckG235sRlsHQSKq6sy0KB8oyjXsyCIps%2F1YQJaN%2FvnZ5w0Dqo2NjH99nKm8Rwf6%2BzDVrrDGt0mv7zloRTYQax1BF45KtEfxuNQ%2Fx4NeGM%2F01lbh0aWtdJ9GbCQnfhNPuPYljB9tvGr2jM3SldBOfRP9s6B0Xlmmm%2F2zbpoWNDZjfMJV5Kp49ILFzEWTa4BfeOV4HYRxy1QfrT85FwJJ1wHDKWXyimBBDlWTWIkjXbQdiZQySoQe7gSggQiH9WK%2BJ%2F%2FW%2FF4VrbcJ3y%2FqbWAHrJhjZhRsV2sNitbnhXUDKG8Oxbdk1FHx2EKHyjcFl1edL%2Bnoikz%2BmfkjzcfpEyT7XtnFh40TvrX63FgWvsjNjgZYqbHm%2BAgNNf3DlmilyzuBzwk%2BqlIW2ynskm8URIMl00pgYPkpD7bd%2BTEJTheEVTU6JBf8Uf5Of0H1KMaSgbxpBEF2kLra6iyBvv1TY%2BrGU6SjxHK8%2F3mCqmUAFW%2FD2kB%2B7U3vv9QpurSViWz7nQBJd9j%2BsVGOBHYc5lw0jEkuTLY9ZLofn9h78MjBvU%2FUx6f22Mx5r8vEbzRFMlv5GhwG16ZLypHX33FoX56F1bpKtEfxIBcrgh84%2FSg8GOvXYjwsbXHUALNMECjzm3ir2YqS1XIz%2F6tmX7ZhXiD9s3TJoZU7xR0Sv239Kp9wHbny6V3gmLloqqRbMEarhqTGfaqP1reMx2kQjwMlTFLtClSTxbSoG%2Bmi7USkWsEciI4ESjhdC%2B%2FJffi9tN5GuAPQ9g8Sg9quW4DC7IKtQtH6vDDtM5UoJGzGpoAp0mq00KHyTdE%2BT0n%2FARPSYC9t6pOOI8UpF6TXfBzpGGeF4wx%2Fylur3vhwEvlwCMjUuPHQn6TP58gmHHbVXtdFARjIPzS97JFpska8GTl700VsYNU8Uivo%2FJY8YP1qA1hhOAMijCBe6X6iCjeuwJx2HH5S8qwrQ319%2B8etYF7deGZgKJZTjD0nUL1ZQemOoNCBAglt4ddqkpb219dTdEeH49t%2BB0DSmeYdfzoFI27x5RC2vQoYAraNzhojtD%2F07P49u%2Ff%2B1UzNvr72b42n90ZX%2BRrdvHnUd0g8k4wjwJBVPXkjjqfoShF0aunWeA4fbiEexqTK1heKUlaivBGc9ONgnjJ%2BtPmq2Qu2xSHbA8v%2BWXq5c4gr2jpZRXp8TILaqUjkuoAxcw0IF82UJgtvRFIjNNkshvMdcXokRVpLFUsPY33xF2TWTyNdtB2HlOnfwE%2BTo3VpGq2na2XQ27BQPx9RtD4vDBRh%2FIKb49lnZhCFLESofFNwE5XPE9btwOkzQ%2F9BvkiLc4qU2Zjbl4FkI38Hw5%2F64zvBF5WWJBDb1MqJtf%2Bw89PE4UTiBrj%2Fqp1t3qro%2Fdfb7jAkJ6DWN%2F6h9e1fA9339e3dajBhvXIhWI%2BGQiaQ%2F6aG8uhpWtVUBR%2BMi6Xxt%2FL%2B08yKrVbeja8GkbMWy%2BUICne7SVD6OVfL7%2FgIGG13QKv1FzDcaThFt3BvZNvvCEg69No9U%2BPII8eOrDwa1YeEbaMb2cYBENo%2F%2B7ffmT10aC%2BchlznTrUsla%2FKyLByR3%2F3pPO4LS3XM7fjeErSfilOP7ngAZDQ1hd3jx5UzoyPa2UGP442XzW7iAbG%2Bd9i%2F2xtjCldZ8VKjxc2kIjkKhK55o0ZWHPDTE0XF026bpA3Iqlxt%2BqjrVI%2F7mjlhgBo0qss64takPGzI120nYWUtBslYj3oCSIBnwvQ8eV3MuptGFy3HUUOeWFIdtPdSm4O9uQMopCFC5VZ0NC6W9so0qe8ja0ScaSTY7kgRfDmtgsIKyuW1G%2FezhwC9zzt%2BQ8T%2FcHE57O%2Fq9vY6%2FBfB%2BQfFXElGYxIoO9cjgKlpDurhkGUJ1VMAl7qxyQmzzisYfX%2FPtaDbpxI%2FqWEFwlElSa%2BymAjHLTOx4t8gM861kytKZiSD4m%2FAVtk9FhsiuVyBIX1MwsovXdxBDNqRmEmXX9RWK%2Bn6IZEu9%2BMjYhs%2Bx0ASWdRKtN%2FtlNS7ROJI4rkRjcnbNt8ZVk0jLCs1OaFH7x2VGYMWM8uS7Pr2yatQxY4eQj3FP4pnHdvuLxZPFDyAE%2Fp0ZzwaPG9duGTE9bKDH4cbb9q9rQNUuJ7v8n%2BWYpmUuvM%2FqCBZIiSq0jkmi9mYM0LMzVtgRd42AQ0iVzVnaqPloxbgsI%2FCNLpwqzxkHBBpj2P8PFIF21HISXtZolYTy0FI2enGPOY%2F%2F6CepveTHqb9qNofV6YNKqL94gtjxTfZvDOX6BQtdNnAxvFtrZKxJHynZ5bpIxCYJXj7Ath%2BPMYNePBnlelw6V7KR4pWmt%2Fw627CpZmF9cawj2Iv%2B8qBuQfN10tHlFhNrOfoF0G1khNxyTkpXzRP1%2FCxIEQ1vCFMv%2F0HWBCI07PGKMxJ%2BgHlT4fUDb4WlPwX6uUJnqPqOQf9FhsIs0R1GQWUHrv8lNV9W9sVZl0fJH661OG5jNFSERItO%2BODYzuFEjEdSOWhB1%2F7lLtYEWOHU3CW5Rs23Bsp5%2FpWTMkUpuXX5PpwsVVa4aG0eduvXEHS706VHkWSXnM3MuGB4WQYh54tJtVxS%2F60fULJz6WGfw42nnV7AeM8635%2FV%2F%2B8RTFMy5Ao3Wm1YwF81wpuYpErvli7i7liJnd7Nx3UcoOZfWo4TDr7lnsh9avApOowaw%2Fw3%2FHHQubT4U%2B46qLtlOREmIorRAIKb8hA2Qe8z9qvY1j31%2FJoLdpP4rW54VBuqS9SAI0OjGpyCwiq1iYUOMmfspGkQt2U%2BQvf6SDfXONlFs8pvGIqckQzL%2BUvIbS8TT70NWfcGsYam7cZA44%2FEM06JP%2FUzrFHk%2B84UUU3bOZELRuQ4OYRLByxQPpL4WwRjdXlOZfhVTZ%2B33psBCzwQ8lFVNxp089FjtHUKXhDKB0XYKlGilm7SyTaIt%2BXE%2FR5SiocKYnOGUTU3Q7AxJXUuhsMBIP8mdhR2hAJoJCt7jmgEpDarNv9sUfghDBrasEh1vrjdvXt2ZIhypP1DCOAJFK03jY%2FrwK0VAOeAI3KyW%2B9%2B0MaUCboUra1qtmN86%2F5yErovlGvTYugp8qNFq0zgTDYwOJ%2FWt%2B%2FM5kVUWuCxiz7vnnvgvfiKAJCLZNnOmoJbrutLnsqZT6JZ2%2BcgWzChNBXqea%2Bowr1WQHItUGCvwxwrdxAnoyQG66Wm8j7PsrWm%2FD94t6m3mGovV5YaniWJrlhF7KvY%2BRWVwRvmChxk38%2BgOnT7KXDJw0R6S1PJCyuG8tRSTH%2BFm352l5Dds6REuCPV24Nfw0q7VaFYPYRYzTTfKP2EXBjyfe8JHA8WRozdpLjEkeAekfPg9WBQPkw2G3elHL3u9LpaRqk6IKWKvrp3yfhYZOn6pelhsobC1NgIqbWn3OPGTbNyOTrPm19tfHKCifaEMi0gTR7gBISmfzFCTw3dLra69YIwboayzbLtfGIKKB1GbaJNu%2FbylRecRQ8P5ezLbr6%2B0vmYpX%2BUKhysBDGEeQBU%2B3RCO2BDKaAx5GtzJcRIvv8fAr8X3WKmn%2BV81%2BXPXr%2F%2BJ3%2BwftXOpNYNAyupVT2KjvTkfpjtf9j%2F%2F1I%2BTRfHoXOGY9mFT4HddO5OOw2d78m5pQVgPN144doTMvApf7%2BR8xDUPrE7p3qy7azkRKiJONlTYXHq2r9Tayvad6mwJzVur9aj%2BKOc4Lp%2FolyTdQX0PxbQbv%2FAUIVUd%2FfJr1QOyQveRjzha3G1RIzSkHpNjkWNyalFSjL68BPE%2F2zT4YuOg7bl2bqNWcvw789I1EAv%2BaZkW465r8xxNv7Ex6tNR7STHJZDkh%2FZUQ1iYZP2BpjKxqkUg0Q79v1VO4aeNvra6fCsyeGppqUqsDoDmCwsLZBKi4qRX5NfLGF52iO4Av7Cion3tEGxKRDNv%2BPIWki3Dm0316OjHTryJkJcBEX9NtE%2BhbKtaa13psjiLZ%2Fr3D%2B3fttC0vpsd9bdFW5IzgZhSzt3Sosuz2m67OiKcLMND8MAw8ADFneCi%2BJ%2B9R4nula1NNLZGj3VfNPpl96UoXGz5Gl5zUOvNRcjzPP3%2FHH4cf%2F546efRCxBwfTEqRcrp2yob4wN133fm%2FrUgXP5rAeNn3qbpuT175OxIhys%2BWJ8ecUvahumg7FSmF39saK20mL0S7u5TeZhIXhd5GFdbU%2B5UZBfvVWoui9XlhGm0IduprfPvMDIrwhQdVm%2FhRptxoaDUlSDmYs8XtBhVSc8oBqb%2FJYeAffEVCeU0tNftnDhiOmmDX1bI4asJfx07ShQxAmomQF4uQ%2F1jiDesUEqDxmGRHvSZHJYS1rtSdNJUVGZP8z59Qg9b0RAv2R7G1llhQWVTG3zq0%2BYYNPNL6LANoZm%2F4o5RWJy9QtWZAxY3qHlH8WuXW1RRdjIKCLQzn%2BizNTlXmIyRu9MbgyvaW%2FRXYTWLy75v7h%2FoaO5TPemwOI9l%2B8LnDB4znf8U%2B9BtRkTOttnWThCdx8kOVW665LCue7qQwskrwAETL8WjxPXX2WnzP%2Bft8LDOI79t31eyT2aUR%2FBFnvSpS%2BX4a5dPTnXOdZg689NP%2FmX78EN6DRy9QzPHBpNWw4ZU%2BB8seWPHgsge55XmebKmRzHadTjfW8atDex760qXsQyX0OhQpF1Q2h9GPqIcItjmaEw747VV6G%2FMTiqHehgQCRrrq%2FcqMgin81qFofV6Y7EZ%2BLVJpaB0oCsmgCF%2BYULWJH18EDiAge8kgQVp4SBcFm1zVzfHZ6svogYv3kcmFei2x1NxIR03rr9PfUwB5gowT8po3z0XIf%2FzzEY%2FBS4pJUqfPAFZ3T2mQdnLlnc0bqDLO9fwzQxMpNc4uMP7WoQ3GoPafNyCPpppqLDa1OjmBArdpClTcqG4DaTWkI%2FzCG6fL2VrhXB%2FYwgjRhkQkdnQAJD3a4i77Mu7ca30MafK%2FXrH%2FTdJmW66VMT8XyfapPWa%2BrvH8n94xbgJyVOTGd0zvMfL7E%2BTafqhyeXY83QMBnjKMPluNR4vvmYhTPl%2FMk5xVurbY0e6rZj8uw2R2sYC1Qhq75kI8w55fzwBI0uhY%2Bk6cDT7%2B0nLw6IWLOZ7Gkbsbzo9cWVq3tn851goKcbX9tVgSeen0%2Fz208lCraJCG4UrcmUi5V4fNYUw%2FKe8SlhGKSm9jkZ2ntyGBiBjpNouC%2FWrZUcwlNQwG5Halu5WeVZVBEb4QoWoTP2WjSPbSbrVUHCni9blFysVF9bXtVK29fb68ZrXIa8RSc23ROmr2GkPNPpjrDA478tQFycDssTMosmUi%2Fyxz4g3cEcYkVRWTYDPxnD4JCw3Aj25yc5IklXRKGag20SXGJz5srVXj7C6urt8VmKx5PguKsoNaUKuTAyjWSjOAUrElh5h9yefXaBqVLwrk17TV13N9YAsDog2JSOToCEj6FuDp%2FJaMQFqv2D%2FU9RVLsSH9qW62onok2yt1Y7L53HOz%2B%2Ffu3j0zZY6Z3bv37p89cuyNs%2BTaKlRpCZ4JCP975gSPFt%2BzoZ1jjKSIA6aidG2Ro%2B1XzX5cfRPG5XJRG99RVv2zaNNWaXQUrt71Pv4lN1yxwDHrnn%2Fy3TBBPsEJhyb432RQsmvRW0%2FDRdtR6bVMp%2F%2BrFbTQYaOustBRhdMckBZbi1RbvqTrqicBCb1LWEYw%2Fzamt%2BEEPeptaKTbGhQbitlRzLWDDlOb%2FH1CfQ2rEfEC0gKGqtPYKuzz%2Bw96M%2Fhn5o8Up7lGSvLPVQWnHTuYWqAJkZb8D4Fd9%2FX09ou3jrjrbMQgTyFP0%2FuOYGtscrIbHysmJWBDE8YkOAUxCdyBCAuRCGGZwcUVEJfCemaSIh9rVKoVKCUpslfj7Bqq63enL4rXH69NNXXIrIPvFoPiI5EBlI4tE9M5j18zkz7RaKSWnuvzRK2JmZ6dAUkP20aiky75G8uoPXhsewhfGQkSpDaVLWObkGy3oa1Ntr%2FwwqHZ2QNPm%2BPA7OyhF46dPA2FErk2Q5WW4hkF5W8dnrj4nlkAl8tkD7%2FStUWOtl81u2P%2BbfdgMntyYybHmS%2BX6Vkoc%2Bo0%2BpOzx06HVaubFi9UzPGefy7o6UBcZpa%2BPCqbi27Nq6Z79zpHpcVEc%2BXSxMojbNRVFjpeGiYHpNgv5wAplUmUL5B2U2njeZeQdj9stu4GehvELxG9TftR5GECLwl03EJwHTIxToDKoAhfWFC1iR%2B5NF8Y9B9kdfpsD9LeHJACCN8SKfaN%2B875OCl5jflT4vM5BGqNYxQNwFvKI8MJVbJrNu46TSGbf6yS8FvFJKJoD8fxfVZikSFEIoQ1VtlSGZVm5K27kPhXH2s0IFFSrUpIsJVS0vultaZgxlJnFfXRoE0tVQG10MF3O0HFTa0shPo4aDXsYpJMuibaE6Jz13N9YAvTBNHuBEh62jYSnfDAQXIUXQdk2wPFojXZqRqhPaQ%2FhmJXkGw3ojaXbD%2Fy8vHjR583x9Hjr7z25hlQbcW1AbeFeCBFKrQWj57KQJ39BbIAdCZRurboEb8qTk1cNa%2FGWQos8bCif9bKNreMPEpPR51G34yMjFU8qo9%2FoWPWPf9ehMceUQ5LxEkpcf1%2FD85oS%2BacTNC%2F7Lepg%2BYWSkUELXTCNEwuSKtzgpTKJKW0kdQRt6XQI65kdvAGehs4hUf0Nm1HMcfUsFLxE%2BhSht%2BiM9gZFOELE6oOkxVXwzKewT8zf6S1HJASSDgMsB6muOSERYbyGrNkDwq5HpHZ%2FeaYnLQNwCMbhzjIE4n%2FyACc6Kssd61BTAJ0HDABWMOAhUgkhTW6Ca6EzqoRif%2BmJvwyICEhCJWSzL%2BHSkn%2B0lpdv9tSZ%2Fxnuj%2B%2B5tktqJA5kvBoGajScBOg4qZWU5ykVb4Av%2FaN9kt4evRcH9jCZN7284eUPfX%2FNyKz5ygtwSFDcytOXd9dGkQksMmS8IEk2X709Z%2B9aY63fvnOu3bHAtozryuu3Uo8myed1U8r8eghR8xSqiwAo9ts4vv4VXG57FdtvW70ejbO2vILUrlQ0pf6B4NpTgUh1t4AMKRkoHjkx7%2BgMcc77pgfp0u53N3U66w70OUGQyU3ljdzMIHpRfitpBQbNOoKleTyqdIwHYqU4oFUaRNSGgNK%2FirYNgYa6m1ELxLX22RHwX0wO4o5p4YctExi1sBBJy5dXvhQyV9UKKtk9eNtd%2FqMIzWnPJAK5QuHATaS15CoOkfNUSHXdbrruAbgoQFIEkiVmhiAo19lC4Suk57Lf0VOfl%2BCjQ9Sn8%2F6pA8L80X7%2BgfEqvHtc4xJ1Mca7b1ShjoTgWVnRClJdf2fTunhXuyP97iFCpk1qEqLQbFvp1lQDUVJtni69cJymoI%2FTjeYoqvn%2BtAWJnZ0EiSdan9i%2F3f3TQfWQ4V%2BZPwxNNdoakT602WYN5oATLy9isl2tNT6x7unjh9RXLtFeAZLqyD8h9VPT0vxMFaT1YdERWUBWiy%2B11fF5bJetfXHZWZQLhtncU8Md4ZbjnJ0EWK9isJ6J8b8hduIi7%2F7L34dH%2F9CxRzvuBNnAy%2B85KirqRrL3UxCMZ%2BcrJMbRraknkWFe5ewFBs06oIeKQM%2FpmE6Fin3armyslnHNs5QgtvGRfU2fNMjepusKLgPtgBFXDFwxeIPfRjHBxe9rwlqyF473MHQQaebeeEMivAOhRrf15VrvpLVs%2F8g2m7PI3%2BkOOWAVIDsIITBh0OX%2F0BeA6x01NSGmkkDcE8hHOR57tRLHI3RDPlHrl%2FeSGlcUs3JQUxSnxp35v7VMih%2FCKuvz9AR36rx9LFn1Li%2BWDZQrqtzC8y%2FR1trFzsTlak%2FI8%2BWbItuABBuoUNmLWJpOSigaRZUI1HSZ82OM3lhOU23769fVVN01VyfJtbdjoCkU%2B1oLZgFOeZoL2TYxVhTEuz2y0IB1jpVp7RzyXZrpnnqXTLt986%2B9fpRY7ujuHZr8GwS4X9tglY%2FrcHD20VxH4mKqky2WHyvr4rLZb9q6xtnb1%2BWPLYFSaaX4JYTerlTSb8BCnrnvwxSd8ZwsJ1lK%2Fz%2B%2BDUZAHQ0Zoq6QmeDouroogBW6so4sUwulmpfKrvh8S6dfuc%2FYylWtiz6uEUM%2FDoRKfdqXIv%2FJW3WuYkkoQS3DaW3kWCvkgxjHeyP6W2yo6BTXatR6JVk0Qev%2B9jNn%2FgkjltuvO7DH1q86Ir3xRkZBy1z6HDgoFNgFBOXLi8wqHETv7SZNpDVgyOy%2F0BlQXM5NNKaQooXNg%2Bkcv%2BwdMDBYvj3ghSX3E0l%2Bd9q2LU21DRHobunr7jWH%2BSJGf5YtNVojCj5t2n5Ioj%2B%2BjAmYXNyLYhJttfKEotsBOUPYK0280XBRdCyiR37yL7piopJ4mY%2FeOJV0Uby77HWWqYVZ3BLU3rOdcvL1kT6vX0RS8tB4T%2B7NFBxpZSS0yQp9VK39tcXaVYL5vp0ACSdaoep0N7%2FLhb43RztVVgjbppr%2BkT6A6kNfPVdz20B0e3OXUZqc%2FLsORHYnHz16HMHreE%2BuXZGPGT%2FAZ6KCP9HKpOw%2BmkhHt4uivuY%2BuxuJL4%2Fm0F8H7sqTtUmrppH4%2BxDnhFsOZlGMW5DVz%2BNLkr60FOnas3ObEIGli%2B3K6elhY75ysDiji7wWns7vYN%2BB93BiuoVm8sj0NpYpEin%2Fxrrw0HSBN24WFm1gV9nItVtg9yJki0tjUHCnBEUSIHeRkg4EEpXT0Rv034U8eP9V1134y233nH3PffZ49NL77j1k5%2B4%2BaaPXYe8eowaForpb8B7VFBDO6OK8AUGNW7ix%2FYsPzNMjqh9yttg9qP9%2FQUpTWnzQCrkfwceehAdSXHR%2B9%2F%2BSTlqlsGuaajZ3WOObvHXGdywMRzkeY5rtiqXRcj%2F16QmZ4KSi8ckVUl4jGyUWGRtEZQ%2FgGXmi0KFAO6PxP%2Bs2bFtuu7GRc2Y%2FfBJ4iKrRGVKKanTivU9u%2F2KKxaslYGjPu%2B%2FCpnzAYXNIAsorZT6gqTUUzlNmlJ%2FVBvtc4pu9rk%2BnQFJH0Ybsbz0qBXa%2FK1Y7HTTiQjunjDWdHY6VUhtCgWXeIfNDuz2t1JqY1sTjnznwNN7psyoXXLtrHgQjZR6PTy0HoLCv1oFhr5W4WFlq6Ik%2FxTl4E9FbjCZevLiV6XLf%2FyqOTbOVpPnt5ZMo9huG9BXGWadTMuS8xbPU2etczs7fUKl0Rc6Zt1xx2l%2F2HCV9na3VbuIpCFd%2F8KiaN0aFvUDKHghvTlDXa850R%2BKFjrMnXQsUmIM06tyYTJBlTP6Aqb3p3qbkISj7BPR27QdRVzntvj6m5fcsfS%2BB1YUVtujf%2BUD9913z9133XGryatf9f5IrUfUAIBeOd9Bh1FMBkV4J0ONm%2FgFoaySVauHOgedZgTpcEkhBQXLAamQ%2F2lb7nJaBwmbmG7Q46Ow9Vl2Xejq6ekqJE6f9NcZLVfdIE%2FKo59tbskm%2BbcDp4olULGg7K5iEncyWH%2B%2F6GKR7gIofwDLzhe1%2FYfC%2Fd993Sb%2BkQNBuq7ZkfA9cVFZqpTUacWp3bvwQxrb%2FPP%2Bq5A5H1DI9V8SqKhSanhUUuoXHadL101Ks7LP9ekQSDqdcsMSkyCF0OYILHYc%2By%2FXksG%2B1kiXdjpM%2FtuvYbMDCQ6lNmhN2DMzVcffkWtnxGOjEah8PDzUHyHJP4nrtAwPC1LK6pCinNQTGRsMfcVi2bkcrprHlFw8v2xTqZU31xxl3iLTsiYlna5H5uo0%2BsLHrC10uNPy5DdP7U7cpbntqXao6tc5qgDprV8L6DpJ6EqclIUOcycdiFRjVEO2mEFStBvMmrPHAum9RVhpQm%2BTAQUYVYtR6Ef%2BAzctufPeB1b2l5zZ%2BAaYoxdWrHjgvqV3LLn5ep9Ta6sB9l4IOiqvoRJmCi6uCF9gUHnE9c%2Bc4i8aLv1QZ6hC5IG0lgtSkv8%2FrttOIORAy4GXxli9UdNbQvrFXcfz16lPzcggT8qjn%2BCK3RT537VTzB4sLFV292MSnrr6CQuU34c1bWAdAQeR8ax76hA%2F3nxV0yPhKw1EZcWYVItpxa3jUxGbf95%2FFTLnAgp3PwsoLUr6oqbVYhpTSsbpWmKgp%2Bhmn%2BvTKZD02nCTCG2enJWW4qIj0Bjs6%2FQ%2BklRH3y%2BS%2F%2F1MvK9ZVVxPqc07Rtm2f6ZunK7sf7CcXDsjnucP7IJYR%2BEpjyRJ%2Fgliy4hHr0%2BKcYu0IRXfF6SnpQlfsRyumseUXDbO9jtC%2FSVI5oW4YJxhBbCZRsff6jT6wsQc1yqni1ottNARucJMWpUNJZ9pK4iVzNr1u4qRuXfdcRtJqF%2BK7TInCjBVDbZDkRIjdwoSLe5E%2FKuwYAzpUZ%2FS2wglirjstAAFGFUrUWi%2BcO3Nt92zvFBaNzQsZuNm%2FijUEiWTV7%2F3TsOpF1%2FWeH%2BibIbQOb7Hz2DHFeEdCjW7iV8oBlfO5w0e6twOrdRWSM0pD6SyzdX%2FhBM8J3eOh5XDoOmNLHA9ST%2Fddcz0fjfIc8%2FTB76TDvJ87w3Io7lgN0P%2Bd89AAGrzQ9u%2FGpbdG8QkSPQTVrnqw3rKzhc9eeacN57VJf6vf39z7qO0t2rkq6OlWvrml0fGscZGHPV5%2F72QWYtY5gRUMRMo%2FXRNlkmrxSWedvGJrX4BxEBP0c0%2B16dTIGmeBKGNazEA%2BzfkHuZZUNcbob3vpW8t9k3yX9T1lRoMN4uU2rz%2Btl1vx%2BB09dCyu5eQa2fGgzZdhceopSRGGUXyPwOeuNsJGTeyABTliC4XPS0ZfMXad9Xs0WE4JRfJ9C5HqP%2BPTRWm0Z282%2F6xEE%2BjL0jM8Y67tPwup9BC56nd8gxI61MgkZl0e8%2FjFYkKDar7H1jxwD1C19nNRR%2FqVICpLHQ6Filp97ZAZp%2F2e3LIFmg3C8bCxbTehqeo3iY7CjKqVqLQMrc7711p2wxHDDua3LZtW71WcX2SwyavXlhuOPVN11ze0IyOsplU6JWS2F6m4OKK8IUAtRlRtu70FhR63lFO6RqNNGxEUEjNKQekJH27OcFzrK5SXLrpbXzEI%2F11Q62nd9tjrxvk%2BZ3njr7KQZ7nfv7yrJNHq%2FU6zrSn%2Fwz%2FZb%2FNHY6z7K5jErnZgDVCWKD8PizOF%2FXGs0YT%2F9pLTA1TYaCpJshpqRYWdOgJld4L41W0oz7rZQ2cPvnQtBoUPtgMoJSXVH0cmXSh1QPd3qDY%2BBTdZzPN9ZnXkOJCm5XOXAjsvyy2%2Bo5iw9tfkup9%2FdJbe34hQKQ2B48cR6%2Fehkc%2BV1h%2Bz%2B233MD8TVY8zyHsUXhGnPRnVRF4amMtwcOx09STktHAQsIX38sOzRpptIe%2F%2FVfNvFXL7eCUXMaudubacJBGl7x5hjT6AsbMjjtfdBs647M3cLc4YVSY%2FegN2CROFCl1meRpaeXvhHqb0DWBz4yy0OlMpFxRJ32ZPV8Wf8iWR7vH%2FgB6G%2BTald6Gp4jepq0o4oTayNxsYmS0sgXWg24YUn1rrVaxefXBElbA6xc1bqIVEpsKvTyxAyMzvaPro%2FOhZhJlM1rWVoWKveRx6LGsjZEWc0BKucf0U7u2SpKzplJcqumtNjXukf49Tz399P6Ds%2BY45AZ5vnryrbPvpY7eh%2FdNO3n0LbHlWkvQ%2F3JPHbAe8cvuOiaRFQ%2BwxncQlqH8AaxTnC%2Fqj2dF4j%2B7VKvoFbnic9noqVnbpFP%2B3TJaMAxTVb1MgcJD03pQ5hPNAEotDzJJq6BotR6ppafoIkTLQLQ7AFIkTYqrPnd4%2F66dia3%2BiLPVN176TKqvYrLdKwSI%2B85mM2Dr8MuYiTpsXIlUnj0LniMieBro9%2FEMwIWo9Xg4djpdfaQaRc9%2Fiu%2B9AfJRX7F8r9r6SVnLS8GUXMPlELs6D%2Fca0%2BhGYEO3nHgafeFj1h13uL2khqHABrQPrFcWZ36flpv8L8WZ1MTim4aKD3JP9zJFIoygAFNZ6HQoUtJuckD67OO63EuYfwLt%2FhL0NpJrB6YgsInobeYlCk2onSSyMmoKnTiQWa%2F%2F0fSOcfO9YdQ%2Bf%2BOjV1%2FWoIm2i2SHHcus6DMyi3feLQSoGUXZvI%2B8%2F6z8tMHpUyPt0Uj5nuaBlCz7KScv%2FhwJPgfc%2BPKaCbHT%2F%2BPdKek3GfXnn3%2Fh2CvmeO2nbpAnKDaY0tmTR5%2FFbFDIo6NlC20%2Bsw%2BwikHZXcck0vW0S%2BoPAguUX8NCSOKPZ12cQaqlizZAGJ3LxmbCCnl2OAyP2QqGqapelg8ovMSZQPG4%2BtexPOzUk7Tos8PvwHBHTdFliNYs0e4ASDGBNOoN3zt84EnHljGfjhY6YvXDZDsLATDcdP%2B6Uje4LVuHMadS2GfC8yJ%2BHq5APHD9ETy9LcTDNr4tFPdRfB94%2FmcS37f%2FqtknZQ0aBDJ8Ak9rFyw0XWf6uLR1YpjrBdPoa3siafQFilmncbjTOmUMBTbsDUTB3TU9dQV%2FHSTEHuZMstExt0tV9Z6OmjVTz8pCp1ORknYbVhfQ7kCEw%2FyTCG5GnN6GZjuU3mfU27QfhZ5l3Q9zBsudrTkKOiSH4DX%2BJ7un6xVUa%2B9fijVQ3XGP7MgIVk1iEZnFO%2B8WDNR4QK%2B9TogilQK12%2BkzjhSnXJCSZR8EpRlUrhZ4H0gozQmhwuxsSvpfPfnmm6fOvGMOmd7P4723T7xoHL2RZL23KXk0bee%2FBVhDlxaT7HH1B8IC5b8ArNNmyFCT41kpFld2Aiw8WISxuWz8wCfG%2FoACNW8YnhrzwPuv6mVa6dZ6ULVmQWlnb4NEE2347BREBwDGraboCtFmiNYkce0ASBFrFOk0eCFhy8VesdW3X0JqM1GG6WeSbB9OZv86Ix7zpUX%2B7PMHn5w2gJW3TkY8YP%2F41HqIB3ZD0vfbQjwskVbThqN0twmHkrdQfK%2BvWmjiqrlNyrKjsKRxFia19rG1QprJ8Sops2%2BUzz9KV60NXJQH80LEHO8NlJ0Np1DfiFxv6qA5yXR7kC0vubFZFqEnkNRJGQaMykKnA5HqBpkuJjS9FCa%2FB7Wo%2B3G76uMo9dBsR1Bk1du0H4X2R0a2pIZ%2BrL7efuefWeiXuSd%2FsWe6joXTroFX6zsus9Y40mi4REkLSWwGB52Ohhof3dHA64TJ1Yj%2BOXLkhhQfWw5IeQvNIw46bPrf%2BVmxgOLJa9i9%2FUpK%2BpFR18e5d0%2BffNnmLWsg2Xfe3Azx4MDZp78L1fOXLi0meU4S%2FRFYx44gJGkwnjUqKiyyuKrDt6ivzqIbXdVn5IuhQI0vkTfmQTvqL9KgGGG3GlRvBlBKPbHmUYxoY0o9pdU2RQwdgJht6im6Z08cbjZE49EBkCKlWOgkhG1Pu7Zf0Gqo6%2FtMJh1q%2F2Cqlsz%2BRT4eX47ZNtsjs6Z8pl31s%2BPBywM%2BTzwFUfiPtBIP65Jpw1Ef3SU4vTSVomUU38evSsFj%2FKo5TspCI7oNWVcmihrXuAJOvYpqGRrlV4OuWriU%2FgJpdEgZrlr4mHXHXbrT1gKfDd5e3Fc4aJJHMq1e48JtkEmkuCNdzBskZRAwKg%2BPzkSqZxZVcAq1o5WAdmMJ3fM1dNjSbGeC0vsMepv2o9BPvES7WKr7TBo98c906%2FbWXX%2B1b88U%2FtasgZCv6TsutUcDD63KVNX7JDYuCulUqNlHd%2BhmWiZXI%2FrnHA4i1a4swdObB1Kw7DuXu%2BKWoTX1SnlSCH6qq1HyGtu9fdpj15pfv%2FPOL9%2F66WvHzDZvFcuOZF%2F7vqa12XZVmz1kVM%2FGC%2FrSYpJTKtHvZ%2FwJC88zx7M226ehBskxfIvPZcO9x3ux4XyBGl8iuUwTNv9Yw1oNyqDJAorH%2B6%2B%2F9b7%2BIdniBySlntJqU3mOTtE9sKvJEI1HB0CKd0gmbNuyZSed52Df%2Fh4w7wlO1RJ1fb%2BoN92Xrs32e3izVZdCZjwom4HP%2B3hA86utxMOOJGoSuLK7E90lRIqWVXwfv%2BrYRLartl48z0lZ7uNMutareH7RpmKV9BuYRg8JNbtqsbQeO23T6FU6ni18zGQtXM1SfWPqszFBfSOKm1ydffcc0kkDcYj6kT9EZQj%2FXCdllH8mlWKdi5R9CXqgFpU2Hu1G8fSHzxqRHEfogiXKrppBbzOvULBQunQlol0UaeGiI%2F6ZzhKtvPPJb9sMStmugUtJQVQTrQUEexWUfFh0JInNIArpVKjxd1r51moJRET%2FnMMRINUNyqzT5YCUfAgVVbMn75meSl4ItdOKvIYJL834zXHmlNHa%2FPS1V145fvT5Q8%2Fs2zMN0kKSnaEiYfwFD%2BydmZoCz4%2FGJGcuBMty%2FjfNcfJVwkIli7Ca6tPQD5Q5aW6sqzWk667C6H4WDTpp84%2FcS8RRPwdQlJk2B0qHlROuiU9S6qTVwThd0AA9RVdG3GaZotsBkGJNtinb%2FoFr%2B90oOpoqE%2F6g1V6ynf8EX7qmXCsdgkWnYtuZ8RwDe3dGn8TTA%2BuhVuKh%2BC8YhBJOQfSe7%2Bzi%2B%2Fyvml08z0lZPbJnF5IOWnl%2BrUQyYNDhH53uow9L65GTvwCl4ayThYxZsRZ%2Fp%2FUsnYJJ5qDUMtm%2BO5h%2B4ttfO3NS06NQn%2BIMauV2zu4r5ZXWyUhpOBeARLaIwH3ajcH6z4g1Uai3wQZmg0KcInqbeYiCx1WmRcoGrlC3wUWnNlGrmf%2BvoBj62SGzCO797rNY04eKQV70yrCJ1nFo3lgUHTM46HQ21PihJRB62GnVaz6mfW1cgjT3SHvPQ4pTDkiZ9R2wEd7s94%2FM7v%2BTOnh%2BRF6DhBfz6Ybyg%2FGb49gLz5vjkFHeH3h6r2kWwTP00DJQpSw8bXTrrgMvvHTowN4p4fmxmCRM8ztYCEXM8dx3UlibVEiSweZfdZSQGweJcS2wsZD5s5iq0WYN2lE%2FR1Ak%2F82A0uEbhvU%2FOrLl4lN0QQP0FF0sOVmIdgdAijTZhmwb8jnR0WDKF5l3Vb4eggGo%2FBN8KU25Ntd%2BBMAV286Mx7J3UHviIYaMeOLDtoRxV%2FQ0eT7f2cX3%2BV81u3iek7Kgmee43JI8vzDKB4NOUpr8o2iasYxjvfzFSU45Zxp9gWOmS4lvl18PuDInmX8PN1ZymT3aPl80DvSInN7hJ%2FS03Tz3dKWB6ESkmnYDpMoWhYWE93D7HApPb1Maht5GZDdS5YnobeYZCqbSltxbcHa2JUOobYIGnvmj5dpEWfYXk2t94fABSSQhiPVL8GyiRXVnq1ttquz3zuCg00lQMwf0jGHVsFNZzql%2FVva1%2BRwaaVUhZWtlHkih%2BioOQd1w7PsHdwvPj8lrxMznLZtPB%2BUH4589uP9pc%2Bw1njszU84mynSKWJPYK5qvSNjnEkHJyz%2B0yw%2BtN%2BIxyXtnTkmaH7AQipjjqT0Ci%2B5VClbc5r8BYQ86inS1RgtsvsA2LE3WadOsci%2FzHJR%2Bypmz28xJWpyt5RHt9cU1nKLrE20WGzMcOUDKjf0ff1Fqr2L1s6XiMe%2Bw5xYuO7YdGLJ8Soc8tn11C6IRy94RjfQQDzC0Dg%2FvF6V%2B5EBqmnwLxff6quD5TVw1F%2FF8oSjqtS4Zlws1vWXY9q3fxkZZUObJ8I%2B1UeedYJ0zTx%2BbTdLoi9uEGVFBbpipEAnY8bYLysMP%2FsBtvGkyMeDh%2FI%2FGxCNy%2FOvjYUJPdXNxT1caiA5FqvcgnS3yCgnUzwBFLY3s7C8j0QvNTrCda73NfEShU2mjSWHLSiGHNwyaoagbR8oiL4Vx1Q9fcBJSBrHUhPA%2B2GgE4xlowUSyQ5PhSP29I6FmD%2BhBVNjuyEQx%2BRD1z3nka%2BJIyfodUkbquSG95uNLkxk%2BiM3A86PyGhhmnjiKfDoo%2F174bE5PmWOH8duvlmVAhPGIwni4bBUpBCXNxSTnzpw00QjS%2FIQ1M2WPugdruQpJ4lsGqQfNEdRyG0mMpwKbz%2FNTDQ0%2F1Uqlci95gSpmAKWfcm7ew2s4Sat3tczWAvU2X8DzQ4g2x0KTHWYw9M4DUp7s%2F8ixo672Ssq%2FRfp%2Bkfz3em5DW9A1im0DfAvwpNFIT4qn0Eo8vF%2FpWiS1%2FPQBnWi9%2BF5fFetyhqu2vguc4nlOyupKFDV9yfxcS6j%2FkL75Lsw974%2FopnXOmUyjg9u1C7P9Rk6Y6Z%2FJXg42cdDmoMKOO7tecgRj4Iqf1kW3j9cld7xjlx4t6nVz4RL0z6RXWocj5R7E8WDMFvk9xeFAPHpqssNWbCKdw9OqQbaJar3NPEZBPgVyMojCFkwQVvf19BUHhsQ%2BWoyrYB6R6Ne4E%2BNW8z6YH7Tdb6KFt6tSHEZEIZ0FNbuFTtjuOBE0AHhglH1tfodGWlRI7SkfpEjOyAyfXd%2F87lNNyGvePXn00AGXT592jN8cFekX2WTGRchoaEyHyNaLIkHJs5cek8CN0ciXAGuGsNzkulGBxYnVGbYMkgA1mzmmlAwFNhfOrld04VXlXvIChR%2BSAZSyAe516wtHahXXDNFjE9TbfbETRJtjoX%2BlTHUOkPJj%2F5iO9cPjTvpDyr%2FF9Nky%2Bc%2BvRzfTFhRttuxb%2BEGkbNEsHkYjVu3fGM9YNTMe3i%2BukOw%2F4QPaevG9viq2sxZfNdt6qMTzA91U1PgmteM1jsxlGh1G%2Bfgj7fPhnOnS6BswNKtdmO03JvPArP0zwyYOf5QuFk1SalvZCfTjqe5%2Bx8xOyR1P72aNVHdfVdOHJvDPXNTBSMlmAFJOwcV7w0JCqp9JanmSZMf%2BA6ENhu46lnE2oreZdyhYOCQrqVRhf1xcu25tsVC0tnLylBsgJ48fDvRr7OGT1aaKUkRNN9FSxxvLC3cs1OwWOohElKKNHAZglH1tPodGak4aKU65IZUZPuWv7trfhLzm3KmjB%2FfOuHx6RRi%2FOYadU9Q68wT1r3zAcOybr130KwYlM%2FuaiUnOHEfjsqT5BZZMrhv0YF2%2F%2BLJfyRx6tXbUjyslKbAZ5M%2BiPidSeEXuJR9QjN2bBaWx8X0cZp7PJhnKepyu6e4g0X5bxkJn1qjnAClH9o%2FpWMfdzAyPYn95FLIbTvySqVquNwBttr5j0THLtlXbVmY8jEY2Mfmv8FDvkwUP79dXgiWpSkOSArhLy8X3%2Bqq4XLartn7yWzmRpm0Rl1pOyqJJrbkn5WqYN0fIRMGbDM2CpuEd0BoOzWoHZnwjB8xqNkq67IY9tewNPOGUCrTPp3UmHXcSCY1jijMNzfO1XQL9M%2FNGWhpuFVLuHop2a5B0iJbAjaTTH7G1SnReEb3N%2FERBxQJMyqtYrpyipmR0NJs2DsHvTFrYsSW%2F9fIsW9e9EKbC1QauL7Lo6CbaeF64k6Fmt9DBwqHNFGHVDDDqoW6n2Y9CitApL6TMz5S3zkTlNWHCa6pWdvn0YTB%2Be5QwI2LlihUPLvv00jsMx77qfb9KUAIONv3fLjUmQSePtSKRND9hucl1BQ9WpFcsMuOL2RVR3USUkkpgM8CfpayJ1UqF14a5lxxB1ZoEpbGF%2BdpRWn1PcLZWOSHa3%2FiLZ148efacEG1UGbMT7Rwg5cj%2BN2HO2MuvuWT7qJ%2F8J%2FOulTlVy3wptvrhrAJYFamZG9nxvGKjkXolTf5rPEXrFZ0ND%2B%2FXV4IlCRkc6qDNqXXie31V0v0MV229%2FRNSITWRpsmkLMmd22%2BwYaW8EX21XhqdbS40Nk%2BdMw18Ds1qD2Z8IwfMym4jlUWm%2FSQUTtqF7sepDlZbZ7KH1NrFI0P6Z1NBNV8PhIz4Z%2BaCFO2%2Bf54JaYTNMA%2BlLeO4b5x7E0AH%2B4R0Jkl291ZRgU%2B9zTkYu6o9a36iYA8tZUOiqDEdtNXyiHvm02L88b9PW9etFIYhTLramLuxTRAhBAyaaKN54c6HGj%2Fi845IhLhmQ6nJh7rNZj8KqTnlhpTKzCFDd%2F7w0uU1Z%2BCVtdHl00uO8ZvjgfvM8emld91156c%2BecuN15FjZw1KMHl66tJjEmS3Td%2BKpPkFluH8Ftc9d2eGxRlfWlepubFKjCuBTYnLUTiE0RvRwp%2FlFV47AJR%2Byv3eq0E1V3eoiC%2FG69NGY3PCGuqfAdFGf1FWop0DpPzYf2kQ5a%2FZF39kk%2B3TafJfVJp%2Bsl2kNpaEc25xnxQxXsOQAjVtOzuevzPRyB4%2F%2Ba%2FxwPVnIgsedt5W%2FPEVVWRw6GSIuZKtEt%2Frq5LuZ7lq6wc%2F%2BDIZPSnLMWx8A%2BY5gUdmKJ7ZkjpnqqFZeWNGvJIbZt7fICV%2BfvuVZH2f%2F4lzJ%2Bzxh5zrLHzSODrzF1NpNZ%2FrsjbP556OGmzeSIuWzT3VCqRcVMmtw9wRW5S5B4lGzsu1p0l2g6GIbcjX2%2BDf71R6m%2FmKgrupiyX4KH%2B5VinbTiipLYC2pPo1NsEyhHHN7ebk5mYV0xDQb6KN5oU7Hmp2sx9yWH9UEdfs%2BWL2U9NISdnyQEpPhpXF9eb2XaK8hs5NjxSRT3%2FAMX5z3HHrJ81xy0033fSRD39w0ft%2BxaAE7H94ZLyJmASr4OdLkuZ3sBCKmOMTNxNW5skwBVlWGIQobqzn32qBzcOh0ou%2FTCC5x89Sr808BBWPlth71a%2Fm6vYO4ItRowQ%2FYMdpoXazVY2FznDkACkP9r8cZQgEIidexNy8RF8zUt4C5t0tyXbh2CDhEsqg01Jcs06werHkhstbgefV40eY%2FG%2BAp1g00XsWPOy8Tb0bKGrg0NP0kcwqvo9flfFi%2FKpzKvhfntDm7gE9KYvBKyQ2xQ2QzEvevJtpdFIdzznzl8hqMqeXL2YWAHLArGbB9gZ2%2BJ5%2FJgeT%2FuwVzs5SOWVvpJQ00e4FS%2BaPY4FameerPT1PpOiabg1SLqrk1tsitFvs9Zlr70%2BnjkE2joiPehumGFWNZ96h0Lsp1UMlCPHMouzpFmT5cIajTMeBGXK1MUHvanM36m7RcSXImt%2B3yia%2BCK7OhJrdQoe5%2FrBVrG%2F%2Bmf2A1oZIQbNzQko35tuW3g9r1kuW1%2BBmGhGYzaeD8oPx3%2FSx6z5sjg9euWiRuscZ2f9q8PzmYpJ1n5E0v4OFUMQcH1rcLCw9S3eFltYwe0JKEJraaoHNWq1JC1WXjLhV4TUvUL0ZQKkQ11uHe5EMGHrksdEJVv%2F92VrDI5t37jJikFMY4jPGsdCZjhwg5cb%2Bl6D8JYHI6y8j%2BQ%2BajyG%2FX4axZldirZOY6VeDBgZxzTohfQul5Xffck1r8PyIyf%2FGeNYPZ8LDzlu%2B7a6dsavoDz0t8JHMtFDGrwqS1cKrZldAgjaLeF5NyrIPsP%2BN8Srz5sjNiXiGQ7OQscPvAD0zcno3LsofMwoA%2BWGmfyaV4OTAnsBGZC%2FH3%2FYpdfEzOGlTBXNCSWI%2FWDJt9ZmNUd1X6qHJF2l15pvZkcZpd2m4Me2mvT7YJs12pL%2BbCnx5uajPWae6O%2BYdCr2bysm1r3zezpMPPnMgOY10nMiJODeLHnurTQwmiw5%2FYNpEG7Pc63io2c1%2BtKw%2BlIe8Mi%2FMfnRylZtMnkgvu%2FrXoP1oTl6Dm%2FnPTT4dlB%2BMf9EVLeVGiz7yW%2FeR5zcRk5hdQdL8AisT59ezdBtLawCHlCBw1NcCGxTJNFkPk%2Fici%2F0mC695gsIPaRKUDnETpi09ReWRTaOw%2FugORmrVzBfmXLbOTkdP4nn%2FL58z6vqbr81mCZwDpNzY%2F%2BIbUP6SQOTl1yX5nw7SdSab3bD6qWJMu8XNXgbHrDAu78XXrWORpVzwSWkJnh8z%2Bd8QDzo7J5rEw87bL3NNLDg1DpUJHISOR5KFrawLpb4qV%2BJMV229IRtoc09JTPK7KJ4XO51gdNZUPfTIDIZm8btonwUVIrXJDTMtgHLEzOCOonnWcuyJAhvpuDvttt7e0PGMpIj5g3WQiHwLLFkxbt19pfb0vJEeyI40TrsZlDABRdrt2evzrkobwlbZf%2FD7id6G%2BhwV5M1LFNyScZuoHmJFq8r4jUje8RqJ1dwsZOO2S%2F%2BnkxrWVRNtZFpEh0PNbvaDF0bN%2FfLlIfPC7EcjreWMlAtNpUl5DW7mtR9aHKX82Tl31pjk1huypfnjA36JQLnskBsrR31lq2uAK7KudPvKoDM3UHz3mwOl01Y7%2BPBA6l21brBqnO6U1Wn1ounkib1mohXS7ENrVhqb2OszcdT5Cil7%2BatgCT2E9ieQ%2FJdke59FCJPN%2FpW%2B1Y8Yl%2FZhchlk9hDaHHv9xYPmF7E%2BKahgtAQPkv8RPGD%2FTeJh5600RYF%2FOyPvaiqAViMkMy%2BU%2Bqqk%2B3N71XjJyvZkUTzvxtOVViQjs%2Bic6Y%2FOmnpyOpTMU9ssttcIbtwA09NK1JAr5moOmGP%2BmeTGzHyD%2BZ2WtHcw64Sico%2BJIyZ5ZjcrRLTRjNolXNnhSEm7uWMwKAlyR%2Fh5aJwN7fVr0oZg7nxxUAYQo7HD19v0e1vW%2FESheVQhVQ%2FhIiJZ5L2QGsRzVM820tFz0IhEJUXVRNvIcq%2FzoWY3%2ByFnpBSIFjpaApG%2F2Q9Zv0JqcOWIlAtNBnkNb%2Ba8iklaH2Dq8eH0vqTLjvJIIDdWtrowZ1Y8W1n%2FqHFaOYPa1iQojQ3%2BEp6p%2Foh1YRJ%2BbTd%2FdChOjk9i%2FlPR5gntBKnnjBTcOsQU7r8725CIHCDly%2F7vvNc15E9bqc1PYPrJZDtMNs2X3YXU6qdouJRPrpBptXvZ60f2P2EXeAxqbxGek8ePRPDgw43iiXTewlZCBM1MLq1mSxniURa2WtvvO6dXjRdbrrnFurHRFxPi%2Ba5E37%2BKk7K80VkmDb2nHkrma6Jxlownlk3kTN702hmvygszg9NcMcf9M8kWUUo%2Bi5QvF0G6vKpFGxIRsORuNTkroN%2FaLqFzkRJlKEdSHkJGhOu0I7xrNHFio23d3Ftv0tbuZ46dpt5G1R3mJQrNo6gekotUqJHpZbbS%2B3gvqqOvudxc1f0kDs2NNtF2PtTsTh6hTwTJq5ZA5G%2F2o%2BpugRQoN6TUf2WQ1xDVAo9JNM%2BmnTAT41GeTVtd%2BXS3B7p6Dm6kyw5%2FljLonL%2BgNLav1%2BjbZ2e%2BDllzqFLvZ2WKbsEpfo1IpcJeVTtB6jDmRw0bjf3STOY6OUDKlf1fe7NryB%2B1Uptnj77%2BYybbZZAuvnyoi3aa3WBV7KuE0AYp058df9ZsfBzU3ho8P%2FpRBA9IfxxPpPNW1DhhckkV%2FVDYanG%2F79xeNd6QdfsyfzAWqP5D3gfJLupq6qR6CLKYXnoZgtEI3UnbZ2ERr9pn88Ns8OSLWftn0gnTn%2BYsNDGxukkpRYPkCDag2d1qpqxf0yWPUnYJHYxUE69efVHgsSiTek16a5NGW%2FPd1QPchpAujuht5iMKIcW%2BMwAb15NG1IqnhQ%2FnJzfW0eMNoI6eMt6I10CnQs1uoQM0Fa%2BZNvSJCMlrhjW7xUhrCilfwijS9striGoBxyRxnq0T49ogjba6rCk%2BrkzbuMQnaXjybL508xyUxvaNRMZriXOx0G8sYfuMNoRTdMEGhjayV9VNkHr2kBG2YDSsUdlzEnPGI39IrX8PjMnOUgjty1aFdITJdvMbwGRz9MsIVVYY9AHbHioKv2LK1JCmXRzUPk%2FxsDcq7LyFGsfrvK2i87a1RT99VVxubq8at2IDbZb0vojn4YsPrXwwPzeZofZ9IThpwrxyntDB7TWqfTZHzH3rc8bMLSUQzeMUrnpCE0F9g8zxhSn159GJgBWRaZLo5CxSoU5FStqtKs2qcCwskI22lNVvcY22WyvgjzVM2nILg7WHPB3R28w3FDRz4cbZa0%2FUsvXDsla08CqJ1lhHj82XOnq2G0WasfOE%2Bv%2Bz9%2F0xdlzXeZWlUKhsqbJjUzAUs1BQSqllRGZrSCrKFrTUsmXMSFlyd9%2Fu8tnBEuEy4hZ2l1zYKChg%2F9k%2F2sVi2%2BjRO4%2B7XEYhnwVG1hKyaaWsJbFwWMtMEJGG6VgmEMmMGdeSYinWDySUYqi997tnvrl3zz5e7ejtvBkgEwTj5YpvPr6Zufc753znO3mhdt5Cp0G7fI%2FJIEphNYvktZtmP2TWRMqXMIK0UvKa6sckcZ7NXymDNG2r60h0a7kVl81aOwK%2FBRp0lhuUxtY4BhkvdnvjT2nmQQzuGB4dXzJO93PmbL2FR4cxCBZ88hnjaQOV%2FaYN69fmCOTKCSl%2FQ%2F7NVmgPLX%2FrBJPtJhqByaZh4XDTJNvm6CQoKxIvZfrGpXPZtJZS48EGg0m7lOxyvq%2FbZth5%2B5cdKPrpq5Jdre5V446ZG3t8b5xAPO%2Fb6SRpJ23L2KhC2hB4ZIamhg380rXPvg06RF1DIZj5SBSEWZsk%2BDOuaKNZD2giKXVgqaYVJZ%2B3%2F%2Fn3oYpY1i6hHhFgVhCpzmXer2m3oKQlERttSbDZaDs%2BnHadQm8DkvGLyD0uFwryKBKo7JQ66O1iA4seum%2BDvYiOHu3b3IMjXgPVhZrfQqe3jdlPosx%2BVpm8xpFGzH4U0n%2BQ%2FBcfk2iera2UNc%2FWgS47a9M3qqVXXCzV20O%2FBeXOXwgo%2FJgDlNq6Wl9bQOHfDXo1s9e%2BsG98Yipzfjx00IpUIK6Zg8p%2BeNSp7L975mmnst%2B2%2Be7bbrouh86mlJDyP4AQ2kNRv4Bk%2B19fRDSCPlu0387aUKWXbHtQhNb9I3YlljFEp3%2F46uvPn2HKtLx42Bv1EB9FK2MT5b80M%2Fqdt1LXyl%2F001dlXXYVrxoPs6xjZuaNQ%2FE8FDVUUfX6nbRHzQSGl60sphl6ZOr22XSOUZbbhPaqCMywACocMzMAgX%2Fm4cAXuZGZJCxPqVUv6eSXLCSnj1E6e6pwIjXYSiJlLrMd7Q4%2B7xVptCXBxvZteXZor39UGGOkulM6FORRJFDi314nUxFpN8sKnnEG3Xe0jp5FR3Oijj7iNVBRqPkTNhKKfHk5sx%2Bs4CFLXG3yGkcaM%2FsJkf6D5L8LMQnDkJBnEwkl8QHPVgZp7KxN3yil0FR%2BC9qdvzhQCJRzgQqL1q1jRzDjx%2BaIk2bD9NZOTTfms5lPB%2Bcx%2FRXiGpjuDKQq%2B7NWZY9fbrn79hwq%2BwIgFS38t1IbKOoNFmP6%2BeJzJhpZaFjg%2BMdAaJ%2Bx7TqUTWPY3RoY5IL97O%2BUS2IZ8bCSzwopTsGk3bDzlnUtXfS7Zo09rvvgh2QEiRYwtL8qKNLqXTW%2B8KyDY2bmjTOTief3DOIPOD8XLRUYnvzSW5cxBDfwyEzCsUael7n7V0B7pdbN1cNskBWJmZQ69M%2FkdBvsdKExiFBq7XechGYND9pihP1PmWZXwwTlUVI12EojJcqkndbI%2Fop7EBttSbATNy%2FvcGivb3MC77DZWBUFS4qCqwf2YBIopnT5JGdlheD7ZaZzOR09i44s9cQSD9WFmt9CB8rQ5cx%2BkL8skdkPqZpCKk09Guk%2FSP67EpMwDCGZ1qssCxLk2TRICztr51MdXWu5EYzKXlc1fBcIqpkLVMiiHj4wMzeTusBMN5pz5v8SjKiquSm69v%2FBFt1QqPElKnv8cmselX1%2BSFMHckAqQvhvpDabt2F47kJq%2Bok%2BW%2FnHQGhPtm1UrI5lDUqqXdZx5ZJYSjys5GcV0l5R43DH8jtv26tKr7nugx9dZ49bfu3jMnxcD%2Fluf1VcbjWvGtEz3HT7pp60YTZN72%2BnZ1JopwOm3Xzs1LlLl%2F%2Bf72dop2SR1VA8g9q%2B09D8PfxMIhXTDmMe6g5m8BY1Aitwu2c6yVFqsm%2BVFiG9BMkh%2Bz6syqehiYd6aqqLlCGK5LDUjhFUn5drtB0ZHEXSuE53SNrrw1xSOTqVFgVXj7BXjhoaOXllhXD9yDKdSkef4J4IXin1qMSDOsoMtXizH0o1y232Y04FIC295J%2Fzp5JuxySMk%2BdDO01dZPyvc1%2F7k5Bnrwk7ayl3%2Fobi2fiy1TRC5c5fWlAaHJJKD6YZ4JGx8Qnjqzk9ObF%2FzFLCcUzR5WQqK65J0FHrq%2Bwdlcyjss8PaXwyB6RipD%2FrN2zaimQ7TDaffxF9tofwj3FCe7Jtx7KnxcDadfYpl8TryouHtjuskDo1Ti30PA8qpFpVerXh4Lf82ifvvMscd2%2B61xz3bLRzv9d%2F7CPvV2IRfVVyo9W7atwxc2s6Iasmfj7bU0WNb%2FBD58zWyWcvvm4ylv4kI0p5ffHMrEdy3nzhTDbBRx%2Bdx4x8f%2BGYtXk%2B9l1ljkm7Dcm8qUEsgaD%2B0IEZA%2BgvPUrNDyev8j9V1WCrjJS0m%2FgCz1Cfdv%2BofaMt7fXTlo5fUG%2BjbnD5UOh%2BTvZoC0Umq8KJZQX%2F%2B%2F0nmfsOJlVRRy%2BPPRPzEpfBficSQpYXavFmP5Rqlt3sp14kUq4zSZkk%2F1RIIbLsWkyih4jc355n15ZJsq9RnbXIZB05tiD1DOpz%2FDIsO75Vy1XJQenn%2FAv7pyGeGaoNDe%2B2vppju3fVB21iGNRwzzgsNsfAEeV%2FZip7oZJ5VPb5IaEbIAekAhaPG9fdjmQ7TDbTCVtWauOE9mTbkFwMW2GFCGyaXu8W8qt8S0qHp73Zz3QSEJqkzTiUa7NpxGsNB79r0%2Bb77rdHbYc5hnruv2%2FzPRs%2Fdfsta0nEY2Y%2Fq3rVuGMm%2BmM5wHdkW02J54PpXs9csHs1%2BxRFMs%2F2WS6avoYG6c1IQNhRzFADFYtZqx2Y5KA8Hr9ikoOxHTbn9oL6R1rHT53%2FCSn1fBu7BH6qqsFWGClpt64VCxzS7gtn2jTa%2Fr7jjU35ZSoViaxTJUKh%2BznJo0iRM1U9ywrBBNfrwcbZ3eLM8i1hzvKeyMhLWEI9UiSELCfU4s1%2BttfZr1h2s58CkZIVIWgrkeTfHyN3pZikHolJiiL%2F%2BJXm2aqzFlvazAE1WZ3SGr%2FjW%2FHssoPSLVgm7ztvxDNjI%2FWB%2FiFLhPoHhkf3GZ3vEav8HQDVxvwsp7Kf8VX2z4JK5lDZ54ZEwfoKIBVwkFjehGQ7TDaRbP%2FpRSu1cTolsm2YK6bkSba0zLVN5bLKiEeb%2FdRDKT7ISrtxKAxN7jQcvFbftdseo%2FsQ55lAb6jnM5%2B%2B0xBxxG5Rs5%2FVvmrcMZMU3z6e25nn98XznJT1zHMv2SI9HQrr8OwLOvg4ySfboLE7RyhOBzFD%2FFM8Zq6ZWMy4%2FWatHfIrSXJwyexrs7wmwiifsqP3SKmVXQIT%2BJpSr6k4Uk27%2B9s6zv05ZFpeo%2B2siP%2Bazl4%2FyTzALNuMVCjLhEL3c4LHhUsXVfUkxZwfZr%2FfGwP3TLEUSxCXSN4zsM4P5mbpwKziUPNb6CTLm%2F1wyEMFzH4KQkpMLAG1k9fgVKzkn5naK8QkSfpdqZikTOQfW%2BIGdtaCbk%2B3K1GGTstBk33pQekWLFs8MGtB68D05P59o7uHDdMe3j1q3HVmms2Dc85K03nqjy%2BvsoeBZD6VfX5IKALkgFRQ8h8mm0y2XxQpUsa2h8G1QJ7c2kwOhdunUqalxEPbnVqdQs5s1aTtYZtxKBQlGQ5uwroJHFNQeE3sN1x8uLbVEHEVu6mrQo25mleNO2YGFH%2Bsfr%2Bf5w8F%2F5iUdf5FG5QYaG%2F8laMt2ruvqTU0uQLC%2FJhRC%2BoCZprn%2B06XvLMki9zpIpQ6Sydfeg1PQhu1PT6clFp5pVUYqabd5DPq0q5B22u0RRUQjbYjO%2BjnSnv9NyO9SaVCofs5yVR8DXojwernSDG18GAsS9wzYTp6OEjMz3nW%2BbG5WdWFmj%2BO4RhIcmnf7IehSJnMfhRSfPfFISWmJCKvkYHXSl7TzZjECzBXMyYhz4a8PgfPRo7dphWkjW3mwdCPx9Nphk7LqvRTalC6XU2KcAsHDzdnpiYmxk0WdNzwoca8Ud1PNiC9F6o9lars50KV%2FXdzqezzQ6JgvQBIAYu%2B9oYP8YA%2FzDXtku0w2WSy%2FeJPnrNSJLJtSK1HxYuBCRx%2FUrtKmZYRD213epVpAzv52o9DwSQCKJIMB5%2BaSZr2WGi1jhxsJjOGi4%2BPDteC2K39VZurdNX4QcdMa05Fx0woalzOfDYU%2FGNS1kWzQFtkL7%2Fwg%2B%2FhayV1pqQhp4amg5jNL7qDmdYW2sqA5vlMcixPqXuWc1L%2B2%2FRJqC%2Fns0ObHu2VVnGkmnYTprr06UWXwGOjrXALG8Bxkhvmfr%2FJTLNyASsrCq4enNNEDk0XFwq2KKXx5odBgevFuDvs4AFioo6eevCIjr7iUPOb%2FZCt9Af7Ro3dxyUz%2ByFSWm1FkBYtrwluppLXdDEm8QLM1YxJaBSjjHXiPDvMsYtt9eSX3F8jFW3ntKxKP0WBGhjNBUq3q0FFOD154A%2BOLhhfTXs0mgvGLn%2F%2FqDWJbEBcEwj%2Fpzqnss8PqQY10qpD4uZ1w4c%2Bum79x3nAH%2BajH7zu6rYmm0y2mwlbl6zQHmw71VinLFveEXmDU9J6WQXJZcPDxGcSWCGwpCtrEm13sL%2FwiYTV%2FDoxIjUcfNZS72nDxQ8e%2Fepjjy8aLt6YmhhXsVvRV40LaELHzFnrnlOTqbjg%2FFrwf%2Bb5195Bnu6l586ceupblDdPs%2BxSy6%2Bh6RBmCv6Lx0zzfG1lgDsrFwjXufZlUG9NxH8ZiCb59HgKMu2VVnGkmnYLTH3pb588KiJ7NtpiCfh912jbWNpoewmZZmWvX1IUWqkVdlIwMc66YTg%2F7MMgO95TvoODB%2Fw3gNb5ER19JaHm52ZK4ZOEZj9sWC2J2Q8VPiFSMK9ikVJew6BNy2u8m9kdyf%2FsVPdiEt62FpdX1S5lYf5WO56NOGZELDVBt316vrREmSiezdJPIaBYAM4DKmxXm0sbbvaZtPCjjy40cRw0kL%2F4wNDwaCquqYnwn4GA%2FZ99uVX2HYBE4f9qQuLWdePN6z%2F%2ByTs33nOvHPCHufOTv2baQ69pY7LJZDsmbF08J2wb7irY9vEP7ZEMDvNgeIPV%2B1s6PEx8yn7ENcDjPqHtDvYXPpHvMyx8kxtB1mw40Y1V4UzOJAvHnvjmycePLTSmJHYjDy%2F4qvFlea0R0MgQ3Jp0TSCawlRcUdMrwf%2FLZqe2bYoXzMS11vH%2FdYy7MbPpndLQ5Mdsf1EwZm2er6wM3J1NpMatKTWT7leg1KFosq5WdpSolVdalZDmp93fSrs5ms5asyGnQ1O60VZeLXvP1aVLiYI7jLqiGhLCumEwP0ykNKxGGDCU0vjmJjl09BWCmp%2B%2Bhgofpopp9sM4pstmP0rhQ6R8B4tESnkNdTXFy2viMQlqwUXGJHGezeWVYXM7nn31Wve%2BZJ1GuPeRlVp9VMGgDucBFaZQGeQ%2BYKj0QmtmAsdk46Cj0hTXiPCfgcAc52xplf310WeuI5Ao%2FF81SFTN33zrho33bL6vZ2hHdgz13Ld5k2kP%2FeiNa5bb7JhslwlbL4BtO8blVce2i3Yz9BBT5cTS4WHiU6JXCdhY1epX41Be4f6yBrUIw8ItmiSZnhhHu63tvx3bP4HixLefPnFMYjfy8OKvGnfMpIBGHDOHezgV94qC%2F3dev%2FjsyZb1dUS13TfN6aSGJj%2FmmbniMbPlLkiUyGYSKN%2F5XIaUWq%2BJiaLUymyGvZQcxqvsEiqFND%2FtfooOmxzibB02FxKjudeNtnJvR1S2uKQodJsGazZMpIV1w2B%2BmJLSYOpYViQNDRcvR3T0VYea30KHylCmikXFyTim%2B2Y%2FyowUSPkOFoqU8hrqaroir4nHJH3di0k0z1YdRUk7coxZWndutfyaPY%2Bfn0jUSl2P8uzSg9KKVQra6tZozrDqzz%2Bwe7ftoQWVpriGwn8GAiDWfcuo7O%2B45cMx3tQRSBT%2Brx4k%2BuVs3NwzZGji2D4ecB817aF3ffLWmz9w1RWS7emErb%2BwbNsyKg6%2FaDZoUblkeohqJCoXHm7n9KrV1uXLj0OR%2FeWX1losuJGNSXOHjJkTLJ36TRuuLU4snvqzM0%2B72A08HDtS8VeNdKhYx8zQyH8kFc%2FvHCTn14J%2FiBXOnXqsOWm27j86Eozq1xoaJk9yaGgqh5ktd4GBmVa%2BS0WqDaWuq9yKptRahsnVU1HqSiHNT7sp5xL23XBCkYfdGyU3m422rOpsuFltMaVDods0wpoNwYR1Qy94%2FeVbfSkNTBHonhl0vlOHE9HRVxFq%2Fla%2BQOGjGpm9YVBdNPshUmVGSqQ4FYqU8hqGIAXIayoWk2iezYU5Ro6RY8csrUbmdvjARFOt1FIJolWZ%2Fqiyg9KKVQrawJgWmminNeIaodJaXJMFAokl1lTZc3hUz6fvvG1tZCHuFCQGAqsECSpx65TfUx8ZMwKRyWkedu7YPtMeet%2FmjV5%2FqE62ZxO2%2FuLc08dsXjUrKCqzP94%2FtaqUB4%2BebxqanTMBoMehCEuxHcjWf2ivfZwmTDw3YMycnN3m8NCgvbuGh5%2F9HmI38PD1N17V5qr2tIpXjYzJpWNmbyqg2S5%2FQP7cVvB%2F%2Bripu5gM5h8dC%2FZjraHhup5DQ1M1zNzrZoN%2B18AKP9FOl7zxbqLi7geCVvAIpcZDH6HUVUKan3bTYRPWmnTYNKyQjba0FInY65caRUMl4wSM%2BnK9x9eoHAQNpTRTh4RYe6EwiWFER19RqPlb%2BUKFD5cMWv9vZxzTPbMfIuW3rZDiVBhSLfnPIa8pNiapFxqTaJ4dyAIYIof3LSTH1yPH7pkdju5ehmdbesQUKbOLymxtJaCSYkHpojVbyer282ZsOy1cM0mlLaueTpYR%2FoNDUWX%2FxOmzUNnbX5qsKZPP0SM%2FJAr%2FVxESOkTtjNyx%2FZO2NXThsD0ebll%2FmGTGtofuqnv9oTrZnk3YOnXuwpknrEti3W%2FR%2Fq1lc3%2BqnlgyPFwoabjPxKdqR9fjUGz4ssXeLgZr1swJdpvjYzvNLDfw8HM%2FSC2JNm9Yd526qkqFrspV42Ny0Rdrk%2BnOMVX%2BQIj1FQT%2F9qvfY7XLkDiLvIH5EmpoaOJGw9WYMLfamOnmxH7X0DyfE0oDSo313TJuQDcawUyouwNQSKm1VxrrRqRSQcxYNaT5afdXF6YCh03R2TwM2shG26PYyyP2%2BpVAwWRce0adFa4%2BfMtdMjar5klpQKw96lP3DBcjj34VoeanZkrh06RcRI067arZD5GSbxMpX%2FAI0qrLa%2FLHJAlf2YJiEs2zt7MhUMdujHZ9ng0HjDDHPrw8z256VTjGNPoJiINie2LBoHTRGqsAhavj4po5lFHpGqi0Ev6LekJU9iCTZ43KHr%2FcsjGisu8cJAYCnYdErt1j6LLpCYU3DI7GwaOLJ4w9jG0P3T%2FWtj8UnvKcsGWkNt%2FFEuvW7W2fI%2BduqNyf2tPLhocL5ZeFfyuuwgSAGofyEYQvrl%2FDDZEzNq7N%2BcOmxtOYRphnefjx08%2BJJdHItk2333SNvirZ0CpeNSKgEYPMPnHM7E0bZVNiPXAlwb%2Fhz9a15BuWvHjZODmxs4uGqznycxXCrPsc2b%2BhzPP7w8L7QTadoWjRNIcFyhyUWxM9Sk3rZWWlr42Sq4Y0P%2B0%2BZmHRYZOzZReWNtr%2BELOe34jY65cZhfpyCUY3VIiUBlV4oOkboZQmNUUm9eFM9IyERaBVC2r%2BVj4OKGvQtJQJG%2BRyumv2o5Hy9fWRRsx%2BipLXJDyVS%2FKf2X4WFJNont1DK0CvLZ5UAbQg5Nmw098Z5NgHHJPpVzxbiTnVE7ACUPWCQMVniDCAswzIUB9SaQ7PurLwX8ik0UzglzGVfQch9TIQ6DQkcm3bRJAkM1ZXg2N8wsBonXjyKdMemsywP%2FTKE7as1OaPscT6mXYQB67szP2pan4J8ZD73K%2BT79qSELJSVEh%2Fdf0GhC%2BuhQMhXWO%2B6eKYRhrmmdzeE2deuAiR%2Bd7hrUaC0%2F6qjdW9alxA0ydTcWtslB15N%2BJ5I0eDKw5s89XGLM%2B%2FL86FMjdubFJdzMwohf0bmvOwVspWxR2OGNq5FdONxjRGFTh4afKJlJqJxkjzFTfQCiKN027W6%2FirIyAYvsNmXRw2VaMtjSW1vX6FUDSCRJq2UpKUB0gxemiBxtxmkdLMw4eIEbDfjRAhYVWGmr97AXuMbC5ZvYu5nG6a%2FWik1OMFSOcKNPthPKLkNbOZvrJMkv8kG0VQZEzClODCQZGUqSWZIgHNs8VO%2FwBz7GHbAt0cgpeQn6TM1soNSjva%2BsIojNb9Q0O1SaWnpIdWC%2F%2BRc3cSCiGTRmX%2FxLFD5pcxlX1HITEQ6DykD4Br2483MwZsRy18dYaNPQwchZ55%2BsTiUQQbIdvWE7YQNLW%2B3sIeRjuBRNV0%2BQ4rsl0yPJqG%2Byuk3pzouXnXPzfKI968XifmMv8aF8VgXgMciAzxPP9Tm222SpSsnU%2BT%2FwKuGhPQiEmOOGaCNye00mwrnh%2FZ9u9rdlLp1xGB2ZWdlsnKQBmpJtDH%2FImmOGY5dwOzdgbpD%2FIkHG4Vqh1oUij5EasDHIeOq%2F%2BzY5NB8omUmqYpEds1bqDVQxqn3cTJXyXirjO%2FjMOmmqtLY0llr19aFOwYIoo233EvcwdZWeUm9tBazUri0ujz8CHiO%2BBLaSIkrMJQ86l5mR1OGM6SzDID2jWzH400tPhUUqCCkDIeUfIaTtWNyWuKj0mItbCYhL0aR4IKqazMFAQwNe7z7Ktkju48%2BDV1NvN05mR6guU3xbPJi1YIanquYFA6b4UlwiJjWWGh6aX559hDq4T%2FyLnPcQawVdk%2Fe%2BbpxUMzMZV9hyH1gtV1HpIJwMC1UVgYG6n39ztrzYH%2BOrpmjTvMn55Gf6hi22rCFoKmr9iEMtIxLpIL5L6qcsP7V0Y8moaHHnRty9J3m2v70Rpy8fZfY6OYUQNKPCbBHV%2B58MyJBUM5bWYvQv5XcNXeoXd%2F1RUIaLYvdcyEkKa9eH5o87%2FaarOY32j5Ghp1wu%2BQPsYw09wLaBwzz13CTJJIsYfHpVnTCSZnUeuMBAkSBEPDaQf3DCQ1knyKWG1S5KbsEqqKNE67WTmWnKwbJdlErp0Om2mJh3N12WgrxpIqu1RaFNyPmVhSgg6Zli%2Bp3ays8isb2EPLiCTh2CwtpYmQsCpDzavmpcKH4szSmP1opML6FVLcjsKQMgZsKHkNl9m4vKb4mARYi4tJGCm3psO2Eq1GwCPvL5p2U7RZhTDH3nhYLbwcyBvl2XFQzOEXCUrnrZrZ00RIs9MTbXpokXPvFXENxTcN0VFAZX%2F27KnjR2Mq%2B45DQiDQcUjv%2B%2FBtG8G17V%2Bu12itaZpqbeiB%2FtA%2FR3%2BoY9sfXv6jr77hY5%2FY%2BJufNUxwHnoL2qLMqaRCvc39Kxse6iMpu%2Fd38zB8W%2BK56dxGDySs5OBm1Qet6WYvvHjgNO%2BM4v%2FmxfNWbDImTn76qrjCSq86PLqyq8YFNBiT6ztmzkLNcWXx%2FJa7f%2F1e5N8WuWqyUco%2FcbvJUTqtEmaSRKXX9Htqw8lZTP66VoVpG8%2F19vUNYJwd%2FiHsDo1QaorcFKWuONI47Uaf%2F9iEG%2B6WyHjd1GGTDGOEc3XDRtv3qyuWEIWuxHMj9nyOJXtJUXdWVrGZOPbQSkQyn43N6lVSmsiQ9ipDzavmpcJn6fDcBmB11%2BxHIyXrJ1KS8MKQMgZsJ69Bxbtwyb%2BOSXAKUz%2BFxSRcXcCzPUMpoEpYcapz1cwWzeuwKbpxN0NZjn2h1QGeHQEFdls4KCIDCD1BMpn4QrseWuTcA%2BG%2Fs9%2BHIF9U9s%2BejqrsOw4Jwv8OQ8KcBRmIBHHRmFhroql2AP2hhh6hPxRs%2B85brl9WbfEB47GzBclmJ6egA7MvkeZ4A3X%2FyomHsT%2BX7%2FCx5FoAGg7RAz5gyzbM2HKerbiVUqaxppsj9o%2Bw8fftclv8G4Z1Hp1hEl5dFSWvFV91YnpFV20voMEE31TG4TtmUlVPNZEWz2%2B8zU3hPwZRvLJI806pgH4FK2gOzDh3DbO2cuUMUxrR6slZlH2PomHbqeF2GwvX%2FU7KNbhzr3SHKkrNriv1sYpSVwVpftp9f8%2Fw7l3W9BXJdc9h08vA1zlXN9JoW1YU7ME7EoZqxCT2rDWpWmVf7q8iE8ceWheR2CunmRMtpYlMuKg21Pxq3sTvLgut%2Fw923%2ByHSFUgD6RgtMUhZbILDz4X22LlNfGYhI3H3YtJyLMRRSaBpY5UFA1Uhm1ZpPzL3BRtVmE6zbEf6yT516D4VBUISm9dYU1kjlJVQ6WbqoeWVK3XE%2F4j546EKlX234ur7DsPiaKOzkHCnAVph0R0MZM0cSQzqDE4YcSFH6Wjcj99x3J54jU3roPKBpid3mLWnNM8lm%2BVQrG6un%2FlwqN9qKl64GMZhrVsd9wxNALVWBi72ftkTDdBzbHzg1di%2FKQt7De5v%2Burmp%2B%2BvKKr1tAysYKrthHQUDQvX2DPsHbMpPjnKMXzv3g5Fc9vuuNmN4nzyIkjwXCUpadMQL%2BC2mkuzDh3FTOdtrlSXnlyFhjgGYi0IOZCH7w5pmbmrLQG%2F6AWukMVpeY6rD5WUepKI9W0G9FEnbTbor7%2F05%2B5%2F77fMBjS5Lo0Ax2GbIS%2Bm0fjjbYlRkFGbYuB3FzYXWY%2BnG4HLivOL9dUXIOIBBUdc2Uvc6KkNJHZ1pWGmlPNS8dDP%2FPJpCjwIGFTtNmPRspAPkRqT4UiZbJLe2jSaadgyb%2BOSWaXyfzIqZCYhKvLI42lTYB1ejclmbTMk2txU8Tr4preTM0bMXdunh0HxRtaNCi9dekK144HTKOCmudFkQaF%2FyK%2BQSCQQ2XfQUgU%2FncO0nWYs4B2yJps19OT2K4TG4WA3Znt%2BscXZVTucnvQ1dfffKuxmakL197pUqsQ2yxvkq6n9pcPj97NwymIOkNJo8Pf9m8NVVt4mprJLEgQL43s%2FeVLmZG3vipSXw%2Bt4Kp9iFtXdNW2AhqK5mdB6PC6%2Bo6ZFNLAQVTE8689j%2BEKGCPwAbOEIlA5JnVTfWIVFfdhBUtoXswzSfcwk%2FNwiXQbb9JuchYikzd%2Feh5lCT8gTmaNjQ4NnJ658KqasKsmrXgfqyh1lZFq2m1un0WIbQT1Cvz9T931b3tUyr0p7beSfEpQmYg02pYYBRl16LkBmoLMhWvU6E39hPjl2mw6I5LEG0K2j5akSkoTcc%2BsNtSVq3kbnHW0fanmOZHmBdBXJmyKNvsh0sQ30SdS5iKLQsqEKLHozipKgbok%2BW%2Bn%2BSRkPGSrHZNwdXk0tP9j3Cx6swFdjb6Dm2K%2FLDs1uyfOzHeAZ8dA2YgkAmpwT4dB6XEWusJlUR5Q87xE7zPpCf8lgdvgf5pDZd8JSBT%2BdwgSgxFmb1Go3zeGQv3kDJJ1w65Q%2F9cXZVSukohf%2Ff61prl2MzQn4Nq9Xn8lu6%2B86p1kS9X9KyEeTf6pvGmfoXwA4hvWb9ivjbtpxThuWWtkuv1ghKe%2BKl7rFVwVA85WfNX2AppaKqCp7eEagrMv%2Fmk%2BduocUpWm%2BpneGwwQvoEamivOb2QFJkfxtCqYdeWdbz8Fr3pylrnDL7%2Fwg%2B%2F%2F2ckWpXCTMu56fGyEoxtegpm5ptT4IUKpq46Ur4wYajJK4TbiaPc%2FC1kjU%2B74UVSnqIpFGm3Li4L37MhXk4DYycBlc5LEZTpJ4LL7cns2btrGiISOQwKuSflbDilN1aDm568JxQ96eG7i2xZxHsY9BZv9EKnfbaiNxwcKRMqEqNLVKKcdvBRaXtPtmASKltWOSSgIeESKNo0ltpr1WjBL4nIWiqCHMqHbnQhgpwz83Dw7Dkr54rUFhVxvJ0GxbhOmaun0yAXmQa2yzwakeqy7T1T24zlU9p2CROF%2FRyCxCIh0CdiRtOgN9ZsWvZExp5ROR03%2BHJlRJRG%2FxlDt262tptWcOK4t%2FZVCt%2BjHUPOrd3QQ5v0rIR7u5o1lSErSlqSM4655N1CcWnEDR5k88D0SLwd2avmvSluoHFeNC2i2X9Hl8%2BSzF19%2FBwTwxfNpVea2tdf8ozXU0HAhl1MgeeOGk38NjWPGuauYyXl0qru%2B%2FOQsKJLOnHrq9P8xrzZucH3E9cCPGRudmjTBI4jJTakrjpSvjL0FbUT3II23i1yErNGcmhjkTDewhvHBRaPt5UuRRttSomBH50GbjNN1Kq8pdsRpi94QdnfvVqmV1QQce2h9gRKlNPR1jUhpqgg1P39l26MangspEHPXGM0SHQu4qkjrivV7pktFISUnunJjlfAlmTygzNVKEJO8tdoxCSsRrYOBTXzCd8bGll6FhNXof4MeSt%2Ftzu3bHeDZcVByKhaUbpxs6Go1Ruvq4VkDS4T%2Fiee6OdVeZa%2Bo9upAAqPrCCTOsEO6BOspxgnvMuZ8td76Hm5QNn%2FyhtFELy5xh3nfmhs%2Faqn2VjNQy4Ceb0i1P5iwNJCJbVT1juQzimeov2g83M1pM6uMyBVJweZk1Fr2Rg1kpRsvYvscFjScMhruT6%2B55r1eFQWhFV9Vt4JoAU3wumqXT6g5QACtiSj7Md6XamhgnBmYOoTLaOrol7N6GsfMcxcx68lZnB6h1zz6bZx54ljr%2BKlvI7AfNTzaud8O9Q%2Bk9rfnEMTkptTVRapNJ7IoRVnz3vMvJeVO1mjWmofNKowfwTPgsPmG5IrbtsSUGAW9HB%2F1qlaeNyHtMGvoKjZ1GJnLtqUmtTIBN4ghZNJDy8CklyoHKkIi2CoONUdBn4aHnnOlS81SYMrRLOuuLb7fNzS7U0jNaaBApMi0ROQ1oU2qGquyes0RJYlJGCSxPZ41V35tUJX52cw0FvmNIX%2FEJc74Wa%2Fk%2FVGevSJQvIlFgdJrMd8%2BypECkIYrHTwUEf6DS0VV9jddp1T2qwKpt3OQOMOOvWbQOpmxPKPD4E12h5K3TnJQI8gBgGnf8JGP3frJuwzVtibyMwnIp7OYnBZ1firlsj1tOyG2Ybtp6CAcxTO2s3g8bM8m5Q57bn9ryfP49qsXz55sHZw%2FMCmRGeyiGKS5Eg47mnwaTqv%2BO9etec9Xncx11fC4%2FpY7tYAmfF21Y%2BbbFM%2Fb8WF0Yko1NDDODK3TGPn6E%2BWZHYjtN5XDrO1%2BaWmopY68S9hUDswsnPgTBPYT4yaPDkpd32XVcI0FMuo2Svo4pa4uUk27l%2FjF%2BD6l9wZyEXGHt4J6%2Bm5Kyp0dom3MsEqN4lqH4jirVmQvUMbLICybT0cHxnM%2FsasAyu784yQcQiaUAsslpTQ21PtORBFSRaj5iWLo6A8ogfU%2FFwu18hZwaKRk%2FQFSnIpCyj1%2FRfIaPVC98wfzkCGPbXQxJmGHjKQs2TfqqeMaYDQudyC5zLpkP%2F2CvT1%2FPluTGAjmmKcVA1W%2FMqjBnR0GpZ11evWIVNw9nOxo3Yjw33fdbKeyv%2Fv2ddcrql1ySDT95UD%2B7TaySBpT9oqgx%2FQz%2FHu4w7h37ppfutYw7fWf%2BNTGzfdZqj0xZdPsiFFgMWlA1tzd5UIt1L2PKpvAQTiGZ3qycDys%2FFFsc%2BVK1C%2FeePHC2dOG9IjLDzVZ7NKWwVv0giBt8vMra97LVQfspZI8V1WD3z5dc8ESBTR2TG76us7KWqIcMyme3zu8VWYwUENzXPJ7YbpJlPNeuknuQ7zSXE3MtPtNmAGg0SW6HLO%2Bbt%2FNaSJ57NR3TWC%2F0LAK%2Bn049ps%2B%2BGbrBBl1Gw%2BdOKWuLlJNu%2BtLighex%2B29Ehz6cpFDcNcJi4p0LZra12YMRgVQuKoVydycVK2yvApegpah1FhH99qdhLuwP4SMPchYLtM5Dcx0Rp75ykLN30Uru7s5Ket%2FSRKrmms5%2Bn1JR4pDyj2fIKgTx0nLa7htrcbN1HnRMCYBxe1OTMKpGI80gubacLpFphp88bIkDtzuv4fOfDUnoaA037Naptg4Mvy0c6BQme8wKC3Emw0LXcFo3cfBlgORdij8n04y1802KvuhrZvuWHejekFWBRIDgTyQ9K0jAlllm83mrInWRNzG1%2B7yJUa2H%2FmVdZZp3%2FuZnvouS7UbTRsuSBMyuLalXby7YmaHvDtVNoGDcAxP80AX8PDJbkZoOJ7Hl184%2F8zJxaMHpqQOk3Zj29sSjvrFVVGYFtpEZSUu%2FV6uOp73qnrwmzTG9oqApg9i%2BajL59sUz2%2B6%2FSYkQKihSfN7c8u1l3lC0xw9ZhXCTMrD%2BgE%2FWfJMsinzLrmPhkrpB%2BdOnTh25GBj2h0zyUJr8eQz51NG%2Fc7lny%2Fnnq88dLCvK0pdYaSk3aFxECA2ExYs%2FkMaHHpykUOki2wnepsOmxEBb6lRPJ5WrRCj4hSyZLig2WLxOVM5bEz854waHAjBcQYnlCv0IeL6q3yIqg81fxet7veFUCTs96XAtFz9vpS0FIeUtYg5SSZwDE9NjGKUvIb9G3eyylpcTMLEduExCcnjo2lzLTNRaF%2FEH079nnsB7Nz6l14FoC%2Bku%2F%2Be0PHCrUn9wZBF5ip8u1efZ%2BcAhT9sBwrin06C0j51EOK1KXRB2vstsGWRzpNKB9ppsG75PWcAU2Vvf9mzacN6pbJfNUjjeSFpPB6CXmSfJiYmw1AX2c1M0%2FbxT3zqLsu0zej%2Bsf2Gas8bUEYoZFv6oEJC3tmP6PamJe1eGlkoZ6zy4WFN693Q8B8%2Fd%2BbpE62mnUZQH4TLT2KoN%2B%2BUP%2BrXKNLHofJqM8M0%2F1UhEst51VBAs8Xny%2Bk5oVOmzE7QjpmvXqB4fp3UT6ihWZrfa9M9m8tdLo4Z5zJgZk%2BHbpxN%2FMHo4V36PCxunz9%2F5tTJx4%2B15Fg88dTpsxdefFMY9euXLnxfzc31JChe6KzuflWRatpN%2FmKLE0Grwm%2BiMVSn3N2LIaO1QofNrXdGBLxlRZEshlZVgEN9jGPPWBWPHn%2F6zLfN8z8hzTLCtgVcZp7Z8H2I2I4QyXRWF2r%2BLlrd74vxS%2Bz3VQLTUvT7Eqk9FYeU8pqEyQRu%2FbROVfIa9m%2Bsrj5KGfqTsRUekzBwkw4Z6sR9hObO%2Fp44mpgy2fkXLtrV40HxO3fZT7p0ZJxa8%2Bxw0JvPs3OAQsy0PChsxB0GpdPILMI2En%2FPol%2F6s2mb7NLBvhTXCOvG7zkD2FPZ219u23y3Gq61WpCQ5s8PSTf0UVllOPEDD1DkxilYz73489ekWePf3XvvZ%2B4H0x6fsE7eyYxV2AxA6ZIYoOTaexnR1Zhop55VDVwvE54Vk%2F%2FvWe3NQmPS3LDB%2Bh5nvUPbzWwUs4RuowyK9QzT7lxVCWh8jo%2BzHpM7GzpmgtRdfPYkxfNXhR1drUVfLoPbq%2BbMg0jnmCsTxcxzCTBzbK7Wzrefb%2FvAXvQ8%2FtULPzj7nVNPyXH6T7934dKr6FvAP%2BTc6aeejszNtVu%2FCv2qi1QPmuRHAXAYpgiTRGGIKXfaf4mnzBKHzbVX68uVHAXYVOsbVNJ77gbSGStDsHtRLD524slvLi40m9NZs0xqCji4R9wXqKjR7Qg601l2qMX3%2Byaw%2FheJoBKYlqfflzqX4pCyzY9KGp4SOSl5TQE2qYxJwgkvVEvxVFRMwobRY%2FYqqOLzZZFTT5plt2WyE0%2Bf%2BZ5Rs4pzfP%2BS7Ce%2BUF15lT9j%2Fj3CsyOgaNV1BVAJQLkCQAdAKWYL1igUW%2BpdzOBJBvU5tsmGg32p9yHrDjxcqLJfXMAv1XCtVYJE4X9%2BSLqhj92kwUQ7mTdpygkXLv4I7Hin6eAb3g2mPd1oWoHN%2FjEjNzfQoDlBiYJcW3QXskD30shCWS%2BXC0%2BE%2FKselCdPQ3tjpEYuAY%2FbgRANwnveJHFrFXJKOwpF%2Fgu%2FamCXf6sIaGiRhLMak6sdMy9fOocJTxTP%2B15uC18Nc0t%2Bm1mg88gxUb5SmJl905z3CvNtpefxpz%2F7ibHSl%2BPCj1%2F6%2BeV3MkZ96njr2KJ8BsUH6vHRlLriSJlC%2ForqSeats3pK6fYWfUjdPC%2FzbVLuEYfNEqPgJtP6I1St6GsMosyiA8Jit4tMNRbMvTgqnVGchd6QqsSc%2FHWnxOByiVxJpB2hrFCL7%2FeFFIhJS7VYlKzftyCkXGiVeaZ34tYfkdcUGJN4zJajJAqISWir2UIZCe6xcvvknam5LDtoTmPBBMpPnXzsYaf9XZr9tOcFtf5mSQqcNM%2FOA6oeB8XWvFygor0tVLlRu0W7fbt1%2FfR5sx1RZS%2FC6YFM7%2BOx7gHa73sq%2B1MnWvaXGK71ASJYTUgU%2FueHxN1KShBiL%2BP3bbM3tmXK9mfOnnuqNYMevvEJMO05O75%2FfHRXfdB22TqlC4IV3FTeXSa7mGhXA9fLhSdO%2FhuNQJ7wtcWjNs4YHXZOQ3Pw2%2BkbggY%2FKN%2FInDYhqd7KQXqT66r1Pe%2F1qqFdvhLJKwENk%2ByhY%2Bbp44fMRbZBPK90gQcDVSlHy5tT4DGRI91UIcy4v%2BSG%2FgdzMFTY7iqfnPY8Xvr5m6%2B%2BIsfPL0O4hH%2FHaxh6PXPgkSx0Vk6xgltR6qojZQo5cCNdyMZEOScFI%2FVztJLLiAn62qTcIw6b5UXBnqETiwknGjIfLu9EarZRt31CE1PTjWQGGSXGzzjTQ7PuJhX3jdAdITI2q8JQ82eJG237fcFfWSHLUdrsJNJ4v29hSEke%2FW6qUF7jW0VG5DWFxiTUb%2BCbKiAmASaZiRd8S16vuzW6eAhGF3snbKDcOtK0L0sdxMdq63u9Ljiuv%2FLAMkkR4dk5QM0cKBQUfcRCit0M1faZlsxsSKepsqdRS6b36VPC%2F0lfZf%2FdZ55oNafdcC1mF1YVEoX%2F%2BSGxTi3NGklYqKR8chAxW2vx8ZNPffP4guvhazQt07ZJ9t3DAwMw2GnIPZWgZK8z55wLDRZVOgY7WynxaPLPOe0GXChPsM8ztDdGamQS8Kg39InZZ9i40Zv5DyEB7a0cEfLf9qoDdpTqe74qk0M3wS4fPLmXDplXEtAEjplHbY1%2B8waK56keQWkwTCGzbZbu0nixVyA0rSRm3N%2FQyThJ%2BIluSSClZvKtL%2B15vPjqWwhbeKCB9uXnLaOefpDPjXKKZVStKXXVkTKF7HcigATKrcOr8wX3gDi5CMfq9umUO0r4RyMOm2VFwbj1cSxnFoGvhJdqGCg1UiMmXWFyJ6iWQh1p3gU2zfjdCQQHLbjOlfCoONT8WWI935cMUXY0qZDlaGrqINJ4v29xSLnOcq%2FnRDTl%2FonbqeU13Y5J8E0VEZNwJt5jeFloiZTOiULqPzVIBwOys9X5ssw5qRzH3Mwc%2BWqYaPELuw1vfkuEZ0dBQdCvQdUCUEnnQPFBDym2Vtvzw0wL2nNQ2VNcExP%2BJ77K%2FhnjufKYG661UWZrFQAJaf78kEi2D%2BoWJdFp0WvBWPUlB4%2B0zPHw4cOH542uftow7X0myV4bGk4NdvCggXGCa6OVW4wW%2BRQg0a7SMWXEo8k%2FVvWHDAvJUvFOmvTf8TxDezPZmIf1jms5UKN%2BUcSZTf2HmICmm3J78t%2F%2BqlbgNDP3Hq%2FK48b1d4sXIUZkcSy4qKWWE9CEjplj9S13r7%2FxquVKg5l1AsbZ6RcbbG8FFhMVxIz7G3wUCTDdNLWhsWn67HE9j6eevfCTV0VBQ0L96iWoBKf3G8R6GHQQtFDPqyh19ZG27N%2BmOgsOO8Q4P%2FVfnC5EBn1bethE9U%2Bl3I3DJmzhIzqRcqKgo8viN1uhisYLifeAUjujgN4Bq5rcVe%2FFdizjsTkLnXY6ATjMc1O5Eh4VhpqflHnzfetq8%2FJbVnPYmXUaKQmIQmpPhSFl%2BMdBp1xs1XDdg1gLCpH888GkeoUxSX%2F3YhLSx8dbAoQqN7tkZk3wlgX22UDZHIYf9Do%2FeHmTmPWcO7jgJdS5olMRxscgwrOjoHA1DWrPOEExS9cBUOqVJMXmu8h9jJm7dy6%2FhF2J4hpPZT8XE%2F63njjzg2dtKRss4ra1uP0FQAKzzQ2JZPtIOHAAzglil4ZA0V7SWHVPTstheLYh2pZpDwyYCf6pt%2Ba4TbOPCONEPILFG7QLkR0MFpFoD9MxUTxD3cGjabh5zA3578lS8eZvmGmyE%2BOOhNuWWyTg0XNr%2BLYe9QsFkmtgQ%2BSBBLTvpqyvCp%2FotleFwKkDV2Xn7IbNviOwL6DRQhoKaALHzI183EIB%2FSPZkCyqSfhiq9HDUSJdTcy4v4rlynbn228snWayqQeSvsdOfvvsDy%2B98ubbYpzz9t%2F9%2FGeXfohZD%2BbhNgVYRiZ8fAL%2Bzv1KUerqI23Z8ItQE3Pa4bLJ9tbNOLoowaGk3LHlhCl3OmzujqTcS4qC6qNvLi5pgKW5ntlqzaKAdJItlQ719vX125wJRJEYjw1wBhS6E%2FDqeODonB%2BpdFURan45RtOlrBKS6LBs3cucZY5BJh1EysZC6vhUv29RSIkImzvV%2FQDWRXkNY5JQ3c%2BYScckqz9GjsIRjJ7UIjlufyA5tguwdwCz1fuc52GCqj%2FHfSF0FrvmZqZlxfqrFnbFszsDaoqgnOV%2FR0BpZx2pWWfrsT9al40kb70MlT3FNVTZA6YW%2FjeYfsfAoL8wf%2FkP7D%2FC5hABoABIFP7ngkR7iqCRRZpc0oZYZM0Nqd61e2wfj1GTftlh%2FhCTO6dBta30vGaCEWGc0JyAa2MNF3VmZrD4hpeOieAxp6LxaPLPBuSHcPcwtcUt9T09w2ZTsrJ7zBbLEvBJOOqXd0vGNCNAo%2BSIaWN1VZCtNlcdlCpHB67q2eV7qihfQFNTQhqOyQ0dM0VmpgX0TPV6mui5rNklKOlFsyjVxMz7S2pI5svYIshwcJX7F5t68Ay3Hj95%2BuwPXvjJzyCm%2F9lPLl74%2Fll0fpu64G%2Bb3YiRCVMnvnKHbuOaUlcfaasVqrMmx3Zk6qyFg0by9zu7RjN62HTnAyrljrUgYgtfShRUH4EtnTwSWl%2FSVS%2BBj4TMIrGDmM1hcyYPNVAhzbLoB%2Fg3Q3B0ztcmpBWHml8iIi4%2FJNGRft%2FIOPBVREoVizYxwKkgpHRVU0oa%2BSYTLa9Bxqogyb8KP9SJMQm%2FqVWNSViN%2FppIbBL9ziCPPmv9%2Fywjwmz1cXACb9aRWGB%2FCZwayRestU1WKOVEMwu1teUB1VwKao6gYPnfQVCMcqkfDzr1mFnmZ0knmlbZS05dOf7v9eCDRL5w7lvHD1l2yTJtMZDG80Ii2X4EGDhcJX3pXMyGSxoi3ds7tIPHQN%2BAvYVucuecUO1etJ0mjnFCcyJcW0g3umthsBiOr4nhaXQFDzdzZCipRMRCXuO8dpur%2BI%2F39Q7YCQNuwAAT8E0O3U2F97TcRyUOTZEvK8nRu75qTx96Gzp0VTne7%2BzyOQbXF98q95xwTK7vmLl8df9YQCOZSGHGlzRyBTPlq4VZ%2B9nKSblpMqggpb79jk09GB538OjiyVPfOSs%2BOmfPnH7KEGrna7XN%2FLWFqSWdsz5Xx%2BwcRamrjpSdozZtwE0bmwWHpje%2BYlfCkf3ofYEx5Lzn%2BatT7nDYjCidS4mCMtzH7d%2BnimaQ83Rshg27CHIFTTuIeQKGCSgZprZg6V%2Bg6SbBhc75yoS0ylDzS0QoVBcSrfp9693v96WYhYYabeyLC0FK0UiopOGpwZ8sTA4eUK15hcUkFiR%2F0jHJk63VGSOnq9Ffb0lLe%2FDOsExmi%2F8mUN6fzlYXTtCbSeXAgLDWypT27W6Zp74Vv2IW2tva8oJCulqD8kzYOwiKEUlb5xjGbthgcCynskdOneJpCv%2Fl965wIfKRH6ORzTZowTOwIEi1nXkhkWw%2FyuEqFNggFQWqjEsaMr172NRreu43hvo2dNs9ilsIV%2F2Uanttp5nMbNDSdcuvatBbnHkeBotMayEdU1I83JowgobRGgoAOLmRuTtdJGtk980lAwbGTJ94OHR3hmPjHAt%2F6S0lOXrXVx3eLdS%2FI1dl56yzy8caQUdgJaA5gLM%2FJvetF88rx0xV3aeARHncgk2ypOd3IkeOamHWfrYNTal9ORE2YKlv%2FtM7Nm6xd9nczyPHTLe7O04%2BvtiSzu%2FaFjVgtiHOM3StYG5BUeoKI2Wd5hHJr2cF%2Bqxrb2EG9YYvz9NgU4JDlXLnWhBx2CwpCk6oexof4MnhYXWG%2FRYZESgCphvJbLPZ%2FPJDhlmjTuhLcEVRMx%2BAiznnVx9qrrtOo3OSaAoVSBS72%2B9LpFQZKKRY7SJIC5ijWw9%2FEsZ3mUKkLGNVSEzChoRe%2FqRjEg4JWu37lywuipmtL5KTMtlIGignMzJb3ckCen2%2FcyTEAu2my7cMZcJzb5qq2trygEIetiBQnD7QUEpVCcSpuyHT%2FsWbr%2F7s%2FyqVPc10aJtClT1%2BLyJyk%2F57%2BSIcw43GHut12SERUPKo77WA55oyCTBGyGispaYruiJ0m5gyt3AOrvr7Uqpt45EpmN6kOAyiL07NYR0XvQUqGkxrYXxNWfGwmeVIIEUwD6J3akxIJDtrAttwwACS8WrobrppkYUrydG7vOr4hI2fO3PVoHNWvmkMIeI3HwhoRGBD1RQcMyGg8R0ztQ3KQjYaN2j0DFtHQw%2FSyFE1zHzI1eQGodT1gFJ7G%2FDHP3zzbXdv3mZqTJYG2W53HEcOJjOu87vn0%2F%2BalDrbzYNeIi914lHqayuPlIMmm1lrHosJc45FTE%2BOfXbwC6aC4QZ8H5jnJtU25R5JFZcUBSfUPSn59EwXj7SHmH9MgCiM2WUEbVO2hWioj%2BpIEHAS8RAc1w5dUa481PwSEW7kQc6Y1VsSxeL7fTVSOSmkWN%2BKQspFdg5QGCqBRPInf44u5TW0VC4kJmGU5P1UaEzC9eUuJKS%2BvjCltDWwMXHNqQiUDcFuLiwgF2o4wXbtd%2B65NlDLmj0BDXfCa4Stjd95PlAD5m3FHKb5wwWAkoWYUS6NWkmx%2FQcdAnszk%2BbCX1Jlr%2Fx9IL6h8J%2FpZHALWyi79DdGRWBtA1mpLTkkZjfTTm0KbJg7RbED1NZaakrRFaHb%2FLzdyifG0WbrqHaSWP0JTG%2BkQoFyD%2B8u9BaunvG8SmuVEc%2B1wbx%2BWZQSV5BK49wZXH7WzRar19yAAc96Jxy6SzPWx06ChUvXKSVHK7lqo4NXDTtnURlxZwpmrENm%2BnMqsKFqyn6BT0BA4ztmKv1Uy5fLNPWMp0DnEVnhK4dZ%2B9myi5zRBG2NSan9DXjN2vUbNn2mBz3tWbe7raVaQr154x3%2Bc7PA2JGbepg6AWCqVKuNlDVDlsuklXi07qxEDFMc%2F9K%2BPd6A78Nen2h%2FjpR7eVGwEn%2FitP0IfO4civCcl4X2MJs9HxwyBUTXNoXGJfgjsDNK%2FvK8B06LJNVRWqhFCemZ4PNMvWvyMHep31cjxUkhRehdGFLOHRAo%2FO56s3DEN0qivIZCpNWMSRB%2BKL9P%2FlR8TMIWmSc8kRyq2amB%2BZxz1TGB8r79YEaTkgsFESDxSez%2FCPya5eS7PoF64T1SNtZ5QPVjMzDhewGgUI1QFJsvKJ93edCRBzxz6qnT555%2FwVfZM6fOKbuh8B%2BYER5awm6mshw%2FxB6t0kNidlM6tW2cVSdxSvWWfZZZIpKUY2G%2BmVprWld9a76wD1R7Bms0lPZwm4RIZ453twW9hUxVVWmtCJ6BQvHoBmQUIJnbwU%2BgJw%2FNm6s3JOqo1V1k4lnvNLOhu8EYNuODCBYuXaeUHHXrqjjsnFzxztu%2Bk28xg685%2BRkd%2FCKgeT37Ag9AQJM5ZmppbytLGytSqYh0ZMOuJGZNqZUruDK595jvNTeuu%2F1TGzf3DA173e62i2rIEOoNt96SUmr2JegR%2Fkwu%2BFy9skj1lHl%2FaoqXN%2BrZtmv%2F1H8b35sFhUGf6N4cKfeSouBGYwkTbGyZER%2FyKDVGIFp95FD%2FgGub6h9CysRVSHvtpk3H3AAczTMjPbTlg1qskB4nUa6wjNWlfl%2BNFCeF1J4KRKrn6FJeE%2F4h24ouFyCvYTI7Cz9qwdfWz1MxMYlukRGRHFNdoNBIB6NMVh8cqu8ymggsuciFYuZ%2FSnzm0mGf6aRGjqWj8lyol3uR%2BKWzayYnqOHdCN99UI0Og2LiLqTYWm2%2Fr87GdqRanjjWOv70mecuUmWv%2FH1mfOE%2FlUpoS7UUAHyC7mylh8Ts5uOpzkbyUJBKUG85YNpZJZKks6ZYa5rleBjmC6Da0J%2FshNIebpPg2jJei52mnKrKtFYEDyUbheNhA7Jo%2F9ieUd%2BeNrYY1m2vPm6iDtQboEnC5C0w74RDd73JbPBANxOQ3pauDnSdcp%2FvzlWZRPc7Z7GjZi4583I3lICGX%2BDOHiOguaa9GbBHpAOLx%2FtDIr0C0%2FzqYcbtbSMgknVPUWpqXq667iMfu3XDxns%2F05N1uw%2F13Lf5HkOob%2F6gBI1ZupEWAlrS%2BwpVOgBcZaR6LAPoViC3tw0zjf8xkQ34lvwyg8RWjpR7%2BVCQvNy5ddiWfp8xA%2ByoiafRGVME1hmBDhx2TYU%2FgiTck9SDQ4GjeaaKTCoONX%2F4wmVajYRluVayxKqLtjuSf5zaTK0tDKmeo1v30lzZHzIcUSYVq3pLs%2FCDGmTlivSdAmIS3SJzUkRyFLlCyoxdft4QAUeF%2Bs3Ka%2BNlmwvFmJ8x0mxnd8KBJAxr2GrBMdk2y%2F63EtpwMcoNysIhKElSdhYUeaSi2Fptz8Z2pFoOzNjZuIZqU2Wv%2FH0ClT0qjP4L8%2FrzcHuljrrkkBi0taRNao5z1XlPkHKpSSRJZ01Ya%2FabUA5Z%2BAZ6XcV1HgOnxG3SG691FGpz6i2gReKKHMNzoBt4mMl7JBzVYrBtryMJb0MxXN0gknqDUeLYKNf8wjJvDt0NbDcx%2FfR1cT9%2Fw7Vl7OVTrK%2BKKujqXpVv8Qg7Z3EeCgJ5Zim1gEa%2BwDuUgEbpp9go25ZIr8A0v3KYSalBfBWlxqdfabzt%2B9bcePP6T3xq4z33psc9G%2B%2F85MfX33zjGnluvpIE4vkgu47UiSwM2NrZzVdtpJwyf0wycsgbOZtoRIZoB5l80HZ9Q1My76c5OPguR8q9TCh4XL3WkarF08boBn3uVMdLsbjPqSdRPRQHDlRTE7t20IMDIBU4mmfqfbfiUPNLMUBZQ8l%2FoKenb22X%2Bn2JNKD7Cim2nGKQ6jm6tPak0aecgIjhiG9SUcDwAT8uYjASuCIVFZOwRcZcFpmBvtTeQkxMkA62L4YTQbhjdJ%2FNhc5CBuzRbLv6cCCJ%2B8abrsIh1AsRayofURF0h0CBnXQeFG3qSLFZSgh0NzLIWhJ3DzqO9IJS2dNMJ1DZg1gghJbYFBPZ6UJbdkgsuy0upgZpadeVWU7tXWHKZdi4afYPZc6a5gebgEHTqRWggGrD614Mdug2KY5sJuUKrk29BbuQy4uHmbyDCKZkPbILPJLw9rP6BpzPqNQbnBHRsNuvDkCDXxMNPm03EcxdAgtHBv571pAJXad4iPVVkTcKrjrQ%2BasyD0OSMisds5Tw%2BVlKLaCRL%2FD6q67QOnpEW8WwkVTNio0Q6YpiZlChJC%2Be6WV7Sg1gN3zkY%2Bs%2Fnh3r1330QzesyZ6bcFi4GOZlqRO2qb2i8nqlQGogrRgp0wapUZjY8hm0n5WQcHDkixMcBTHPoBBBIgff5Ui5lw0F11FkyM44K1tUGaScO%2BNM9vpkRIjnwAH3AKwdIsFF%2Bi4EB8XgDyPmmVWFml8iQsqqJCIU83a735dIyaqHFFKcCkCq5%2BgG1p69RNQofo4ulyeGboxJ1B%2BCqRUSk4SlksUnjwVT6xH4ig%2BMHTSK9kc5pjD3SGTA%2FlTdGWMzjAxLMwhcE3MS057eERd2qeWoU6DAyzoNir2jimJTgofbSKM%2B2bm%2BkKojfrS8yn5%2FoLKXBxPiObcDYrHh%2FLmyQ2LDTesbtuRaY8MUYjYUiSx3hrZcsuvuGLYmO0jANLAMu1mzVn%2FCgVPiNkmuvXgKKVf7Ar8kegv4j5YYDzN5rSPUbsLNDUl4p2kzGOAzOo5rG2TjkCV51jswPEeoVhPhvZFxvXSZLPzcqa%2FZMVNZ12n8qtbndHh3h6%2FKNQ%2FzFCR5Lu4b0rzPLGXfsBbQ6C9QP%2FqHFZEmgcxBpCuImQGuTqT3qNCiDaVGUv2GD2XHDddeEzw3YUNfQrcoaacdEoM61aRWEqQG0oqREutXrWCQ7mlW9bXLicJGbU1sNh1vOZ%2B5yXuDvnOk3EuIgmI4ZMjgZ4XLgSOnLnFQT4bNU8isj41g7bCrjCg%2Fm%2BEsdMmmH42YZ1YXan6JiHDVTCKiZsF2t983jhSngpDqObrhdrfMdwdLtQICJ8YkNPrk18Y%2FLDIm0aFy68kTC3S1E96M3R6kx5KCuSYPMT%2Fvr0uTKGcdTSTpQxB%2B5VTu10Rw9bdqPeoUqMHOg2LWKtEUm31YTa%2BNnA86%2ByK1yl7MdKiyH7fzVgdCywv1dJYbEju1%2F%2Bdic0m3FT7SykggommIrh4HXCbdUjyHas4YZs1Cf%2BLCOSu3sUp7YjX4ITmRTlPoLTBVtdx46PjCBXOkT8aNbXflZothPwJZN1vMJKOQp5qeRcyBGcOiwc%2BE98%2B%2FbKgS4o5XDQtfXHjIjpli12n8qtbrbnwi71UxOU5flWsekuhLBu2bc3pD0uycEtCoL1DdVzDoYJBTnQnfHES6ipiZHVZ%2B%2BffjRFFRW0odHzDrZmfRPy91i6JXRVpFV%2FZ01UOqp8y3MlNuezIfNjiCPWhCbK8ks4ygEH2iDApzpNzLiIJt8NiP%2F8xU%2BGwCheoYSADRQOs1TyEjB029mQSItcNmlqC8ke2c4JhNj5hnVhhqjsFuc1nDLBoTqQ1Rs2C71O8bR8qfCkNKRLiqZ%2FQpcTP%2F0JPXqERmETGJaIDwU9diEobKIL9Pw8G9JiK5mszQNVSnVk89cWcSGqHYFwjNjwlotlPkfB7ljBqLLexspmkPW63VGKTygmIORlPsmtLdoI2cD3ofHREvKZW9P2UXmsSGud%2BfC8yuVW9aySFRZH%2FS77aiK86ItcmEsKQ5h3uWHg1JwOAe7qr3u1mz8NaUcM5gYpWCXJudpqneotx4COcP01IpJ%2FGLCd2sxQA0EskO9Yv1jhu665yGnDgV8QeE969hZzJs6aULz1r1zQTGTK295spXTXhV8y%2FFPznnVV9%2B%2Fpy%2BKtc8mSPWCD0IIaetiZyvb0Tmo2kBzZXZ3mH32RS5fXHfPgpSchDpCmLmxy68S0odnx%2BgQ1WiqwuzZv8ctv60f04Ny6wsUpaAxCiM4zhROcSAi2YyO4NSqUjtxc1srM6gMEfKvaQouB9bHvwsLK38abnO%2FWzKb56CFnd4qNc6pZmUCdWR6LkFSIJjNl1bSFQcan59eOAKSVEIT2oWbETD1jWkTZyKQcplgFBoo7M9m4uW0FTnlXc4sE1JmDsPSxsQCFHrTkyi3bGedg7u4hqAN8AyHKidxRN3%2FwSNUFA6g%2Behx6Z%2Bx%2F%2Fqe%2BWZyAh24hkaKcPcsoLSWStSbNaV6SSdblyprHRrTzoL6fyPlMren7I7OuoPeibThvqLBaDSQ2Kn9pN%2BtxVvhR2QhZZSKbnOHz58eMHxbJjsj7t7iAm3U67LNg3npO0U84cXyLVBu9BpSr1FSfHoMj6k5axqgYcjDEEUMuki2V5nvSMXrklci2Q8go5AeH%2F5peeeOfnYISuL6wnGTOmrQsjeqasihNRXlTVvlmOV%2FU7ZRAQ1s2LI1XwM89GUgCZCpIOp1o0DVr%2F7EK4HillfAZGuKmZ%2B7Luk1PHJwdqcVOoSLOz7znk4uc9WW2n1kGrD%2BMUF16Y3K01DUjm07tLQRmIhEbYNcQmDQjXvI3KUFgX34z3wxTDDLEip4Y%2BD9TBsnhrq7%2BuTHiJrrEl1JFIv8OBAs0wkm159qPn14WSuQ5SIBKccs2CLRgpmVSBSNkH68hpZBBr%2BHF2mQ1USYPXIv7YeBlHrSkyi3bFMTuRb2MB6h6VMVrPLS0N8TgZsK6INlWmEYgnRgQQG4PQ8xA5Gfb0lGtTWIAaULwDbG7LsfBZKDYo3cG6KU1JJiam78c136dWxcQuS6q0Ty6js%2FSm7EyaVzDeHuxQogDwHWG5KCkl3agfdVr9rbwZWVptyGXTeatCZyGQty7PHdpvleMikYywZhxuDzJqFwU5zWpT2AE6u%2FRYE9ug0hd6ipHh0GV9yyOIW7wymEYYgkhXrWsw0RRO7nUDJuFZm2TUWQuH9JSPjaoHRb91Ex5k2VwVN6MxVIR7jVfWaJ8sb56vRNp%2BjtOCl9%2BzFN7WAJpbqZXYHbdwzZkRDw3ZNy0ttTjnIf4kx56fUPbvbvb1xxfkxGS4l5dNwZo6XFlAJq%2Boh1bV6GIUNjoI92GrPvKscmpyTaMSn5%2BgNo4JCNe8jcpQSBffjLU5Kf%2F6ZJ1DZlGm5zv0LDbRsnsLBHiKYBgtIrHc2MIEtMozzLz4byaZXG2q%2B0Q5ZD4wvEcFJS0QiErYuIh0fLg4pu6q4ltRFXhmIbVj%2BK2COrtpUgu8LwUjXYhK6Y93%2B6ZrthfpjXSaTaNgkBC0T2t7bZ47%2BIbEFwcsSeB5aTauXdkl9xMdFBOYPsFdVoHKDoq1mDSeO0Ap1N7S0ZZT763dvQVJ9YXmVPXPuRnRBax0OxlDpr7JC0p3a%2FxvNGn3otpIyzGRj3trI2KANXjpuvqLYNQ3DrRVCTGSikZyhwc68N2DWliw8rg2BPTpNPwAEpcbDMj7U4%2BIq4%2FSlqCkYFPaAqy4iWZBwaG8gxJG4VsQ3J0LhPeI4g8so729f5zvO6Kvim%2BjgVae8q%2Bo1r4%2BKO3dliK%2FoorOdXnpKQBMVeWP0qehyMO97ClMIXDtzjUmnCJGuJmatJsooNUqczh2Gq8FBodSqbhfzEXq0Gajmm8G0%2FOW6gZA5qSRS3f1xbDHTDlNZXx%2B07tJ9aIXBHpMJCoOgEBMRc6TcS4SCC%2BmHbzNSejS%2F%2FjmWOBQNOf5P%2FHOglJSDPUQwDQ5AGpnk%2BRftEgJJ0qnH8mXTqw81PgjP8%2B3wBTbKFTLnLNjqI9WIkiXkf3znznE17aOoObos33FTkZOB9TkEI12KSXi8H55Npk7GQFnKZGhsdKaakgvFMWbjZBr%2B9DmROP3O6flkV17scYN0nD%2Bc8WzV%2F1FKULqidH9ADj4Xqu3lU%2Fz5nLfdvXmbAbO8yp45d5tzFlP9xDPVV8LXkkLSndpP2XVSYjY0YNBdGUGbKdTIfEVzhscm7WZmEkrPazTYwbJNzcmLb5Jry9PBTtNS46Fx94mjwiRnw4ED1mS0jz6jBh9IOLQ36eQtWHDKhc8HwnsouAyuLXffdtN1VxV4VQSMclX1fHIp%2Ftw2d6pJBy1HadFLTwlookT6yDQ7cj9r530b7d8wivbQRzDpFCHS1cSs1UQiqB9Cq86wuQS7ybJpH%2FGP1WMpFpyT95z5OCye%2BNQEn6q7gZg5qSRSHTF%2F4wiwUeyFNv%2BRuq04S01M3iWmigNTeDXvI3KUEQWl9PLY28edc2FcUbDXcmrsv94xP09jkBH4bAKkU9HbwISSpOloNr36UPNT6im7XI8Gs2CVK2SkPlZVpPkRMaluNidTnWebJ3VIhczR5TusRh8YWPtok%2BrHJBwkV0A8xy1vzBYKv81AWQwfB4acq85sAhW0OybRHtigGTj4wV5XLjsEZXHglLH3d%2FdOap6tnJ9KDYoVJaTZac66DzcQFDucvIGPwf1bu37Dpp7h0eVV9jSMQcrZjdMVbQYpu2LaGhKVCiGkpgcJnH31IOlO7W%2BfXFJxTVMuCNr2I8MuB6Zr0W7GjW8YlVmzVmEDhlqrU3Mifvrk2hDYo9O07HjYgLzYFOkNMc03ptJCNH1GZ92G5DpZYL8vCXh3YQQdIrxnCLdts%2Bm65VoWuWqj2aGr1rbwqur5DLPoo7vxGsKTEEyFXnpaQBMl0lbNIB6c1qHIBG0WddaaexQ0MsIjK4pZq4l8nfvEuPlEmt9w2kebj40NmGVzlJM9%2Fafd4%2BiLCCk1dy2sDNVEquX2X7f3a9BFzMNu9bBFZ%2FSaYdQ3WTdTxV5QuNjkvI%2FIUWYUdNFxBa%2FnpMHf7hLSDjRiObWbi5IaaDamfQ8O2VcA0qroX8MaQknSkMqmVx9q%2FlIPCSzzBONfRETLkbAFuEJWB6lGRNGmreFMTx%2BYm1LWo0XN0WVmYsHpTGg7aHq9mtP0%2B1RGn0W0cPNlcS1CCJRBtBH%2BWpIDVx2MwJttygF%2FfTAgmIHL4gMXmcWTIk9MsnlKZv645I7nYcIGnq1mPpQYFCtKnpecnY5qrVnmGjS%2B7uUN9AoI%2F%2FjGdXds2vr%2F2buC2KrO7CxGDIskI02laViMZqQsMl2wGI1URVlkkahSpCioKeMHzxi6cCRoFVYk1my8YONNLfQWcYJNiGcBVuVKNXJr0VABlibWGIcMpAJi8Ci4YIeAE%2BxxMBPAuFH%2F853zvnsvJ%2B4fnurre%2BPcDRIJ737v3f%2F%2B%2F3fO%2Bc53vlllz7EjzUg5M3UDxSI%2ByKfZPSQ2kacgse2XkFh1WxlIvlM7G7NJQXW7Skq6D4SqjUVtDNxSdjPt9dbtN1DgQdsp4j1qThzXpsC%2B4HjYgPwfggUrscaV%2FQ4L0VjZB%2BROOJCskwUrv1JFDos3zgrv94Zb%2F%2BppsvDIXfFJ%2Fz93feEZcn9XhE1bVEgnCdyNmk350kRPQi%2BgiRPpf%2BtVSr4f24LMaRDU2sqsK%2Fby3NeRabnlxsyP7aHOHXOgurANaF4Jf0T6iGMDZvGhJljC7yEuGmHzTI3lQsqDO0M5kXrjpwHplWWvByLmQz01mw2VGimJxjSmitVgE0HhbhaEIldRUTCN8ssXrNXlE7H2RacK%2FHOsA08noks4oldb2oNDR0caoYaKnkUzSJJCpdTdsfRQG2%2FySE1jD%2Bu4WwjsW3Qh2MFpdXFXyLWDlIgOJgOc0CB6qEdK%2FYkcKe85uhs42j1l8vFPXVJs0hlWBzrTMYnTJObg9qnmYB9iUKdN8UTST1119qr7uF06Wbe1WtkJ%2Fb3O%2FDf%2FeJ2AtwvaWBjiwUkEWS2Nxmg87zwjiwjKP0D2DgTu3Ptb6dZDfGsOfqzZc4bkuh%2F9fNMyKnuOHQly62oQmtj2vU3zf%2FAXcwL7R4BkATghseq2ApBcp3YmZrNWKm0mNQv9ntQVQJvDTnvaYAdUG122UHpRc0JzG3JtCuyLjYcNyO%2FJOYKVyKF16akVUtPqxNwZI%2BEGuFrResO%2FHseN6e7P6E1u%2FeP13%2FaurXsavCvl%2FrzrUz8B9%2FfrEwkPBqeotZsvCUR49CT0ApoY40VC1HxPsC1IJhSo8Zi5YtnuEuGRZcPsWwmE9iJQD%2FvfIYnhWznwltM%2BPKWOD5jFcWpGCQE3fo%2Fw4QJX8%2Ffemb%2BkSP0A0773tFST9uTqChtELxID6ZGSWBdJqnjx5gUEhQ1IxAuFgtePZCdFJ%2FFHgVIP9UFjqP45wXAUG2VlazMMOKxtaodunJyKXjFCjVpptmi2aaPbtb67UOObhBHYAygzIucEIRL7FU2CG3eFXDtIiegwy3970CDa2bEPfTD0eIepTm5zdEnUTD8B63qBJUet7FIgoPkZffos%2B9PPbtZ0FozCtS3e5L6BUKMhMkTKvIQaViqmgK5RMSKzf1CyYI6iBeuh1qFZLfSj0ngePz5390KD4gPkXLY9%2BHAJOVBnRW2ZPRv8FARv6x7bmFHZf0qxBMeOhLAFAnPI0atJ%2Fs9ZXjQMKePQuVKQ2KmdjdnCbWitU925i0EbWJVWXZF9bjO7mR2tarBzyPI0VU2NHjlqmhPmncm12WlaYDxMUSLIP9HPkdWoQlgpi4EsbEYlxDUSjoi3ifWGsxMp8c3EWQrvn%2BOto3eFI1ajd6Xcn3f9QSThsb9NJyrXatpJYgqGlCehF9DEXVDwv%2BOFxoyEcAlqfchcsRGfiXJjZitBwKzTX3dLULevEyaQwoAyVhKeUsdNdI4eTowS4LZWU0dEmwOCleUodZmRUneK7XOIpRrsHqoY18SAGylJbxgM%2B8O%2FbEAiXjQU3Emf%2F3VY%2B1L0mlQjHfrnQCvYDoM0eGeqBQed0nRWII5jEmoWzRqQJJUeavxt5qQR2aTD%2BWTvyAEIlxkgk8BGXCHXAFKS%2F3%2BGi6O%2BKJKmwykOe%2FOACE1Vpyfv5KaY4qHyL9r%2FLHJPwAJh3blbwnlse7kbfXKL2RgYkgpZz5lIriINfgiU97UJIahUqjt4VStNLeoIaC8LNCSY%2FQO9C3MUuh4kWSp9txgvxA3Y7e4FBcUHCC85fkpz5VXRhlvBFWGd9Wy4%2BsEPMyr7S9eMN3HsCARLnUFtbfMJmP972FQ%2FAqllVSGxU%2FuZh2M2HZ%2BSsdbZA1W9XW0CGrtxFdaaOner26g2HGck7zyS1pwg7%2By4dtHxUIFzaqiXM6jRULsdpSy74GOFJgMl4RDhNzWl6g1zixTfiLs%2Fhfc%2FfWJdHne9c9PCRd41kvCAVh62ou3sJIHTET0JnYAmLu%2FsHjgl1RxE%2BaLfsjHfTNxhxUZ8JkqOmYdw3QyyG637u%2FbABHIH%2FmJvaHeilUScUnuPWBhFoj6NSSuBJZm7PKr9TFo5Sl1GpF5xc6JfigcaMUvnexWvDCiFjZSE25XEhPSGgS8k7IUZFEauAqPgAv55qMXjQB6duA5fYWQQbAKiCAbTDhwCj05pOiuwPSHUkaLZ2oG63Ax4mzEuvtQVqVDswjtiliVSyM6BwJYJKV8Vm2cTEJiZnfh1B8KHYGA7m6pE%2BneaOqQcyD8SE83197elJTTr74A%2BXfJxqk3I2eiTDAneuNAKmkhOLb7N%2BsMMUaqv4KruUFsQkcfxZVESOT0Ho3ztjYMfmaRWA013LW0uyV5YUHyAWFd4gLV3On8T7iCuMGHnrU9VpCzedQ6sV5U9g5FEMbFd9m3MKD6giVYws3ePIv%2FnKPvykPDFVguST7UjWDhr3VbaoU1rHbGUrFThp2NXq4BGGVatNffLQC0VoFR14FRvf8g7X56%2BnShdEKw4rl14PBw8IFCMh2NwMGZOMpBFRCJNBvvrJLy6Rdhitt5AyU8PhfcbcrirSH4uQCjm7%2BoTHvQXFcoSauvyc9OXRJ8LPQndARvpzO07aV9oK%2FRbcqFhwRJ3MDzJ5FIc0LJjJqVGU2crMKJbWwLXV3HkKdXuP4VwxVPqeB8t2hRQ8HhT0ujYPLG9aiGEhXRHqcuI1CtuThzry1bpwjRYdQWj1Q5CN5WZYF1AbgN%2FsdbNCAqjV4FR8FoXavE4kMVG9DPJOYQzGfyqVTeNLnPgYOcUUiZ0DgvI04T66y8jRbO1AHW5GfA9ttN0C%2BpqRaoTARWW8VZm9KIEdi0hZcPvYJ92tpmZHcY4SEb4zfD6UMHAvkzIa%2FIg%2F4P9nDQUYO0FLNGnI6bntpeT0af3xlWXgPMqkkN2gYEyDFHgCgLQZgsSyJMQBLwskI%2FM3HsgM3K1Q5R%2BZMKrhEFkfn3HIgsKyj9AGP3JkGGQxIAmSGNgsoC80rQ1t2Q9g1RlTxnSlWtU2YejSYBjJ4JR0WtI3UBR7F6Z5SHZF5NoCJCg1M8Nko%2FZkB09j5gNh5JWXK2BFjDTRdcdZrNv%2BnuycqXatdBpemos5J3vpZUuyDs7rl10PBw88H7Cw83qByhatryyJdyfAwZIwquSJWC9gQl4k%2FxQeJ%2FHXe%2BJ5GfIyf2XSXiYvygoi1QWKlI64SvTyaASWUp3wMbUEKetmtNc4bQCmOdY4m4R2flILqWsmEmp6eOqEYo8O%2BQzhRPK00ZeCeZEy%2FYRx71mICYX8bSMg2AubXeFhXRHqcuJ1D%2Bv91Evq8KOtavDNllkBtptCAZ0Iso0IQYzuQ2G%2FTVgsFk0FMTypBzIFl58FraeIcmoI4JLHDi6unvsol9Ca1VnBepxnBRLI0Wz7y7UuH7tiDkKy4NN3hFOcENGL0pg1xZSMiJkY7aZmZ2Ocaj1iMdHKxUMGaPPn23IYxpa%2F7%2FL%2B4vBjpgxZ26CNROU6raXm9Gnb5BXueDHIpKz7EJVA%2BXa22931%2BgKAo%2BsLsTJ1g2IrtqzEzP36S7w2nb8%2BOZH1rZPZ2y0NvPXd7noQoLyDxDrSqJKkR7hU1Bw1VlNyCule2Ip26LKXlCdGqPKXmqRSDBjomxz2HmUaGP75krgKxOFZA2EVOrnBckPWcFTM5IowZhZ60BQBJjpoqsO2EXjrc5vQNepibiODIRO08kZ5p1V6YI4xXHtIuPhnolC0wfKw3eqsfShLkWxV%2B%2FPAQMdJOFtYrfDegMT8Cr52U3h%2FQrelUIjWSgIovxd%2FVaMRK8JjWArGl5eRKr2yqBzlllKd8BG1BDQcmWnFQA0E3eanfeuDuXH7H1cX%2BeRZ%2FlMHWnBvNIyfcTxNoXwTzhlXWJlCRKNrqMQwkI6PXTKi9QbhQ2HxyWfqm0a2GTlaodTGMy%2F8J9YtgFbVLmNDPtr4AwvHgoeyNDS4zj4ArtPr%2BUJtqoDB7Lo7CGiX4IoJSXHhOOYKnr9Rr5oViioCPFXDqrXr2UJbC15R97s6uQEtxwIbNmQkhEdt7GwaIq3MQ7qiLWbCobcjD6TquRxWUKwVMnAgqCUQtK8jT7ZIP%2BSGQV8YmUy9cSVOTTtIEJvv%2Fm2QA5%2FGGEKooFtaLBF7lgVwVTHbbO%2BSrxcXQfMj4xpM2epX2RQfIDvcdywpEf1U7TgqgpDlW35eRZU2aMe0U%2BVvfrqhPwUEs%2FNUowg0cYGiZXAVyYKSb8ZLA3yhuR9moTLqDxEZFhwV25HtAuYmaIr8uvv6NhFTG5u0a5Tpdoj5yZuLiwleWcoXYTCOq5ddDycQNMDCoiAAaO0at3vAEWH3h8ePF1oTDMSrm0Go6w3MAEvkh%2B4%2B0N4v6J3pdAIv6GT%2B%2FutmP6ishY739KpmlK2w%2BGgDT3WOcssJQ%2FYuBoCZA7VnPS0AgMNHs3svHN1KDdmn4Eb5BwLHHl6WcMO80qujzheSOdxav7yssvKYrHfo5LePOece37OSHnwN4jUG4VBLPeBTpmvasdZlx0fgXOb%2BVcTFaYziyS2KrfhsL%2FIVWwUvJ6Alt4o9ZzUHYf6lVPvsuYppE7YQ4S%2FDbk6KCWPjeA4pjEy7NciRbNCQA0h%2FoCDmg%2BBhUERGoO6BDsbuidyILDlQkpGJAo5QArnF453pIjh%2FyIkGwqGHIw%2BXVVy6CR%2BKbSddyjrEFhmKmtCUgorcnqkzI8%2Bu9ksgidRJjNvk6YKhMCaC7Uo2aQSVXjroBtwBOSQLXD24wu9OPTb4JvYxZY2ps3cMN0Cg6KR9HFbV8qceg7hCQoNkpVO72%2Ff3EKV%2FRZx06HKHsUMVHB1pKwUI3qVaDP%2F1%2BNWQhwSDoNcIXmfJl3Rk5ol7kTMVtHu2Q4z0efVC9DgoGo3U2luVUJ0EFT78jQ34iXknRGieHObwuPh%2FAq2INQ61OpH1Ta9vXZ%2FUE6cU1tIwvszdjtLTMCHoAPu%2FhtyuCuFRhI1q9w%2FthX%2F51ETGrXJjhdmKrz5dv3Fo12%2BBZV9boZOdDDhwIhUc%2Fp709MKAJqJO2bnU0u%2F%2FJh9r%2BtJ1DZ36pFnFS007PwjCJA1KPs%2B4vjvgT3G%2FOVtMmognG7zdBMzVwcpIouGkPpuIRPLjYzJp7ZJmwaHw%2BrOj22EClOEbiS2kNs04AtZMBReS09KPT939cLYKeXU1jy1tcIWIu2b0o1TlZKXpnGIcCgKQmxfNCseVIT4DmoOBNaYolwdEC3hC2GCW5TArjmkZNlmvYEGjzYQwzcUEDVx2AJW1ujTVyXfP2aes1howAV9Onu9nLAiv4e5cdPzprD%2F6L%2BlTDZwBEw7ZD2bKlVTQYcLKntx1YScEjKIo%2Fay0BFXf%2FytLaAX6iHIr4m0mduAiw2KJWs8QDhiyqd0aMgBE7GULN7Ps6DK%2FpfPvSSMwlT2KGZ0U6yzT9glxm4BC%2FN%2Fu91KiECSwyBHSJ7l4KlpmD15RYjOu%2FrQqpWqbLE2Pje5AFplRtZ12qaEaFCp9j1yz5kryDtD6eLyzkXHwyQ8WxC00NK6HX22D5tuBnxNTS0k4WgzWEzqDZaAh%2BQH7v453HXOhEbCQTZD7h%2Ffik%2Bp0Gj7q7LjsZNE9ckZu%2FyBepbyWw8mRBb%2BjzjV%2B3p79Dp4mKCpe3ZT%2BcuP2dPe3x1FSWcrVJGWC5FB1O1sAY31ES%2FvEfs7gYN5FHrCmz66ws3TZfdWC%2Bn7QikfDWlcovfhKMwQpBkUBzcukEiIUE1hytCNxLYBuU3RUHgtfYpSf3l7ZlI5NWIQ3TB5wURNN84%2BKCU%2Fv5fh%2Fn1Q0T%2FrimYFhIrYNwU1FwJLpij8Bq8IJbh4RyIEdu0hpa5S1hacvLdLAlMSmTZFXUm2a6rKYxYy5oyibxVm2tbrBX06e72o%2BslPyEV7LCjs9ZF9NnFuRJm29QSGPm7z1RShqpEmVUCjG5BihPnZG%2FpiyyguoRdg5jp8izPz3AZccFA0SxzWdRV4AWTxCDlgtUZpDAW7Pnpb98RPw35UTVT2UswYOHKw7vbdI%2Bxy9IJ%2BCvN%2FfkBLHFKlmi8k%2F9QSwaWkXI7qQ9NRDC0oKbyRvgAaMqN612kXCNFpo9oJ90SavVOVLi7vXHw8pIAw45ZCC%2FvQdj1kuhk4OA55knC2GbDeACpAyU8Od7181oRGIvnZBLl%2FdCt%2B34RGYitqnSR48aBPztrluyxlNJpBTTCc6sMnhgbtOj5M0NQ9u%2Bx86TF72vv7ekmnIk8VuZCqdrsi3dXQkcc9Jnw2Gq7MGlYIJ5yguHm67N5qIR05CqR%2Fv4NIUQyOII1EzP9FtWBzRZYELvlgFMioMGXoZsS2AblNUVEwgktR6nDC3l1QTj3QF0i1lkp56fgUbJwnTSnJ%2BiGHojznRoMXCSpnNyLET6DmRWAl0tumBQrMMEpLcNHKGHlH1hZS6ir%2FIJDMyXurEEOk76wutuiaqvKokcDJAH2rUNXCXQTkAqoLlusWclb9kAeKwp7vyo3py2DaB7Un0OiQXEKVLE42BXSmG3Di4sXxj3U9oEvSimoqw4%2B0tBUWFM0SbV2htaDaItHHthZNumRl8Uf8mAZ8zJN%2F9cwLicp%2B6uqFMyPHBwf65OofHBR2SY2Fz%2F8VFpJ%2FamnB5Y0rH%2BlDsyHMYXeQhZ%2B%2Bmm3SSv0Rdvf2KyG6DqptanNwz37knaF0cXtxGfCwBSEQHWtkoRA1PbNCIlkUHEjCH2oz6LcEPCQ%2Fed01%2FEMIjUTys%2FGxdd%2FKpPBDcD2JNaTSLr92s1E9sjHa5aeylPFoBjVBPNHJ8fNnxuw6Nw7Q9Omg7pkrtpyYo6Mj%2FqAlHazobfWjBcYlSHc1cuRxj%2FkAPlmatcJSafo7OEFx83TZvVVFim2%2BxZA2yZOLII1FzBchscMmK7tF0ytNskMIp0CUbApThm4ktg1QnaKgiFNq2P8%2BEE59ZuRkINWHD6IPjpdICvuwcZ6foFIS2C5wIKJT0RcFqp%2FduGkj9%2FecCCxSNMZw8I5kJLhLYmLYFXlH1gpS6iqRXbgYwuRe9eiDFSTSd72oi%2FmmqpWvkdic0eHz0FVo7tr4KvTp5P4YyJ2v6ocK%2B8y7MgumPdh%2FWNLAJoTAhYIj4uQ%2BZdnZbsCTJ4fH4M1Tw2%2FfakW19uRrko7y1y88KJoljqBltGYmiWgbsqQLZfGSV1pOsPvDnzyVUdnfmLp8biygC9fw6NiZwC6psfD5v0JCigsur9y0h4aMiw5XYc2VoRsmrfARhpgDhGixTrWXFm6Gug9IK%2FLOXulSEjxsQYAIiX1otiqzZWgUHEjCGXQw7a8JeNx4he%2FKYkOPCY0o%2BYmZFGK6mqDd12b3arUXj%2Fpk2uVjEOm6R%2FAnY0Pf3MzUNbuuz94R0OTRA073XHrMnvYisYSSTg0rmkdLjxqXLDZ25CV7DEo%2B7AbCD5IyKHLZvdVFym2eVKQWQRqNmP8ItSA2WewW2CGUU%2FRTI56Ebg0Q24Kj8JRaB%2F99ubS0MDM1cT6Q6uODg%2F196WtgcOjEMDbOeT2NORRliAMRn3A3KBLUzOzGlaSJvjHIDIrIcPCOUIKLyiPGF8kQB4dszSFlmPwPeFE%2BFoXXYZnOg6tT0ndDrItJNJI0VeUxRQs9%2B8fGxlVXAatP46vQp2Nj4kDuvFU%2F%2Fl25NP2nuUCSTg8jDdyLFkhcUINonHySLDvxOz8aEsbHxj5WeT5kxEqiaj3Zr3nZ0dEig6LyEuvqaF%2Bv1R7arVsv21x8oq%2B2XHb8B1mV%2FdXZ2etXJy7KNT55bQrsMpL%2FKxSkuOCSMdvpU8i4YLiK1Vx5tXHSij3CEHOAEJFqz0yi40MyDMg7O6VLGfCwBQEiJGtkoRCVGFiG7tGCg5Fwttyes7Q%2FE%2FA53JXNDXWhESQ%2Fsbqw2SuGf4pYQ%2B%2FVZi%2Bey8M4O424PxmZ9L379WsxfXaDR0d0zyXHzMTSqQuXRrUsShtpNKjjyIv3EUf2GGat2u0NoUERk1bM7q0y0sw2b4HFQARpNGK%2BcoGbrHyw7hC1bpBuaMTNfpehWwPEtrgo%2FImMZNFQQBTUakv35gOpvnhubHT4ZPoaGTtzfpwbZ3IeozgTGYpSDKjIAeQC1TcGjSNFQ4aDd8QkuKw8YnpzZIjD2kDK7IL6Zn4SZJXHB%2BpdVb2SvhsTQBza5hQMK3SxZx9yzysXzmjuGrBALjhCJz2Qe1OOqh%2F%2FrsDsamHu%2BuS4pIFFnapKEFODaJx8cYIsO%2FE7r%2B2Xb3np3Ah%2B%2By4W1QbsazKHfIR0tPCgqLzEugqFhCHUHvAhmiVl0mURJguSV3LZca%2ByFyeV21%2FNz8o1d%2Bf%2B%2FSXHAVz%2Br5iQ4jHbdVRcw8KXkitrrknoFkAj%2F6KPkDGHPJdFVWsioSce%2Fcg7uy9SHjyPZURI%2BCisSl%2BGRsGBJJwttwOW9tcEfC53ZXPDbgqNojcMTFdTQ%2BOXJNbgvbr0xSPVux%2Bxy4%2FVBLFmgdYu1mbOGo%2Bm7rmsmOOJpU5p55BiFFY0jxboH7%2BVaC%2B2x7AbiD8IDYr44czurS5SbvO4zKNrWaTxiBmuaZ9ewSaL3YI7xEC2QHY%2FSOMYujXAFguMwu%2BlbSLtqE87DKT61vVrk%2BMX09fE1amZuTvYOHmI2FCUfRFCvfpQSR1y4v6%2BMeiK7tF24R2hBJf25bKMH3efstaQMruAF0U2mE8DSQxvyiCuIaTv0FTFoW1UMOQzEM184j6d0ty1XCAX1KfzTHk930fq3xWMuQiw7t5BGljUqaoEMTWIxsm3UCJjbtD8zn%2Bj5jyX8dv314tqJ02Gz7EZbBwtOCjfMXl14vwYag%2F4EGRJkXRhoxUygj6v5FX28FD%2FMkMB6Kjo8n%2FFhRSP2a7M3F5AxuX0cCDcrLlmQrfjyL%2FYI1xK8i%2FC09WmrQPcU9LsLu9cFjzehW7WhKjEkJShR1lw4NGpLbdM%2B%2BPGK3RXfuFsc8OLFBrFmW49NfSJ%2FGK8V7%2B9eElsGrHLj8RzWLPUZKUCNNAM8GjonkuKOZ5Y0oS6tCJPXcaK5tHCImhUtBfdYyasG4hvCA2KmLRidm%2BVkU6lt%2Fl6YLEs0njELOth9NJn07LJYrfgDgFOkbTFzISI0YVu8asEKPwqrr4qTZ0SAOLJyfq9f2duNn3N32XuKNFK6nm8pzVCqFcLqqMOnN2YX0KdTBF7NBnOaV3FTF7jUI8s47WClC8KR%2FrcuDU9oV1VQgwnpjJNVRjaBgVDjiN08f7enEXu2mCNo4uQ721kIHdO7wrkrcKRFh4s3p2fDepUU4KYGuQa4%2BRMbhB%2B5%2Bovj13qzOgwi2oT08nXxNgMZnaKDcqPipr4Yga1B%2F0Qduvx3FKTBZdX8ip7TE%2BV7wPQ3CLNUdFt30WFFI%2FZQBO%2Bujt%2FKyz8UHJlzTUTup1L5V%2FIh%2B6YQgcSjNd3g3tG0uzFx7M%2B60Px5cwUVqUvQ2vBwbUZdDDtv2El70rqn2lu%2BNXTTmgUTQ2h1MB7DY%2FyxaMvCaleI9UcWHNfkCDtLlQ0eLBam8GCpU9HaTHHU%2F%2BvK%2BYvsKLd0RIX7cUF59YNxDeEuTSXtFp1pF9wmycVubcc0njELOtB6MT0LWyy2C1shzBOwVQx%2FHhc6Ba5Co%2FCr2Iki0LHt0i%2F2GIXuaiVxFCUzRFCvbpQE%2BrgZjfmyRRvzEylGc71dCOj2Q285Jfx2kW6ThVy1t3%2F53ntqhJiyPQdNXGIRjauz22ELt5fwAq5a4VFcsHecjeQO1%2F2zxww5PCWnFqSw2kWl6lB0nHy0p1Z5gZlWEs9xvnTzNTkOItqSMjza2JsBo7O4oPyo6Ju3UbtAR%2FCbj2sdDZa%2BYygV9mjJ54UQJbBUvhKM1Oa3nXbd0EhxWM2Jl0eLN6ZCyVX1lwzodv1W8y%2F8BEGggB9AMxpRG0u3PNx%2Fy1KhMf7UIjMCqvSlaF5d6aFB7Tllmn%2FlbwrqX%2B2uQFp%2F0d2t5lL7iXhxXxyOCA2JdVr4AvJmoUPqyx9ucJ7YAFaB3l0mTHHU%2F%2FPJ5hvhxXtjhYn2mtEcH41iOUCTP4gyjh90qoISLG0PRXxSOMRc1gPoBMjAnkWuwV3CHIKjvp%2Bq%2FORl1w5UPhk0eaW16Tp28z1ZvEI3eW1kjYUZZMj1MWAiihlKqEObnZjrkxxIc1wiPo%2BGidgN%2BAP9TWMlCN9AOnmwn270idaoonLJW5iQZmwpm8%2FWCQs11vOgdw5Xj4HDI4EGujeFfdWj1tuEH7nXA83F%2B6huMaiGiOvEYQ4yCEXHpQfFSUtwncXNfAAQ053CLHRykUQTmXfAjdcUoBANkM142rIWQG34wAFhRSP2Zh0QUo5lFxZc82EbgQN4OHLyCM8PayunBiyFNTmv4hwz%2BLj8S0IkkF9AAy%2BDM1MVD0tbC23SPuv5F1Z5gD1jzc3xN1t%2Fly%2Fl4UXXJ8WmwrVa%2BALYc2GJ4rG7DG90MyhtRku2O8gZj8NBeOY%2F8fOFtdmSdFeI4JzlIu%2BYrqFP4hLWhUD6T0sbVKR5ZHG14PSCXR731y4a7sFdwhGyTbqu60B1l0CFD5ZtCmkUjAwXzk1YiwnF%2BVOkmglbSiKqx8WASr2eSgiSR3cGJWcmaLDKSVgbZyI2A2sLaTcYMj%2BRflsmPh0xbSOmrj84ia%2Bv9AcI2vier3YW55DPSKSAxYLfEtOoQueG3QG9H19q4ctNwi%2Fc64Hpx1n5IWvibEZ68sDiqOi0DI6d%2F%2Frhz9kHh1Cdm5FTBY2BArw4q9RjVQKAJmJ9DEEtSpwOw5QUEjxmI1JF%2FiG3nVB2zc%2FQWtjEMOuDlDtIK4PavPIBlJ8PN6HQjvRlv6vSFYU0kmbAYIOpP1X5q6MN8ZJ%2FRtqbkBqyPe3%2BqY68yV5rJEvhDXbBn9SaXfBBRsnq81gwZYdc3xECzsJ0NXoj7yIaC%2Bio2W5aOEbNk%2BXtCoxUn89YXSi5ts0uCRQILNR369WG2DdhUfhn%2BRjG0MqZbMcycqpRV2FumEGGeT1KJgmWsnIUJTcofp9%2FtQQqYNzN8ibKX6OIn76MX8%2BCddyvCPObmCtIuUGQ%2FYvnidI76WPNBuMH89irsz7a5rjSciQuOrqvV61vDxlIzngF8GRlAbC%2F3ZqRvKCZNvIl6Isjrf6cCo3aN9yGe24Rl41js0oDSiOikLL6LkJJg%2F4IRPoEOK5FaMAT%2F8K1UijAGgwFQcjmUAI3I4DFBNSPGZj0gUjcq%2BKoIgPwPNsdHOggQGuFl37MQ0IVPupJyPZojLg8T4UECFBVbJsJAuDsKTNAEHHStyVmbo5xBvDpP6NNTfQ3cZTFgQ1bKprzJeEazY8UR3G1hPcT3rgAGwBGmjG2sHc0wdBG1V%2FqSMvItqLNYqzXOQ3z8suaVV6pJ5O7GWbBvMFSapYOozrHlwijWuAVZQAhU%2BlbJIjWTn1YemrluYNlIshwoUqF8Y6spOktJLRoSj5QxXikNrn7bzz81vyZ4ofh4UsDIdEcSqQFZmT8E3J6%2B%2BRkv2L2znSe7f0CduRBtO63Lk%2FYZl0RRqQE1js9WJv%2BWoGdOF0AkcCDZR3RfrdRAcS2LZeqpSWriq81fuT3OBf8MeHdpz5ee5PiLz2MsQpCSgeLmgZHTj%2Be0keiMJGStf2ISfkZPm259b6H0s1khQA1pIyu0DM14HbcYBSQPIxG5MumJM7MiaCIujpMxXrxfr%2BKz5OeIID6mfdJszzZVDtxyMi3VLhoQ%2BFipCknzQbhSylI9mBI0wLa8vtitwV31v7oM%2BrITGpf8PNDeR6fPGSfCCb6iKxaWTNhidabcW0o3DBOR6jm602s34NYe7AU5V%2BfyE1WME88ijae1S02XLRpAbLXJ%2FCOF3SquxI%2Fbm9k20ayBcYZZSWIagiNUpGqtjZ70ausqDwgdzjG8ORbJwajqriFYZy8fik9bFchKW%2B7CRpraTX0aw2VCEOqX3ezjs3vyV%2FpnhMjPuE4cyL%2F7YQxTOYQNLxTWX475EmkGTOKdJ79oTtSFPTOgcoL1gmXTkpwSdhjaIolldvefx0AkcyGgiqPXRCdCCBbdsFv4ETQ%2FW3OskN2rekdhz5%2BXBxf0Lkxa9ZJlDr2TLa04fkgcjivwgRh31I37s1t9Jj1UhSgI79cnUKCdizyzkqlgWSj9mSpMu%2BTtl1ISiCkw56ahm34UVQkZE%2BwW6dZNnaEpjnX0eodgnx0IdCRUhhP9AoBNL7u9g%2BGckiE5VuM1iRu96Zw%2FdG6%2BnwCR1FSOrPuzbMSpMXD7ex8lyyPtc3WtR%2F8qlApV%2Fe0rJzl4yLxeT0XTtbEKChNrNmMKNjB7qGsfNy5GEF88jjNtBwuch%2BDywYrk8wTpe0KjdSf24%2FxzYN5AuAWVEjVQzSXR%2F13YAgrywo%2FJH8C%2BPUbfskmyLeo8fNhWgMTtzi5oqCaUQrucpQhTik93mcd67WmT9TfEtG9owKw5mQUApEUchKmJPgyvDfI00gyQln6T17wqN2pNlgfALKF5ZJV%2Fok%2BCQsLYrl2Vse50hGA0G1e3rFBVzYtl7mjt7bY291C3OD9i2pHUd%2BXi7uT4i88DXLBootox1IHkAWD7s6%2BxDrEOLCilcjSQEC3ca1J5CA6t%2B69G7hIcWTLrv2YNeFoAge%2BoKU1znuv5jdrOOK5RG%2B%2FDeBef7sLx3Vbuz6X%2FaumLWNJAqDvFmDTAQy5ECcY3ChQ%2FgMUcBILlTIEqgxyLgSSG5c%2BIpzZaTORRpX4bjGxblJl8JNevf3x27eN28%2FrVniwXPSrgbpFQludr%2FVzHzv%2B9682V0ZPHwPhTQhIRn9UBci7GnpM%2B1k0WvE1LmUuxoNgee23z6zfoPSn3f1VaXphcd6IA%2FV%2FR8u3toxUvq40xsMz8%2FPR%2BML8%2B9w0KNBWx%2FMOLGDvgZDicgtmMFIeRnInttFT2qWOT9BniycBIrUvV8IyDPWC4AZqJ%2B1KxIu2aNUHBKKbMSqqccmJ9%2Fh%2B%2BDYLn5KzrF8l%2B%2B4IR07eiULhYp4SvP8aEjpwChCKeJj%2FVA4%2Fxpehj2RYTbiJnNwYoN0DkkynNFE6BHREWZKsy%2BtI6BcYSWtKzCfhPXIs145rVu3RkqKU5DaX76iO%2FXbdw39LurXL7qq%2B1ob5I%2FP3nFMCAnyE5wXHjMwUDwyanSBKCe0xcNx6EWmf77tMFNpLgEuxhPEyIiAbrsJ3IwAILmLLsORsC4aiuzXcwUp45n8%2B8%2FfOoLXlzKEx0d1ozwdJBwcHr6HQpuQDB88qguBDwF90smiEsWy8LLuijeHP%2BvR07%2Bs3xhnpL%2BvKk0tPNYDhfTS89NfSn%2F4WD9sttrtk26v0263W83DOgzaumDmiR3b1%2FANogYzmCmPkL23i%2FB7qFnm%2FAR5smgVJFJ3xHpMg%2FWCJypGWyqG6PZ4B1cYKNyaun8m1ZTpTLeLHx4R%2BBz0vU3HY0evZMFQRTikeP40k%2B%2BKUIpGwMpEhsL5ASsFoShiRb6TkMa3QZqChAyn5T2OcJLS%2BGH8Ag7TauvK1JpPwtJN%2FbzPlruLU31I7ZupASxqmyF9qrPpja5qKKL0j8%2FecZkQCPKTdV5xcKB4ZNToAhQP0BYPx5FcRE8IeUiATq%2BP6J60mo2DGnAzAoDkZN1m%2B1RYVxqKZEUaoII05dvIv3dTO4LGcrSOjB6qOG4cJh62f5wMkIzu1IWAPZU%2BU052yF6j5d31Cc%2BtR0%2Bn8Bv9jPT3VKUvFx7rgYs6VFeKK7u1%2Ff39g8Zhfd9EbbcSl9YHM0%2Fs2L4GocQHKhqmPEL23y6a0SxzfoI8WbQKHan7mMYdBYVFfZ90RXY83sEVBAo3m9aPjqWaMrnCdrER1ghQpznJgnTcd%2FBXYVAZsxTP%2F57Jd4UoRaNybqTIKfkJVgpC8VrEyovvJGyQZjLcJy3vcYSTlMaX1hXXT6Pmk7AyZ70KDsrAI5Ha56OJ0UmithnSp3plqsK6qlURZXrHMSFskJ%2FgvIIDxan%2B2%2Bcuigdoi1fHoRfpYsPVRwLUD200DvZr1XJqEoQByc26NTFtgyEaim7h2oCUcU%2F%2Bvb60IyiW4xeHHgodz5ZtQhqOLv9QFwL2VPpMOdl2E71GS73rA55bj55O4DfgnxcmWbjwWA8cLfBQXRTHcbm6W9k2%2F0frhJkEh1GVNAxRQ0WDlOcJmRUG%2Fh46YTg%2FQZ4sWgWO1H1MA3QBzIr6VrsiPVxyGCjcEVc%2BfDTVlG7%2FDNvFIqwRQp2T8QXS8ZFjW6tgqBAOKZ7fiYrvvDYCtm8mMhTOnVqpG1sI%2BpTeAt4gzcTWey3vjTnCSUrDQY5C%2B2m61nwiVK8W0g%2FnloGQ2ifdvnSnjiYMWdNmpXRPdFX%2FrHccEwJBfkJpIlxQsdEFKB6gLV4dh16k4Texoni7smujWs6IgBAguSPaEdZtdXoiuOHagJRxS%2F4dDuwIiuVwZYvw8UTYhegO1IWAPUmfdLKoRJWWfdeZPLcePe134Tcq8eIkCxcebsNOgBy4eA0ws6FN0jBEDRUNU94Cfg9OGM5PVZxRUEj9N51BF8CsqFEqbjc9RHcwKNxRkmpK4%2BgY28VGWNsQ6uz3Om2kY0fZpGioIhyWw%2FP%2BNtZsU7ROpcgp%2BQlWCkJRhvk9EW6Qvlbe681HOElpO6WC%2B2kaMJ8pWCeOTbFC9f%2FeQUP6QIzaZsiaNou6cbDHVZ31OFqf10jxU5igmF1s8QBt8eo49CLV8mInVmCQ3KxrthNEcMO1AakGICv%2FmuZnjOB2tB54kIw%2BqwsBe5I%2BU042yuGuV3huHD2VVbQ4v7GVWXjmNro9lwMXrwdm9jW0uhQ1BrAj5XmcUdaFovOT5Bk8Uvd1tV4gmIm61%2FHpigwNhTuicvXDHraLjbDWaDXNn%2FX9n6TjlYIqwoE8vyIRV2Qii8IZDNVKQSjOh3mD9PXyXj01wkxpxcZWuQrzmYa1h0r1SkbpndmZrqE5lSFr2izqavld6fX%2BHIrzOT%2BFDYrFA7TFq%2BPIgXkDgOSMyGwniOAW1yZIGYCs%2FGuanzGC64CHyehXdSFgT9Ln3MnmctczPLcePfXv9HIvPNwmh06A9cLMNNxAyqOiWVDK42mg%2BWGgJKEGidS%2FXgDMRF336IoME4U7J2O72AjrJGrmz8q2mzyLhyrCATy%2FYhSEIifyE6wUhKIO8wapu0bMEbbCMFoh84mgXl3piNCcypA1HQOzuz6vQX4KGxTHD23x6jhyYN5wILkFt7g2RcqoJ%2FwbR2uIJ1YXAvYkfZIZcrgrNASe2%2Fvo6RsW3nLqgRvMtrSElEdFszgaKOmEkeD8jAJF6k8XwEzUHqXisFG4hXWchAemoqBSOKxg5RX5CVZK08EG6dtHeA5nAyu%2FCaFBfgofFNvi9RI5sFxYkNxAgZQByFgI64mHLgTsSfoEgLzuCg2B545yWHgLrwduML9AvbTUEv3H3vm8phEFcZwkSwLSllhKiwSEPZgu9RIvWw970BS8KIKnBfWyB%2BnBk5ibh0KRFkr%2F6PrG51c3cwhOkOeU%2Bd4kgfd5zs775b75IlHwfOollTNLqU9FYTKZTCaTyWQymUwmk8lkMplMJpPJZDKZTCaTyXQer6zcvOOvYOlpTc5SRqlWTvD2nlbGCIESvJymmix8xKHovyeLAsQyAJM6RYJQW1%2FkF2CMiUGcV8g4l91ZEWCpU8RirlqIW6WKChwNdvkad58VtCYpPkIsZZQkpssfskvG%2Bhm5GzJabrCCBiz%2F2Rigjiy8In8lG0LlMwVkshvoNR5LwT6QGeQoZwp%2F66pWh17uv%2FVFwHWYTih5q4tJvg7AvTBeEsxDQDXB7T%2F1XFBEWIIiWuGw9At2sBvVZDE%2F3475NI8T1N7OHlnZVVQ9VdCaoOw4sZRROm0q%2ByQpvKqfkVfupJZ9jFDKGMtqyg3kP8YAnJWqJAtfkdxnCAr3oyq5AjJJ7dmHlMXSmX4J9oFJjLpp6pnC11ujJCO91H%2Fry9HzIXGVTS8adRrD1DDJNxdxwirCoZ4apQ1BQDTbCRaXWrn4wIumYZ9RreCAgYn%2BhnlOH1b4Q3FfRc0%2FEA8pj7maEZ2vxGv1bZqTY5%2B3fRqNmeEanLsVtCYzHO0%2FQ8nJ8OFVlmv6GS%2Fh2YWWXYx25ow3OB9yuYH8xxiA4rXqyMJ7XJMXKUUclr3wI1VAJnKd6w1ZLJP4Y%2BXi%2BH0g%2BUNiCFHOxOck%2FH51ykjDaYW%2BAxL6v%2B%2BD9eUVyyY3HxJX2e46S%2BGJqIBJ6EuBdUDZCyZyBI0vfsYrQfjZjv6X%2FWqjiktuT42mYZydxDhgYEpiVr1SCVb4df92p%2Bf9U%2BiBwOCBmMNBPxin3GKNDrZ2aU5musV3p8USWrjPxSSHwe7VGbYmt2slt3ea3ItnKHOyeh6P4EwvQNHOeP0hbqbd%2Fmg8ne1bXrhG82Eva93vtnKUG2xE7Ats6%2FST4S1xeUHr6LbeTDu9Ye4iDs2mLi%2B6KXO51k52%2BfbuvpV9G%2BST6YzFspM267fXR%2B8D861XOoiUMyF%2BsEc7nTMaIg2PdfoOSOj%2F4fbH%2BiL%2BXYnmQ%2BI6SKdiPKIxDEtt%2FUzcBB7rgLILfPV9zRFkj37GK0H42Y7%2BV2Cjq5QLwwkNvKWmi4l7gtt4f4Kp0y77Vl1HarDCr%2FtppwfndOridMZjnm3W%2F4K0CNY52sTSStx1zKf5fLnR0w%2Bn9V9o7T4%2FLecu%2FftdjJRn1Zo81bPeMHc4C8%2Fy89dvT%2FJn82nl5nt6kgU7Ef2MF2%2FuPqfdQV5sml7tA7V2jc5n01Ev%2B%2BqHSsoNNiIW%2FqwUv0woI5PbPeLEA1aWV8ccU35qtDqDfDqbu4hDq6XLi3zQ%2FUfeFbMmEMVgPGqHUjuJpUuhgzh0kC61g5R2EUoLoosgLrd4w5sOb7tBKA7lkBs8ilqqUHEQ%2Bieb5MXAcS2iIrWv2Vx8X8zLly8vASEtsmlzkKWzF8Vypda04Uv9RCwbT3cgOY5Ta%2FaBCriZKSQL0TUBk14iytMYi%2BdXu%2FkrX4k04Lc1UftdMvH%2FHtsfOfcf%2B7LlXInqoe3E08lzHeAwktoZyxxMMjqk1IjpAOVwCbuC98ESIKg1ueLFQHC1Y3FZSkwizMMldITYiHhjR3t0g6uyP5Gwhn6ilhkGD7tNhrW98F%2Fqfur0qg2W%2FKqD5idijk%2Bv3BXvvx3gbIuaWMxycEzSPOiDRSO0yXQ6nc3BZmP4FPUDSn9bM2XG2oPTtpfVVJ3h3iKcZwD0ojuR8agXfszn74PBa4j1nm4yluwV0to4jKnMebH80LCVB9onHEJkxjMdo2EYdH233apVmSopNxKM6FF2kODh55Mjy2Bksv8oW%2BK8KH69xm4BOXd5U6nbCogmwAxhG4aUF4rSonB6lDIEWToHfVyt1Xa9boDBjMeyo%2Bx6pVz8mQWszHd9YIDczBRSIJn%2BhzGJMsP5M4XvkedXtG21cfO6OtKO6xFR42%2BAJv5j%2B5PPxfo8k3zZvczmuRLVQ41L0inq9zSHwR2DLtEsTBZEQ6eG6ADKDC5hlVvQCYjA7Xg6bRiEMA0AYXHJk4hY22YWLtGjOU0nTLxydNSnG%2BzI%2FkTCFD9R0wxD9g5PDg2Ftf2jOAr%2Fpe7XnZ5iyY8uCnlIzEmoNn%2BhU99sAnqGsy1qYrUS9yXN38QrNBFVi8%2FFfDKKvrj7%2Fti4ruvMeus4WNsp0iJNUKQ1NsC6KZoCSbGF4%2B4Gu06ySOHWsC1ryBkNGQdUKikW0xQ0iQQFAxBYzB8tMZhFPCPOL43sSBMv45gCbUYJG0lMazU049ZS13Isq40UxYoTy7EUx9bGlus6e8653%2Fveu7pWJtSInnm%2B%2FzxRJOedy%2Ffuvd855zvfUYxpO6Ws%2Frf0%2FG7dw2qczvLeyr3UhIrZU2%2B3SpX7vjZfL8g3yniTcWR3kYhIlY1E2DesG94q%2BKc8U62W7BnVd87u3j0%2F125VSwU5DLZgq8Ta8HfEchQrHWP4BOfGm9My8uHJEgdRHNwCcj06T%2B6m%2FOY7p6bjjabVvvcrc21dF9O2LG68Xpziy1JuGXH29TdmN45NFoplbAn6LOfn9VkqPrtTIIe3C4Qh%2BtAPbOm%2BUnAWCUzHSZxemy43ZCYAxD2%2BEeSvjG0lzuslghrhky7Ismm459y%2B9z6sL3nS6v5cH%2Fh5qZ%2FL2g%2F%2BAZBX0vNQ7Gru2HFP25k1P7uzLnuYQW14iWm2KVwaNyhepHOhT6OFI0w%2BPiM4QS0o2Ddb8h1uNIINvmweOMCly0Rc6z%2B41NsV5sgEj8p2ZLZx46235aHMz7o32IZYFg73vUnkMMA7VJYKEr59aFZPgb8rriTuHzMEMQ102tzRjI4CXRX32TM3oAqvGOdB3w1ytN517Qc%2BqLktc2JtlZeqxOAF5jNkIGQl32%2B152z5u%2FNdVz%2FiJL25W%2Fe8DMBqO53lhvIM%2BWC5olt6UOuB0dxeLcET6SJBnC4bibAFAE2XBdjZY5q0e9V37d67b2FuV00Og6lEfKjZpGE6Zu%2B7F7FSZiYEab4XR%2Fub0TLy4ckSB1Ec3AL6F50nNzI6WZDJYZe0s7g1%2B8DiwvxsS5fF1rw4xcDYKbaMODu%2FdULecdtIbRT0Qxf27l0QfFYWyLHR2wWCED38QGwrpapszvftnpNHbBYNr0NgN8U2XfHOaw2Z6fMbYxprwrGtbu4CanR80g1dJVhM9V1zX%2F%2BGzV%2Fdn7zv571J57ImLCT9AyCvVKpu2yZmYZTFxVxYXJzXPUzfMfUSYdcbatNda2ETl4bhRXkchFLiXswiavMpwQlqgQ8SIgimEZ77AS6Ribg%2BOO7SbVeYIxM8%2BseyHalt3HgL9flv7tv79a89cF%2B7RUCwIx7Ob5PvwV7kMJDslmAXEr79aFaP5K1Q5a7AH7gfnp7ChzKcFvozZQETs%2FMOqBbhFeM86L9Bjtb1ggFGtjgnFu%2By446j3Bb5mCGSVfWdr%2B3aLct%2F1nZKWf3XY5Y9ulv32jkGq22p1%2B%2FZaf69WMUBJ8XyD5%2BXn2l9UY5sJCK6OJrSZeOVhrDvLJQaFflcXZ92Wqsrsn33geW%2FW9TDQJZGA%2BuY1jE9JrvnVwB4ED6Rc0NsQ5w5rZZ15sODJY5RkJcdjBgmBjtObqpY1ckhdypZeH3E9y%2F%2B%2Ff4FXRaT4hQDY6faMuLsyemKea%2FYEsbsQ2f3HDiwb6EtkMPtAu%2BgiWGIXlJAZZvPuG01iS1E4IoEdrGFpM4mVrhcb8jMvFyksbAhTIxu6gJqdHjSjhkzhjRaoVRrL%2Bx%2FaJ8%2B6cJkBz8v%2FXNZu%2BJj%2BwNYXsm4R2KWGxNwMfe5PaygXiLseuNssrd2LWzi0pDUoSTUSgDQtjLmvva3LmpjOGFGvTQPJIB8UVDQNTv%2F1QVmePPG2fJiF13ZVav2i11kYikxTrejcmtnaeqvPu9ipK25uTZxNMApB1YVklyz7sfK5B3mJdgFgnDazeo%2B4A8pGgB%2FV1wJ3O%2B7KKQrofhy2paF7ug7I694zfOHXcET5WjlNwmihBOLvzxUY4bymQEdg44YkLN%2FGWQQWDW75yE732X154HHe3W37rVzAKslYm5GIfDEMYrjuipblEDrYq19b6scJYi7qEJIkY2Xv%2Bt9hrArjVJBXYqMPibJhd3xF%2BOfL7X%2FdnFeoTN4bzgpYB0LYwouJPLAV6PwyfhWO9qRHXtzWUY%2BPANEraiMRc93cD063uAtmFy5ZpOTVaEjNySvgj7iPd9akWWxvShOsZ7AV6bVMj5L4Oxio1KY1P1%2F0O0I9uZX2nuWDy0L5KjYLnDdewLA8R%2FeEYXoawbTdVvRJKNtIfcvPqQWCUzfjC0kjTaxwiVvyEyfX0sDaEqPBNuKUIOfdmmWfrlZKRiLIb%2FOFdCIAeXW3NIj8qTbtWLg572559L9YN5DWUhy%2FxL8kVF9RWyM0MX8hwP6jqmXCLveKJsE%2BdtbuxY2YWVNWOqwMAkArStDHeP9D8nH16P6gnGYIKsPG42tIsUS5XpbMnDI8Npx5%2FOQurCrKXGN3ttFPxlMLCWeTxa3zz44Wym6VdP041oEpxxkvDqWkqa7Z8k71GDXTdBmS69ZnRvxXv7LMH0gRQPgP%2BoC%2FhY6NKtITgJIBWC1n7RlsbB%2FKfKKmT%2Fsq0EQYBytSaSjUaJiQn0ZmRL5lxSnsPc8l9OIwHTFne9tWf0Oj1%2Feg7t1WelM7Rw7yBF2mcCzzQ1w5HBcK1jS6J%2BcE%2FfNIkHcRRVCmmx8%2B7XX3zSiCLsom30uZ%2FcaH3PcrYoCRy6NMXtwrOGnJJYaZ1Gj9tzXvmFb4rQd7ciOpdayznz4GdsA4WDsUW4xuB7hDULkmJxcJj%2BC5Fgup8wFhZ7%2FvLJ%2FTpxixdjve9dbUmsZn6XhbI2ky9bPD81vkLffPvTxgwf22C6Q%2FfD7r7n6%2FKm95zoXoq9MO5ie01N5MK9bCByS3QLTuYWk0SZWuChaxNFqj1DYVl9XtlWVUOPSIObLuMDsD5BDcGYolxmWl6goDszyPy8v3g8%2Fz0eBb%2F65dK9SZo64g%2F7OH8kNZLJmVXZ9hi7mgW8f2KNeIu1ae5sM%2Bk%2B7CsbMpbWJKwsZtaJBPQPQbmVo0lYZm5KKhcdsC2fEU2jLDcpiVBqsYa6%2FV8xV1OOuW24U7bJw0qae28V0zPsjJtaUvKtflkjVPU3GohnXiqzwBrUuwFq3Hf9%2BJLsLSPiC75l6s0L94N%2BKOvDGIkLhj0UU%2F49Q3srF88lPoaeXG8g56MBJyVsAgCYRhG%2FDK2b%2BsP%2FG1QoClKNVrKI0ZczeXAXi5F%2BS1MQnaQXsQmB15%2FuyrP6iHVzXvv2yHt5t9UO5NNTOcUQ1C7uoUfDfORRmD1qFDzbp%2F1VsPegSxF1UIaTJxive%2FYcfy49OlRvy5x%2FeMIJSp0KhiBROHATRBA5OCg4LjKhxFjWyBLskjdvb7WgHj%2BvNZdmVCT48qB5iGHji%2BxbA9eh4g6sEOXJygxZ006G7Yk7wu66KlaOHlsQpLtw5chNYJ6m0jM%2FScLY6FIPDm%2Fmh4orlNtqHLj9xRHeB6QkFHO%2B%2B4vypfThrIXolI2RNytG2mWxG8KX9tsL0WryFpNAmVrgUdZGTjTHporHCtiLU6BYxcwZcYGMbB0yxyIasj4GRUXNglr%2Fz6JL5eSEKTP9c1m4w76EsJNTPGnBETtL2%2BZy5mLt2Lz3qvERm0tbephmXOc5nMmthE1dWo6KbLRH0SD57%2Bx2atDXfz%2Fke2TxlAd0gN3wwN7LlTsc0lEzE%2FXrcGQ%2BpC6YY7bIlvyHfH3a9RdMxZIfVmiT%2Bulg041o50CeCYw55iRGSBMpIdu%2BsIeEL1bG0mxXqB0ssH30ETESI%2BJ89e%2B3HSPGP5a3KhBAQZh50cJWkAWoFIuw1Ie7P3NKjB9UrRv5wzdZqV3DOQIAyUUvG2TUPNwfZWvIv4yIN5HA0Fctjb%2BU7Et0zPP6xP5RJ9uBuXYgZSO0xtXPKTp1EnyDkR%2FFkWX1mQbthpGeLhfru%2BQcfkDO7iyqENNn49t%2F90LrNk0XDKFbUoz66sGlaEGK1tx%2FxIaoixwPoW082dU5c0njvbj3ayeNKuWUhJ4Z8eLXAZYMRGlh2XI%2BJTtHeX33n%2BwQ5YnIQKLF1YeH5QV0Vs%2FsPHTu8vKddnho11kn6LAufZaOkDoWJ6yDsouhgEJvAd4%2Bs7Js1wPEhuBS0Sac2Md3Qb4oH4qQcC0501DkkiwefkMAuthAE6VNmEytcaoIn7Pm5IJSLxi4sPRxBjXxQghCkuTXeheb6waNOzuA2LLDhQadYpMMO5gEBSTqFR78LP89HgamaS6bDXNaAYMy8R9n%2BAC6vNAZFEbd7yd84q38hgRQHD2mCiZm0NbdppmhvaWYNbELu0FaWLg094uFVaw7Anv92DXQZwlYDKAuIYbs7vg%2Bm4cLSt%2BXBGWIP6ucvzi4NJ%2FXaLoJsTcfo%2FlOqtSQsTuJvFItGXIv0ieCYY4waJIGJKNn9dU34ku8JgnB6zQr1g7UrF%2FoIqIiQ9lS%2F3DqJs2ev%2FRgp%2FpC3srw4IYTMhXDV1%2Fkss1zOst6K%2Fg85pDq1lmu1O17bhwwEyLajdg85RAmOE%2BVLy0F9xoxLxUbn%2B78eWlI8vvk2meTlvbrb6nn0JmZwM7VzdlTsLVPSCORHY6PgysLVN2hdFg2rdr01t%2Bf%2BTlUI6beRwZDhsUJVENAnzIWT0vZ72y3o42g0CNlPv2sDB3g35rhogt2Sxv9oRzt4XLQt9ZaRE0M%2BvFlgiZkoNPBPFjGb7hTtvfI91900IsixpAjbMEKt7PYcC88PCqqUkuYnnz6yvNAqKusEcedUWRY%2By0phbFiBcQmsJOG66T6KTeDw099d2dPWnxGX4io%2FGWGUDsUiguwMplskylSHMvLbtbkDR44%2BGm0hMClFNtF5M7qVCozau61JrUGLxqr%2FdvBRBzWCEoRQ0ELiXWiuH3bV8WegC8zsFR%2Bx7DYdxyjUv0nt%2FqVD3xU%2FL0SBaZrLxmyHuayB3AbzHvYHyFpeyUVQNf6lQFL%2BX31OgxSHJcEUZ9LW2KaZsiU%2FM2tgE7eQG2Vl1WxpaHLfELSx%2F6emGejSCPoYJHJl4WBAs81F4DdrwhclG%2BJGGw%2Fp4plitKumxLB%2BsIuVQ7b%2FVHG0xcTfnGFrr09qqKhZYIyawS6139RUvrF3AdpsECxOt1mhfrBgTaQgTERI24dYJ3H27HU%2FRoo%2FJLcU0QNCBHCVioFU%2BWc0xND%2Fvxyy%2FKGtCwbRej9IftRXvFyzbSeJKFnUXAgqNFD9MCO%2Fw%2FP9e4eW7q%2FpJAUr9Opuq5dfNzGDTU47Z5fGOg1Woz0FIDU5qFj8qEExdmitXS%2FIQ%2F6GhIg6YMT028jwZ6lSEIkzBYlfardI3lKOI7OfftcGDqZxxhVwMmksRzt4XJ5tqbfsbeDEsAwB7SERGkDEbBbR3gtzC379927IyscoqDTmSUMPFUeLUAb6SG7rZGnX4sGTzxxemjPWyYd%2B9%2B1psyx8llU5JDdoFNaq7ZwUi0ARtwm0FlaOPyuAY1dJXYr3vfNXvWSE2lTVn4SeS5EOiaC9zWLSnpXjJ3QLYZA%2BLTYxisJSC42JuNbKrql3Lqs3kE3yO4ctk6C2MHIdNHgzQQt0eJO2mq6rTqCrgRngSauvIplbd2BPW7jepmCn3YkOKLDv5zKx%2Brl0LyeJvIfhbHAn4F2610QhuLLNZI21FpaPHvEyaWtp04zRrTJrYxO3ENklGrI7iCehDHu7SWVHrQSIPZLTl8K5Hi2ABF%2FdTn0R09LJRyUb%2F7ikPKQumGK0S5zxfrGLlUNWrGJHmyOeM5c9gVv79Il4tBhcZbBLMxeRmsrfQZsNgsWXp9OsUKqW%2BsGT4CGZiJC2D7FO4uzZaz8Gpk%2B1XKXiEAP%2BCbjaMIN9pUXzARENAfrX%2FKGuCwTR%2BmWQ%2FOhecU3iJRFlXB8ZVGhA90jj92PDWXe%2B%2F%2BDEo4s6ScEKiFp1uJssnDW9W%2Bd0kPbuMzED45buFqijLOcBtKeYqZW9UhXWopQh4Dpo%2Fny9qKfTN%2Fd0xojpt%2FHy3%2FqAhj9npj9nO17T5ItB3jLao5%2F99IWPqYQL91hBJ5LGhx4Djwskk9RbRo4bOTHDg1hb8ri80MATcgNEexOoJow6j0%2FX9Hi0PLSVjDpaRLGhq0CmLpHjo6dPHNo%2Fq5AGqyJtlvFZIomzWSF1tWLVdpBiqSgWywlykzD7qVNHDuwWl2LkJobZ42REU38dKkSTEYNc5ysmWZD%2BR7qFMEifGptYi8hSi%2FzAxjF7fq6ptz1Q9SWWjx59FC4XEqRBt8Dfg6CFxrus%2FN266gSyepyBPWnLcpjikR3tVqjpEj8K04%2F8oAMK7PO5VKa7mEsXcpLIe%2BQ9wR8WP6iDIk5hRv9Owkg67mXS1tAmo%2BEPrJlN3EIsd5gbMQ%2FIbjJRqH%2BpCYidc3xXNGQASPDU7aZN3M5cp6hk41HjIQXH3cXYle8Pu1g5ZCkiPd3zeT%2BXDWy9bRuOuHCQpNKwn0BwDGoqGu4C31PyXwCrKTWL6jK%2BfjD0BCw4au1DrJM4e%2Fbix8oI%2BE9NkOFP%2Fj%2FhKohNSaVFJ7Ri3L14D%2FneYVkX5Kj3xQjJj%2FkMEGWz6RU1WzFGzi%2FPyJjEnWPAZuXgqs8%2FfPy5ozbJzQjudbgbdvk1u1tnTqOkg6x3nylM1FpzFhcfllI%2ByPrqs0%2BWqsS1KAK6TcA1Z%2F68ZDFK7X3AiB2WdEpt5Fr6T9fdvGmyVCsU2D%2FYpcMMXntNG7yuDRhUwrUmSZrAiJLG4HGRZJJ6yxgt3ghODGR1Grq%2FxaEBTWIdQ7SXqCYYv3atRZ0FhOjxWEXJ6JAV3Nlq2pyVb7f3PXbqp8dWJO6sq%2BLaX1udZaQ9dG2ZGJbNXJRlxGYftGcpGFgxcUW3%2FEwWUiyFit1Mw%2ByPPPXiSXEp5GsJs%2F8mArNMRkS%2F3rDzCAxy23o2bHS%2FffqoF6RPj02sRWSpRYG8P4uPZYbGrIjgKXO5mCANUorX3QBBC33%2FQdCVgFjYDpwz0InhDyCRBa3RMxWGBtC%2FwfQfdkCB6Z3LGgw2jqtULSLmC%2F4MDUFNxIpzFGmPGCPp8Elk0pAiWiubLEadWTubuIXYynIeoODqzSoIUifEdnzXGhoyxCABDHEEEcvNmvOeUD%2BvnK1aELZJp10UqGXlkMAAa9DCXLYD12WvUW4w4LbxVxrsLZ7Rd79EvmdhAhnf1JpFQTtfP%2FhL2oHXiQhNIX5jxz%2FDptUy8ah1Gc44GRC2t24mlelHWMKMOmbb0RkNcencHx4mRx17en%2BMK0F%2BlH0Q5McG3mW4PMzdhMWROduxJcaV2SIxr6UnTj9zWLACgnud7oZdfg3u1nmw077qmMlqtkRN6W57s6x3vxPT0WePNgMQN4OOpnn7Aq0RlxLtv8rs3n0PESN22PpSaSPX0m1bpqrteq1hi8dR5OWREV43uDTGR33h46QSrrnHFeXXbhiGf3wcGBtrO%2F2WkSZeASdGH5nJDxUZGrAk1lMu2ktUE%2FqAv%2FkHH81L1Lk4YeHlKkpGVZskp59RVUg5btjxZ88eOTAnqyL%2F0T%2FogB0Dy6Z1c%2BveMqG3Gn0oszrLQmwmu8SWLIg2mbyeJ3oWbNSArd2tKvmE5184trLQkq%2F%2F7I9%2B54qETUPjFmTXXzcVIqs1y2%2BwhcDffvJ0IkiPkEwabGItIvCygQq0zVfXt2TUIisiePLH4nIxQRr0dhYNAQS09DfhFI9tCduBcwYNedIZ%2FAEG8kqgHclazSfTF21wvAIUmK65ZFczly6l5KEAqwsvtzEp%2BJMxHoJJuo2MIsE0IH8qpZepK8QU0RrZdFdZ3%2FPs2tr0G7%2F%2FkbxLqWXdWzC68ZPaCA9lxjkoW9txh0SuWACQMAZVYWCupu1eqJ9%2F9DtginlhmzTbRTXrSgEpIoBl1PqRMD3KJqnhoJFgtVssymaEcNdjVrs9jYxvCs0Km3hbSE8GOvDOffXr1oEXzE0k%2FiWYOuNL%2BmSApQghEPCHMj3rGTgUwzoFrIaXzgVHHcng%2FhiMgVTFMsH%2BVP0b1amZmFFYHsniSIcRXMyr2N772KkXBSswuNfhbrJfFCrNtbxb50Zj6yyAboTPzyGYZ014ZlDLk3G%2BCBsO4OlmXLyuWrG4lGmBfemB2fbuJTklOpSkpddGriV5S%2BpOfMu49MYWR72TvzQoQuoNK5ox40zZYiKOsUkVR0wySb1ljB2RJo4GuNJ4gKEBR4l58tTRZQ%2FVBE7gb%2F%2FRn8lLr8hZyQpiiSsZ1RKorOOibIqQ58snDy7uLAI7rs6y0dFLYZlGEORPLaBh9ZaRYQMq0QiINvoC66fKM3ER2y2DmzSf8Phz%2F3bqsIbZt2AT8G0atsPbUpp2IDuCgm4hm8y3efr%2FRUH6G37v138lJTaxYmMYH5Td6ooyde0bO7IBPGa1Fs8eCRKkFObTlCIZrPWd2laTETc21AqftLLr8A7qqW7aR6BGo275mQ4osO%2FnAj5QMJe1KbmDzKUFhyeMEgbBH%2FAQJiiba1EzRy%2F7kbhCTBGtjU0mD5dZS5u4smxp4C24XW5o5Q8I%2FLq2vy5O69q3MEqMdo36DcNcpYajMGx0BdtHhCkWqGel0y7alEeQBSkiqypOtvociWKAA5lblf8WjmyGoppoBwScHVVvHFHBYmZ8U2oWUQE8V3M%2FkN2XBs3zX%2FuqtQ9BFcK2u6ooOKCkz6Ar%2FE3GDln5i2%2BzngEDZCXTpLT9EHVgZ8BRx7roj0HKLjbuSqT6l0OqI8GTbmpRBkZ1RgP2ssiNZT0%2BPOSCey%2BfeTIK7knCu%2BPdZtbubp1lzN7nOu1jWxt3uDrDTiNay%2BM2ugk2HODTzQ84Io7r5W8ciS9VSq2Fh3VJs8NPMNJu49VuLaGoxxRioqqNsq6N5NIwj5kipBzR2sqZ%2BLFRxBkvfIrFjsiOpdayMHY0aDlRa4ArfEiEBiykZIDvlI9qwoTZ9bdscfjSLqP5EWVytZrlvzGqfamq2NGQ5%2BnXTj%2BxROy4OstyuUtiWaGsmdHCnRdlGRk2%2FNUaSonlPNHSWCXXzChqGy%2FuFPteefH4w%2FN1bxO44poPwqYM8LalNItFXTzG9B4fMurgyvdfdkH6cWQPV2%2FTzEwPbGLFRskKVo29ZRoxYEdOVxK1Fj8JE6QU5gPLUzbbe6Sr%2Fu4HHpzXJthgNVCOxJtB1fk4VbyDkabTx2Wh2NGPuuXTHVBgv88FLkc4l0uvpU%2BJe0k%2FsAec6MOouA7Kt4pUhFJHZWDEIYpnvNqSNbDJ%2Bhtn1swmPgzja0YPozD2SX3qVSPKrDfKt2v7q6gKuzp0VgAS0A1Za8OtKrcYF58fPn4oVM9KsV1X2S5kbEqnGuAzUAw%2Fr1%2Fnt0kNxyhFNdEOCNpFrN44eOLISpzxTalZRAWAT%2FrRZoHrf1R3vex3sAsZpIYsBpiB0icp%2FlQLhxIRv816Bh0MNxiWrqIOTFkqZ5SjznXRH4MRQLfBVgwEoD6SL3OD0psskHSgChQcF9yrybl1DsE9SXj%2F9lt6e7fOMmY3IYCuFYo4ujJxp5GsE%2FCCL8KGA2w3nclbJYqxcOy3Snpyy5IOO%2FxwpNZGntK2lnAS2I4HDx1xdSwNeaAID1GElKNMJdwBO9q9eCFIJlgiqbUsjB2RJq74Wh2MaHNA%2FcoLIaoJE2Y15dbwcletVCw1KwheCnaUOynE%2FvnZ48COH%2Fity3tiWbkhljVWaVn4oUgagGhTlOkWKw3QY4rjQ3kHlc%2B98jQ2AXBs4JCYMRngbVM0rTVQlYvv1OaXj5999dRj%2B9rMHq7epoJ41z2wySo2vILVMRFrUKdWeWCfnUatheUhziJBSveNnG5LKYqflkiHL%2B7ftzhvsnqUI%2FEAc03%2BAGIn%2Fg53ye9adIFWDCPRferZEAWmaS5wOVY5l4vkUW4G9jd6puUctZ3luFODbaL4AchxJlFZjhSROSVrYRPyU2toE5eGPYVBu9xhoRcrM7bIV8nivy7rEO3qrVgN3OsqkijZgALR96ieFdPr02cX6WomUqWs6WFH0ygkGCgZsI78NqnhmE72o0Ky22SuUL2hGd8feRnfVJpFVIACK8WZBu2tQTNNYBcyOh4JLU%2FFnVCioVo4cD%2B%2BXWsCcqFkuSpgDcLPVYR6NB70s2cOB3VgPR%2BMAG7KbXUsgGwupklTvgqULRZIGp2iAgqO%2BMYDWxwcR3Bvyy3Xe5n98G4Dm9f4bp1lzEbgyE9svR16Xoara2VNv1pWj7q%2BHPoyQLsLK5rSEPW6uKbHNEPcQagvhTaSmusQtp0ExNczVlyLxmKsjYHH3Gz51ikcn4ESbk48Gz9e%2BGOsbRwdXVtWLfXQMkaLQQhBTlQ1DF1owCAk6lfOhhS2kHJiOJqX4uS4HNAAjYI8hwCxgR033XzdNVekybJQQGh8GEQb2TRq5alxeSZi2ABBtLcJ0D46JAbGI4ekMi1HNxIU9iE2uzM%2Ff%2F6oyx5%2B5Pd%2F41dWbVNpcmxsqvyG28SKjRKo6UCOxsbYmt%2BAWgvkIc4hQQqfi3jZlXogH850%2BO79yw%2BbrB7lSDzALDMYtolY%2FlX730XAFdXjG5Do%2FmmIAlM0FzDYOsyl68HeZlV3WyfM4Ap6JmUGDRCmoQhl5JpEZflPLEUEHt0a2IT81BrbxKUxnNdYwYQluvV8GzC%2BTNRc2LIOTjGhDJAQq9tFXUW0ZAMoGwpEJ6ieFdPrU2vXFb%2BjdDVwD504VIKBAuqE1yZ1ploLxra7UIBbAEdAWeomc4UDL8j4ptIsogKTSMlC8GdCP3qDQQEMdiEDJ2CMWp4G%2FGEO1cLpFugkyiRbsGRZsxUwGCRPjaGdffG4VwfW0xFGAEHHUYYfaNLkOI2BssUCScuK6NO2g70Ww3EJ7i3P15DZ7xBvnFnbu3WWMZsqOv6enlcoNiPN0bJ6YhPSQRjQfzXtLqzoeAdsP%2FjQE6eOocNPB0p9Gm28Sqi5DBPrzRFZNy8%2FastBT049YizlhHWIuZfR2ghachZmrjiVRGbH3nYpLJvsnWU8PlAMWy1pclypHuJgcHPIu8jAyZdiCluIL96KBLQcsd7ldjmbFDT6ENuwYxUucYosC%2FOD%2FFAxRVnYmz4brf6ytwkIxwZQGSEGrebEdtEqmkMyU5j4S05LPmS9XMwmlz1ENmLVNo3f%2Fuc9sIktByB8DOSob30ZZDWNatu5gwTpLudzvdXDy9ZSSvPhSIdDU3v5n1f2o6EWEDMDoXic080i9uJPj1geEobIQ2II%2BHmiQIbLUzQXGNRhLt0O9jbDrHWnpuBPw6qXDJxAEWozCGLDWVTRnDrM6pBU2hQujerUJOrUBjSZQ3qr4cCCHmum5gCQQHU7dBUxHhJQdg4KRD%2BEepans5g%2Bu7gLOXblMMXZcyOUqmGT1AaC0UCm%2FiBVhRwB4y1tnWDqLsj4ptAsogIQHyD4Uy5C4yeLsgOg%2FogKPBmbC8kfJCJY%2BMsGAIRdlFq0lEFUp4SCt0FEdF7168B6P8hrq7kIoFXubDVEiVQH5asGSdhCvbbtysUAjp976hHN7A8J27VHd%2Bs8Z8iYodFYPqMcTxhDmqNudBUnGoPVTMLYBDQ2NZ1n6BwruqL%2B%2FDPs8NOhNDRVNrIvjh2KLOppQG9I5bCyriG3XxQPFh2twxLTQMmMHe3G8ZV5MV7I7Bg4SV1atmm4Z5bx%2BGjYe2sHZF7ZBTLKtptZBDjvCmvPvORVw4abK%2BkJ2FFwqVVDiP3SiRW6xKmzjAJCNe9DLbiIADkJG24TcBwb2QQ8oF3U%2B8hFsbXbcz6e3EJuiWx67bnHmY1Ii03sZQ3oJX6RYxGVioIvxDbw2aM8hLpvVXfusBknyYNysqHr5bARmVWLEA21KEZIfzEAzKPgEypMxxYF9veLQIFeuDxNc5FrrtNcuhfVibs%2BMzY8QHGd8VG0SB359FQ58kbUVd%2Fk1HNf8Hh0abOJSwtLQ%2F3pZknONCjUodYt0tS0rANQ4VA%2BBm9kiFiIFygbbUf04f1ISFvQWWSVaOrsInMCiUPrPwBxdkjVUCOfwWjEtYOBIlX9peoMFC813GWrsEPGNw1mERUgIGElj0n9YEQJADJZAAhOQMsFVCn5k%2FUKf7dtcwketjCm1KL90xSuDThoREN5P4joeHVgvR%2FMf1bt%2BHKBQCOVxKmOvHVa9wlbrhPXqAtaDXtwXDP7e9uOhv%2BL7jZ4kXcb6nC3zuOyq99NabXpqH1JCfVd7HYwaRudLmc4hhhqoBP3tW5GijUpDWH%2B%2FDMQ6utQGpoyG9kQH%2Blw8yeakVBuJpNHvZPlwuAxY23Al%2FPcbI2WIB2hy7MppmxAjM2ODvkaa7tbywZ7ZxkTXVwlEjS2rI2EBrCbYY%2FYpQH2RDXsZa%2BLPDUBDaiOrwhHPYgNlxjIM2WWMYlcbIBhgw%2F1qgr0FuuxCTiojDg5gTbRdM1tNnaxX3f%2Fty7IRnxQgHY6bGKwnMhraxYtspSsZmjF2ybF5%2BK5g5BYrC8zZAsE0iQWaGujoVYsRsgZKFIeJm5O5CJBkpHrpqjGDYluL1yeqrmI7R3n0r2oDkRSMiPkhWx2tGlXvWTH4Yh8F%2F4RKsuhnhvx6D4Iv%2FzS2VT5pWyqdG0TlZcc7e3eXY2Sy9%2FeCak6R7NxBR1Oxy2fdYlc6oBTUoeKOk7CmGUI0FlklWja7Aq3bYgOOHF2pdF4%2FWsYjNZjLRiQp2QjWyUwocd4FRlfMuyw0lJnFvv4WWcolxm0Jt7oy0DtH%2BYcQAVWe8HwZ5UgLFIeMet%2BUcecY5cA%2BDROe7vpKt3UTmzqiAehQLXXI6xD4y6orzJE96El4xG28AcqNiLKcGJv%2FvkZRQp2bl3wbogqrv5u5kZ1ulvnaqYP4bjQdNCARYpRbAYJPgOQRpqR5ew3HTBLN4xs0aiS7QbWgAakNCvkOa380A6loemzkUU9ZRTClZsVt%2BNBSh8c%2B6THTD3NZHH%2FKNSPdQ%2BlMnjF1jaOjsNiGkgmKbfsrV6iy50i8vRGR7GbkSWpJcXPvoiImZcFDuU0DarzK4WjwN0sq4VLDIidEsvCJLLHsMGHRlUFDRbX6iZwOo6T8ywimgZwjKk5iLz72QhQkdJgE4PlMwCpdyluRousjc4cRCyxTXrnDkNirDGVBYI%2BRUYvRHrwBHtb6FOn%2B7IDRbKoWmA7LChb2F8IfDFZMEGN25rOJXuJ54IDJ5zLJRpXU1RH%2Ba8JC2Tf0SJlq16y49Bt3TPmIMFeVxtuXiJSaZfUJj1tOtmkD6wLmwLlpSH5gHutfz3D6xPsZ9mUr4xjn2ciFwMqDaYGD5Q9gXbBsc6iXyWaMrtC5kQWMVRlZc0gl83%2BNcDWOYS2g4EWN8bIR7K7isYWwGZk2FG1IEVmhV0VXZkkmnhb%2F6OmV5YNeaZqicRzyAKSLGw%2FJhCCdb%2Fr1q%2FPUpmeFczTVqcEg5FaZzr3NLGqEBZ7PsI6NJIf%2FXbGyN1w4KuybZJI%2BmNvBg3fg%2BPB3UB8vai7lTverbP6k8rGQgHToN7d7PSoXqu9uVYfrgiaTQe4oLVw3LrOudMz6c9rTxipeEJpaJDNS6uNxHkIh6lrWypgx6OUvh659JhjEdxJLg2W1otOkTo0jLE1inGDJEGae0AyuSrVlpETA2xdi1gwtw8xaFzVADtKil%2BwiBm6AIY%2BM8gPVNVESW4EuGNBzZ8b8gTETpNlIcOGHCJ%2BaJlKm5TVDOLkOIvqSBQ6o2K8ja0nzkZ8n1SkVNjE%2BgM4u3dZUAAVQTE7sv7X40MAzDx31BomyhqsMa02d%2BwUzbvt1aIhOlCSFTGTlUDAvBPKh%2BjozFY2kGNgKTQWjF%2FjtrZzGd58aediwLbDXLpT2XaiOkw58B%2FVinUYV%2BYS2u7J7NxBm0GZPpjEL0sqjRybS2xTtpNNlhTt0iZGBGV%2Fkbs0rThTvLaoQ03OSV03IdaYN2Edp3LRMs2hlgZrqQbv7D2%2F%2FOTM0aBKNFV2hcyJPAFxpWJ4lVWrg3m2y2Jo2xvA42RaqOFOsizDPTxQLUiZWQy3WFfFDUbmm3JNvAcdFQscoFYT4WX0koqI5zkq%2FrAglcA%2Fu379OhKB2Mys4WqWy9OO8yoG%2BmlvYNU%2BIv0z%2F%2BnD8dHhZDvjBoVQ%2FdoMp2jkqn2Q8juHcwtwvDd366z%2BZK44el8Vyi3tG2G4sUqgbE2qjTtTLFufARuo%2FtaUn%2FnzRNbVEgp5NFD6LEpDw2xeem0kzsO5KGkY2QBzI5DSp6Zx0mOeYDrNVEhtNKF%2BZjUL1IizTwVl9Nyz31lijC3FlpEKWZf3M4P4OoEjPld5RSwpVrzILoChzwwaDTZXXOrlJO42H6UzxKZlSGn3hWUhwwYqG3Lhh9IziRtqvcZd1cFBnkU7sb8gK5EE2jtCKlIabCKZlU2VMw43Z4FYDV2QHclouWcNE2U17AsKYFwMrN4sJ9KDPz7hsRIAmNt1R%2FCgMGfDI8mAL4YFgxo3Yps1nYtArEs9F7RjDubS9aAYCfZlH%2FsbsLa%2BpsZTLpesCNllnLJir3Js0OfylVg%2F662X0iaUl3WySfbbbd3axIjgHch0s9HZhMBtY81EzYXzGuhCIhfxmoJTtzM5V1qcpQeHeq2gSjR1dhFlgydI%2FCRvNVtSMZfNVmNmhTeIdSF8k8%2Fk1KErfsFj2AWqBWkzi8lt95bq2zoiuF99ESciBMXR6YTboQYz80DFH0%2FpM5tZ73UAoDI9PqhQATElBP%2BGVWl37wfznz4RZ%2FqzUXEDuh0zd4MB9w29DBL46FUPjvfgbp01dGxzMxKe1e4URWBU60cGjDSuV5M5tybVxltr1c0mG%2Fa4TUYH%2FnwDZBrLkkIVkqWhYTYvnTaGgu7GCFX9B7jQbNNs8DohhsWlEQ%2F7eTbuKFPKRWqFbEM8ezaOsaXaMsYXNYQLZr0nFGOFtXFJ8bGfnDwYdgFk5RlVJmM2oVxaWEtMi554yYPYHSwzW%2FrKMjJsYI3HsMFnA5zBoyD3zwfatbYXYwiBtkdFSo9NiHaLFVEfBcPNxlVBkXrIjoy3ySvgyFhIbJBt8SwWp4w5izEjPeizEgCYd2KdMaNIkgxfHwZnUOPGGPAazYXhvdqlnAvM6jyX1Q%2F2NWYm10sAWNLC8rZVy1lK4FmwtFthjmPDPpfnkGFCOPFS2YTysg42mcu%2FrUubGBGcgIexYdj1sJwc039qvaz4cS7HjUCXGECZlTF72JaJMFNxzNGDQ71W0B5i9XbJ7Xtt11uBsr1NRN00cOWZy0arMQtpBYLWMlDUiipl6Vasz5F7UqBaAHb9Ks0yvnwvzOKWjXQEIx1jYkjUky3qNTbqEY6cwWzt5Sl9KoTwOwDA2FjzZys58CHtxxOB6P1gRfs9LjxH%2FGRPY6ZKDR4KoYKxlXMXaZaADZOnHuiqgOM9uFtn%2FUynRAvevELjUg3FZlGbcsjpI5AEAS84IUYqtZxyFqR8o5SV2N8GpaEdsnkps5F7IfnNE06Pz%2B14aNNMeD3N3gNYGhxqnJL50LiDQVSs0UATK72Wkefdbun%2BFUjEI6rY5FFw6OTpo4GaKGlNHkRH30lyTYBDQTmRalNC7FRZxqwEGTYelQhfMQLqunzDowALPATaOzoAbfx6amxCtBsCKwyWQ65VcJvPjiRgZg0BHBkL3LItnrFw74RInfy3UV18VgIA8yxIMlVmFEn4YZ13xP7W426XV%2Fu5RnNBeO9SzwVM9nAuXQ72NWYm1w%2B2a5wLFVuas3SlFOD9sM%2BlM8urf35jbcJ679ImRgQ%2FDw8D6WoJfOk%2F0eMVENuUraNEbsQmsbC7Kr0CZd9FDy5WnmJ7CMa6Vm0XTuKe2UVAC0EFBk8nPmWeBiQqQWUpx2TWQNCaiQnok46O3C6Od4CysVtjE1u9WcaX741Z3LIBwhHpMM9VP9lKTE2jh1I9bEiA4KCv9KmVvX4%2BALg%2FFnfN3nILOfDwhLxCLu%2Fw6%2F3g6d0GCRV7Ybnp%2BGpweZxPRFEkNkPTklKmSnnqxWTXS3q34U2rvFs4KAldcrgafZ%2BnyrHKnBfuQCBpzGxCOboSya23H5vmojdN1V4vloYimxdEiVJrI%2BVKyG%2FWRzcDSo1r0xzBa2ZwJti0gcNc50nElrYws16Ls8aveppYqbWMPO%2B2blTcFsiLQBPdGo6C7bsPPHk6UBMlrYmQMyGnSa5JknF7%2BjUvxJA2y%2BiYNDxqDS%2B0d2Azs3%2FcVPFUugDaabAJ0W5UWm5DsNwcfIq0hOxI1hBQoMnpWFUdiUHXQl6TjE28BMpeOvdMYo%2BAj92aa0GtkBlFnyRjPiCe%2BL8LtvFqP9d2LrVLPBe8veFcLhXBBr3EMgi2m%2FgdhWFK8GWyt7h8ypB5mMyEgGCfrH%2FugU2yKrqyiWvrnkoJHobmvEtIa2tjAdPTN3orq2stnIPgrUox6tNmCy2gawnfqPIUQuw%2FO3kwEIhctV3l3tpFtiaklLHxVArAzAavSZmeoIzFeYLWCHkzFFbWxg2TpVBYy09frt4s8OV7YBZQAfIQ%2BuuIdFRL1nXNoCYHtSXhp3iqgAr8M1nGDuX7Hu4H7lp%2Fy81%2F%2BuH%2FZpKDfhbc1ka4qfeR0mf53nos8WEqTY4sweYGeCqk37uHqGKSNXuzEU6WUy8pc3Fp7za5yruFg5LQsfCWCcqV7eihM0IOJjY6JNWQHbKGfpOQ7jWQDjINUxKijC5atIgS%2BRzplNrIvRB4hcm0asFRagbzkNVReM0MDuQ0qUJKJVxL4dhMqBHXUA8dcVOcHWDXpNUytoff1Y5jw7lYRwcVtfKgjbJgopo%2FhZoo0jEBrQk6mri4pPRIztfa%2BLlHLkybZew9XHsdag0ujDEj%2B%2Bd5FF0A7TTYBG3MLYwGfMEFy2eAYinScj478tsPNP7aPk%2FxNhgtYBFmhcuse6xDKFbrgbrlxB5xZfSw52cNm9veA14NFwz%2FElGuJ6j9TNdc7NJhLl0SbNxGjmA7Wou4fb9ZVl9m4Nabb4SLSelA450BU4QaIt3bJCb8sjbJpdyVTQxEfKmRPPHGlGOkwNnp6ecprONYGwjCyjAcpz%2FAFlqGrumGQqrtpUAgMnV2eXXqAyzOKmqxH6RqKK4DXE1JTUGnbtya0a%2BQmBiNmEmCeWvFZFYzLK%2B5KLNqPTKLRtmCYZJWUcGkokgDAhhe6%2BFGzcP9QvGn9hAKUlH56ynTG%2BzKf0xymNyreKFH3LfgfxbkRzVdFeShUZtIdcC3JGOrHFVVAV8akfzFn5Otqlvkpb1bqbqqu4XjMtnbQlz9F%2FaEEFQ3q6o8DyyQJGFjuiKT45TRoTQE2s%2BhGAHK6BYlCjnSqbWReyHwCpNpnxJ8rUkZyuokezbEjfMwoISblYkZrYYaca5ABmwur5w%2FrZYRGm8rVXxWOLG1smygRRaJakJNlFlgkuUYS%2FDZNCYnjO8xNOrJCqTKMtqGziNk2NBJwYVykpL98wrA4Np0AbT72Sb6umPRS%2FoFBMtJmIFIy0ySHelFy8GUQTuHKhst2t4qCEULtSNVvdeS0W54jHOuLSn5hNyVuGAEYUdVHq%2F6tZ9rN5cNo5d6Lrx0mEt3BBsQ%2FqEuBqYT9v0plZXfJLAiAz1YyMmSC2G15cGS6p70A8J%2FR5uQ8evCJjvx7FHMbk%2BceKDWJPT0jd6K6lqVa%2FFJ2Sq8yRZaaBrhvEjGul4KBCJTZxfZajWWo2mVu9wxLpQkZTpHPc1wRD9kUtiOs2TcJF9T0y%2BvSZdZNIqtVEBo%2FZQ2%2BjUU740WUKaH%2BzNZ45sQ%2BHuVv4hTE3fJvnCTv32Eoa%2FTfUn7AfnRgieqkmiNovxURyusz7DUDJgl23cLQNBQ%2FMuxTkUP7tZBQNNJQjOOoa8WiZ1lGqXxTsSCNkA0plhmwwEr8aE0BNrPUYYIsT9nV9AUNbU2Uq6EqpDDDq98QiPrTuKsYbI6pMhhaaBxnhtUws1sIc8XUCqpCHnWY9ek1TJwC7ZNgRni6ejk8SWqFbOowz4jaqIuC%2Fzed%2BAGPrGeWNOzreqFRhNp0bemyTI6FGHiIKbW4EIqET8UUINQvQug3bc2MQsBhDzOYDkJM5DJ99iRHk9ec%2FR%2BIzb9%2BVqt3ig6f8DkunFgJaPdUSj0G9KWFDGYHYDdPsWrqh8ArO7Xfq7dXPTxdDWXYjOcCx29YC7dt9L6XSPYeL1b%2FLa6ejZaEwaJGruZ5NFIDrWVyGgEybSubcKZ0dkm0He7sAknnkzMx9j5LNg%2FAp8zrq8WhHVw2nlaMWWB4rGcNfitiXKcXWpTELdJnV1E2S3LMkK8e5MFsFgomQxrAZeGA4gczCT7KQiRVhOpLg9lp8ks7tnkA0RJaen1K6QIhZl%2BGynySxzuX59Z76Tnkxr%2FXuXv%2BUqfXxBzsmHiMCEY0G%2Fgn3%2Bi9gOa0tcUfwMtt7xUB7of%2BPUZBfsP6aQyrGh8bumQRLxkeB0%2BenC3DgKaksNkHEOLdz5JtQ4oyqIchyrYWjvbbHE9N8zNpzSER6YJhOECw1JrI3kLwCtyzg5ZI%2B8xjaw7WZ1pJ6vja2Wp50YVUm6JWxNSGjPJSLGj1nuc0dRaxu1Hnlego5NjlMCUCCJRzWeePeIKwG6kqGZIrE%2BUFSX%2FExAF6TAYmTLLKKrZtDgimSRMIwxHFw0DPazxFH4oY2cgdHcBtPvXJmYhoI0pl%2FWAzxp99WXywY70dBGujLtxggtrwQQTqYvpTFGqOhntBr1u56JK5uPz8fs86%2FgB8Jblxh4M7Mu5gJEdzoWObTiXLseV0koLpB%2F2bola%2FQ4SaeZMVl7eM86kxrZkDIR62idd2wTSzy9vk1y6sIknXrPkYWwV1XTCOtmM66tFYR0nqVlmzaiFd0oRQSmqO%2BGz5KoM4japs4soW3uu4FO1iZjr6g9NTT%2BsBXwbimoiyA2uktFWMpGdjGF4KDtFZoWBKYRmKgWt0M4rBqALovdjZamL96O3FyLRahaYPsAQhKsQqCy1NIi6jgenVzLE0Fe%2FFfzyuX191vmmU0WII074IqeTfn2k8fLlP4zUNubQ%2BIkX5LG4CYJZ2cO7heNyCGjGcQx7E3y1DqbkEirY8EUwpq1eHFoIkT8ffYJ%2BCVVINEUNqvjTaiMhNoN7edeETLc4V5xvHHu%2FG3ZSWIdCpBXWTTKQamFVSsWhjQcEPVJqGbef8pTD1qGODn04impq72UrANvK7msBsR5tc%2B3S8P4ToVGEOHH0psuyUFSTnJrgYnGz8EMpZURZzS7Af5%2FZhE8CNgXfGvB5nZgWyeSXPHakp4vwaxpsZ36G3dk%2BvUVUcWLjWKSWjHYjzj73kEPM%2BmJA7pFZbjz7871lEuX7dS65kWAufJ07zGX1w%2FoSSystkn6MXK%2BZXOo4E2mWWzvjmbhJupZapEB72idd2wTSzy9rk10u3iaeeOxcyTq1adfHZr0Lr1c8YR1TbKEWuAR5kALfSmLN6%2BTjgnqt1NnFEMJ9NSbFNCBKjER4XaqiZ62dcuEoR1jbVSkPrr81I93bMF3GMDyUnS6zSDFv6fpFQYqLpY6LZeaZjCTJRshOkMnjSc8bE4hMn7Hz4ernCnULWHiBf4qFMfTVb1KffG4LRn4cViXbcsOgZJlaR8jdWFFzlrWRg3llTgvNTSooiMbl1DsZb5C9vFuY07wWApoWUALAzgwT6bF7YkyscaHzInwRGyajQ2mIBgVh4pUNVUiEmYIq%2FpTaSIhdZ0RNo0Ku9B2yvEOOY49MmS4cJNNgGoybiBUTWaILpjDl%2FIwzipxESi3j9lOciLA1j4Cax94C5IYg%2BeknD%2Bzeju5rDNPHiKoWByS9mlMKEvnpsHRZFopqyiXQEbILGLOvBR%2FK7i4A2mZCF%2BC%2F32y6ygFeCOCjUlbhc4I0X8UhTHZkIuitDhvs9bqzUZ5OExwEzF60G8142%2Fv%2BSRAzuK1Vr7At%2Fjh6ywoDSZTv67mUX28u8F6DuXRdWXuTYBFNbqxHISiSHChULkZIs1a%2FO%2B6d5FRPbh32lA997ZPubVKsvwqb5NKFTTjxEsyi6c%2ByBkOEdRBeLxViYR0Ta7FNfcDGoAk7NUisiWtqvUqcgF%2BTPrsYbdmt8EnB5v82KjTZEUhmg8mCyBa%2Bz4GYN0JgMBpaigANjGGElbWdzbLQW%2B%2FNosKC7UXQljERQJD2I3VEw%2FzkJJHJY%2B3aClHAn0wfYogYrn7GHZMDLJaDgAGECMhX7LsmX5Q9%2BGZEfkRzJJAloMEzgKJmFkiOEmdK9H7XbqJxq6qqYYK9u1s4rpacZiSgmY0Adkb%2FpxaJuiSrPMtx7nNSfNBYDtK6zhkrx%2BQQwpUdQR05%2FoMq%2FvTayMW009hzUOLW2hnga%2FGKbaWax%2BxcYnDosM640GgDxTkd0mYjnxMv%2BQ1O02oZW59sDh5CM1G3TVFN9F4%2BeSjuvsYwPbgUjHICoOhXfmt9oCOmw9JlGUPkLZA0gwtzC9hSgw9ld5e5NqHJui7Afx%2FZRGF8iGJuEYSsdGscNmi2Giv6kh2ZpLt7bdkaRbuwRQbb8%2BCZedEqoUIIL8Syhgf3z7JKRD%2BhyKQInWZ4yz5Rfs3mMtTVXMh9C%2BYCzyKcS%2FeVtbaBM16Yj1V2nERphDSt0Yi%2BaMGbg1qGAAp1bVN%2BlTZVL9YmewpUo4sq3DboXYww41j1M0adV90cQGyLCucYuR3JmX3JKIbXdzAq2A74NWmzi7IB8xqEERFcVfRrIoQOiUrF1mSyjFFO0xtmIXAs0hWmpVitoMVNDTGMwIfraBYAS8%2FNIiq4F%2Bp%2FqKEU%2FNiAXA%2FMAMz0shMJog8D%2FmD6sCMVC4OdGhY1GFUwwykXU1QBfEVP7aLXg8%2FNdkeQH9n52JElhnJGcUIqhAWS0wmGSev%2BxQOGxnVATw3B5F7eLaTw3WZxcLkrAbbVDid6EiHuJJeG4mv5MXPzB4wCpkONHI7qcZOImjRgQoCXT4bs8BTbSE%2Ban6YNHzfLLSN8PepWaq2R1NVhe%2B9ojKw3G%2FTQgE60h7SRIjPKNDM6KbSMgE87FI7wIfgB9jvx35ZaZ2Xt6WPWfQ2VtUDqrKKMtZQZ7AzkND1JwpRYFjZlzwcCQtGF7iu21BX%2FQ6E6PR8D7VteD2h3kF%2FuR5vgcAEaywfeBRogcDNaDVTZy892Si8R8RseFRZ%2BG77iXAjiPJ4qYjfW9c1Nb9hV2VLqxXAzPg%2Bf4BPl12wuculmLuS%2BhXOB5x%2FMpZuBytqZSFVnGhs5vm4k%2FyFToWCJnzOCU5MsgO7eJrFldTaBr7Vqm9hXQG8WRbuq7IartHrXw1I5JK7RfQEQeyQ7gM4tMijriu4kyVQcykmwdwf1Wqmzi3KJi8KbZsNlU0QkccJArYJSMu7jMRKHCHOOweJ6FJRdbN75NcjzqqMdsLc6m2Uf0XuziAruq6MSSB6l5msg9eMzfqepKgPJHxJ9wt5e5bjzl7T1uvkmtsMQA5HlQdIsUdkhfMVA7aJ%2F5H52Ln7b8Pho3Pl4BFDcKE4Uk2nd7Xq1YbTacwtLjz55Emj8FXRSAY28p3cLu5eI7xi0Ut%2B%2BC6sRSrC41NiJwLn5UwW4IdwEfMhEWg7LGzuww1NmIxfTl0EfMnc8m5E1THxtORzo6iCDk%2BD8YQgDMsES95A2imMM%2FLB9A3z7lFlGwGeYZgNYV2AwQ0wzItZSVDOqrEX3NVTWAqkDmDDejPAmeclD1BTwmEkps4whcvLqeYnfez%2BbgHc4%2FtColvOrHYB2B%2FnlPrSJ4RODxutRahmXApWxAGKNpmM%2FlZ3SS0S8XX7f47Vl3WWQX3mS2r4hVyozxLq%2BHdrXxj6irh9h4IxbMM1pTsXvxb%2BGcyl3ORf9pXAuzB0Ec%2BkqyI5qX81RIl6YUP6psd2w%2FOPP%2BZbIVJJMG4rqJ6VPL4VNW3OrsAlanxdp01XWV4B9hDXa9SkcXcIKVkF9648LPX39t0HsjKa2HRajSsOd6E7iEWtAKXN793P%2F7p92KbSLcol797Qt5JfdOKao1JOotGR2JhuR2seSvJpJ%2FAM%2Fms%2BjTtmJ2cCvKWqFl0bYvfc9XWYRFewGdiqbUtVAfnMk%2FZ0U%2B2yi97Av%2BZPJhKW9lg8wfsq6mz%2F20Rv%2B60eyzA9hsTip4jzWd5ZkpUDtok%2FkfvLmnRxUPJ7ofIz6SEgdNXfeXSuJe9SqSz85uczN21jYd%2BCRwyfOvOzQ%2BGteD%2FVe3y3sXkIy%2FQxx9VfaRa9AERfKvo1mnZtf39mW0aoW2ZMl1O7iyobWcYB00mwjFxNCwo2K8h1tLQNfG8ceujoUwSXnzw0NEuHQ8PuBM6Lq1eYhsZc6y1jgwmq4HdRahZgm0jJRZS2%2BrRvcjy2fxcraWM6QpjDK%2BXphZ8%2BjS41lIb0%2BFBDyXn8Uf%2BEkoGAt5SPbXwuANuAKgXYov9z3NlEfB8L4dmEpEPODw2BqCUlex4txIiLW1%2FGsDy%2F1ADBbTagIERsU10XAbCRRdlhm64fpUjiXxvQF5tJdH91IypTxQir%2F%2BBVfiD3ARTT1gSF61WaVx0Ts1qbq6mzCC3xxNvERVJN9hBNNbhx5Vf45EDHsJyOIXRAOQHt2XsfsdmCuJhg1uLDSM8s2b95plz67WGXVWjigMFsdET3LiJrjZDblbBARxCi5C1H5SN4plBrmFdGiQWgpHn7mFbfW2KwkZWYRFczPVfUccz0qIPUzBooPR9x7eBSkgF8o8W%2Bdv4by6274Q0uWNaJFgqQ5pIoBv0BWCkUgej%2BoZDG7%2F7FDS3OtuPMx6yPrO2TmhsPluehJtXVMLvPfWtHxyGNHnzp1VqZmaPwFAQdtsoJ7fbewe0kTnfYqpt%2BlOLHeasWqZd5lGMqatujb8%2FOL%2B%2Fbt27tw%2F3ZkAhGSAsrx5P%2BwpEOOQ6pt5GKquVoCUzqYsLWs%2BNoC6063NcdMmXnM5pPAe5tXh92T5fQQg1xYm%2BeljdNnGaO9oA7%2FH1NC8Ds1ZNlFl1KsYWUtPoZommFnxKKDsLOXRU6XZRQhJb2ebG6%2Fl1gs%2BZzovIBWdYCE9z0YAG2SJwi0A0zYtzaF%2BjhyMV68fTUM7jzzg0ySyzj3TKzpG%2F9%2BbH0jvGB%2F8AxhSFTTQMs2wWECfVDjYo0nLBifoJvOuQx1mMuqBm9MKVPIXiveRu8EOQCAs9fBrXY7EwqZs3qhVYgoYlpd2iRrfhU2Efyv1ibe9CaGF%2FTqYWwT1C9rINnC6%2BirBYhd2zW3sHdpWTDB8r7ZClBW4JYjfxO5f%2Bc89JU2u7iRWNp%2BeU9bzFFJzIFczJdhMptC9nbGhaPl%2BDgTqlKqv2fc9uwwtRTPuiSbrjWQ1FNmFqlID7a0XAMPbVIdi2w%2BaO%2BJ3sMm%2BWPxfk%2FiP8kWzjnSgJKKN677H7aBoB8Jc%2BUloK848B%2FK0vfDoIa1Vj79y6GlhdkWOx9bcqRRq7drMnPD4Xd8wr27H7eX9vj3ZTx16vmXLSKjZ%2FuZE4eUFnCnYYMe3y0k1KBLeR5xjYzLYZaQ1qVQJEELezQXt9%2B%2F%2BK2Vg48%2F%2Fvhjj5g0BJv1Kb%2FBb%2FzToSFkam1kK625r7eRDFWmIwS6QKkZjTj21NNsCbg2n%2BTAio19bQ9iV3l2nFfw6KeN02gZGw87EezaV3aikBHnqj0b0moYNggrayPCeRJNh%2FomDDubd8L6sZRZxgRyM4mpeSEJO9FNK%2Bi5HDXkqrd2Emivd4iOUA68lBBo97lNTCFg7cdR8vWAz4gGGNP0W5Ikt53y1JHlqJvf293v10xfhxR9TIJfMTPo8eS5S1n5rSXeIYQLPwaGodkGmr2C6wVvuV%2FnQi8%2FmAscmXAuFzkYV05ImaK1hlNni%2BT1Ndi%2B7k8Qe%2FCAthXrc0vy3pXubcq%2FQTax3ptZBudpoOYtbig8SGEdiSgTYi8eeOSxJxQUfFd6D0KGq%2BotxjI96wwSaj7vInV2cc0ooJTQaa2mNbEaqyZajZPZ27YJfcJSEIv7wrF3YX5OoHbZ2oE67kUmb3OgliJD1RAhTZlZpCItOjS0UYujBQxA%2FQ8SPxzZjIlLqsVknqvBpPhT4p9ugRwAfxoXhcdBsxn4Al7gPxCB6Pngq47Kp2OHV%2FYvzLV31ms66l9s6swL9dLkHZs%2BFem3NeM%2Bfi%2BdkwEsLjvry6eOPmpM%2Fs233SCsgJ7fjYMxnhpqlmZiFf3PRwVdvqoj0DIu9y89evT7Tz93%2BvSp7wn2oXYXefgUOenQEDLFNhIxtvcuqCttUQ9jN9YdvqaUvus2XHboemGvgGv1SY6ekP3we7LH%2FXIQ208bp9Ay%2BiQgNdRa9fMy6lUcsA2wa8G1DyprQTjHs%2FfU85sJYj3Dm94jTZllrCEGaAt49XQvSI8JVLLRkKtWKCmajusQA8p0B6DdnzZ5TJdtYMqgOVZUIisUYzBNz0XsyD3qFwtZ6534fWwI8fZA7XGS5kNtauYnLQe%2F2Lb3B0Af8ftivHz43D1vuV%2FngqxOOBfMr8NcVjMQV64lyAGJeGGtRnl9pdd9FNvPKoB2OmziqtDQFGIO0KamtL7R6uUQRHh9Yza7kRD74JNPnTpz9ty5l7X3YNVTa6JfjoXKMmS%2F4jJtdjFbZohSdmG5%2FUzZWOpJtNqSAGrLqmylf%2FXyip5xwZAI4coBgdqzO5WyRO6FzCHQUqzaWkOwJk1mkYq0L1EcXWug7w9qjzkkmE%2BdGcT7rd6AFH9K%2FLsZ1b%2BoT%2FM2S5AjKQZdvJkiQmlFP%2FDvNRjvE%2BzPha86yj84fviRA%2FsW72vpzEvNksz8L33%2BM%2BJfCIQkxqsvnDyyvGiMEwkLXnNlz%2B8WhjWaCQXjDIiMyWScD1o0oUyZ1u%2BdefkVMeDVnx4zf56amT67uUNDyHTb6PfENL6jLZW%2FngK%2BzkFKf9poj4auhacl4Fp9kufFdzsL2MxDg25MQK7x08bps4zljOTDFhFOY7NH6mk09EqufVBZ%2Bw4Q6yFXzCIExKL5WKNF4omRp8wy1hDbyRjw6ulesGN6kE3AJ6jNuDswHLk1BN8A2l5AuD9t6syUyRtTBlK3Wn%2BNgBPZkXL%2BabD8be73mzA7LiXSC1vgMzHoa1OzMilviLmNzFHVwe3z25aRau95y308l8ELzKXaYS6rHJe%2FS3Z6nxzAeCEOAHJNbvzgR1cRZZfXrSubbKG%2FYTZxVUDGWjcfVBQz7OVCOQyvC34jxD55RjkAxFT03YgdElh7PWo2fK3F1NlFUSaFlLtrU38pwufbDTy5Oskd93y5pb0%2BC%2FXq1Pj4Z8yxkMCWnHHBOPXUiaOPP7aytDi3qxZzL3QOgZaihaqvSp9ZlJV%2FyKqQnYeGvp%2FTVB3lmJyizsxM1ZP6BHUJAX8ED%2B%2FbXsRrQaYGSD%2BeVC73Lvgsfcb6SVY%2BLR%2F50amnjv5fOaHlD%2FFZXcwbb7eNlIVPPnLkePXl508dO3RA%2BV66PQgN57L%2BuBu7l2gDRz6WuIb%2FM1M8NOhsBMl8k2nFrdWfr3mKvST%2Fwu7YWwmK0lNtI9UK%2F%2BEbX4FQk6X1zDHODUJQ09z8envP0rKh66dOKbhWnyTmvMVltQwTc1PsoHOeHsu4%2BWyLQr1o%2FU1aDbcH1gkVX7ey9t0gnEN6hD1mEYtmDMkn1iPAkDLLWFsbNIzla2sPgx3Tw2wCJAVqxb%2BKwusxQLkA0PYCwv1tE5hWF2LK5FAKJJedDDidVHakUrVveN87%2F6P7%2FZDB5LdlI00eJS6YC%2BiJ1xtibt2H7Bjn4oF%2Fiux43vKbaS6rHmwfpTt9BKyZbQO%2BZu8WdbCv%2F4C9eR2BNsuQu7RJq3veKJu4KszT4E395vZ6BlprYYTXpyuE2LZzg03hqzX5xRqaqBlCi2bP%2B0uRXaEqU%2B1LslI2Say0Yl1zv7hdsXZlZ1ng9ZiFrj7uEpEvnsMZ549Xz730%2FOlTx584eGAR3Atj4bs5AGSfg5Yi9uvUmUVZ%2BWVB%2F%2BBmQerHwXsOCn1S6ZNSn9m8VyUoxmjwcK81qbU1UQVTI2LIJeV7M17gXxvk9wvrJ2SctAWPn3rxWcM2W7bggOMOSt45Nc8d%2F%2BYVeV4C4h9b2b97V6VgaPy977y853cLu5dEXdjuwuPROAaCuzw7cNtEfxe8rO7mZ88895R7hDm%2FsaRPe8Bx42tDpN1G1mrv3d2quf7d%2BYxQ59D7bswC6%2FWGMm00TPZdQ9fgaXm7oRcwBfiBoGamg855WiyjpA4imvoRnwGmBq2GDZrJrH39ytrr%2FrPXSIvNRwdjR8XT0vdyOemyjNFgw9RKv7gAvT4bbwlB0QoZNp8jeOsEtL2jt79tAtOKfojHlGFz6vwoyg8QCtjt2JHvv%2BZK%2FD7NDmuI7D9Jk6cjEzMS3vJORcxy21lszrDb4y4lKExYMPD5%2BnsutWAu%2FL9wLhcvqckeoFxhhJg14O%2Bqejj%2F86M3%2FHeZog%2B09S8EE8My5K5tGnjDbOKqgDY6buo3t4d8w2QUXt8%2BuyeG2EAEPznqqTXFxRqh2rAX6kqTXWGMfUeU4vq8QFUpyJY49WeLLWEq3e5aZVBg%2BcLj1bOnTz55ULgX824s7uMcWF1DLcX0mUVZ%2BX8S9G9V2cNZSP0kVf5aOwQ0eEqfIAWh5YBXJSjGSPDwHx2vGsFZyvUiTsavs0Hgnz5L3wwKzBseP4n3cOh8GY%2Bksi%2B6nVrZ7dOaqRH6zsLs9pL4xIbG39L7u3Fchu4lTTweXc1I442NOJ8Dt2VJLbVevJdVbn78iccfP%2ByofOF5w19lktij8qXdRtZqP9guaXdDK52xYVK4BfGnpe17SXzmCTPnJaLrSJzpmNPoC7Q4mnLBI%2B%2Bgc54aywixzXGwj7iDNEDSaapeb5Cwsta4ze9HI62YW05qHB0VniJ%2B2DltlrF8A2mE4OXFjcjk8NuG%2BQyb8RBos5NWALQZEO5bm5iEQFMlytzYxVq28U%2FvOtcePwtlTA1TGTvybb8KpeULFWdn%2BJ9wZEDVQlsLIuY%2FthobwO5A7lGmut0uBMz8iL6eCx0Zfy74v3Auqx8ESewBSnVA5ZdTdtfWo2qiZ2%2B8xQPaZJ95QDtup5sSm7gqsJLY3gH9BZIYu6FR2zzC67v3rxwBDgQH4Lmnv39shWpNDNYwLkYpIn1%2BXqgrbXbxsPsvN96ezHRJ5NQum5jwqvodB8MRV06eOXn08YMrMoyFfzSew7lnUV0DLcV0mcUMjsHvw8t7FC4q%2FM9knKY8%2B%2FsU0O3LV%2FoMiD6oEhRjnvjXQ1BUQXCW8ixJ0g8UgILAP3yW%2FhhsLQs8fuDQv7pXNgabfst2Xzj53KmjB61GY67dsmbXt30MaLzXd%2BO48hrXvaTiFzFVqk6wGNLO8S6G0Di7vEQv6yty84eX9u1b%2BhaAYqD7QY1DFPF7VL7U2hjWass25QR1CuyQh3bcatWmT9CcOAoitdo%2FA2j0tDh4cVYNdNA5T5FlFMLk%2ByxbgaefA76gXkt%2BoJ2Vtaqt8SEjnMfY2lc15CPGzDxifcosY6q26qURLpy28tuG%2BQybCUzQQyZsPxUCbfi%2FfW0TNVqpRpNx7sg6bdlGpgwZSJDFszCVsSMR1GxdqDjb%2FScbgF%2BAqnWFs6Ldck85kHuUO3iypV5njH6dC9z8cC6YXziXbnppcV3B2YbKbpPOtrE%2Bx8e3ZgOgXQuBdvyypMgmds9gipqMI%2FQVMIxdKylfOx%2BF1w8dezaG2C%2Beesow4sOB8hT2clg1fCuenyfVmiK7QmEdRvWwfIKvEKxCLP3M6WBYsdu5fzM3RYax8J%2FXOUBP5cgKqmugpZgqs%2BjFGfHm0e8oUaSm8N9U%2BjOJzv5jrvcwlT5zqvgTEH1YJfj0cz%2B07CP6twHjh6QfKABt3x0E%2FuGz9M%2B4%2BhrgcXVhddEShzPEHMrvvGJ52OVFU2cyEaWtw9L34Fqg8Z7fjTUGN9xmnTbweOCSNayillLbVeYv4wLPalxwYDoTcvPZdnt2zzdAEfHLQdldng0hvdx9am0Ma7XloBRBndI9O%2BIOefdob48xTxSbNL6zZ2wd%2F%2BCIo4v4Why84Ml3UDtJjWUMGJf50ORB7kj2zYSUfjZsrYPKWiAdBY4%2BtqZrwuROB2J9SixjkRYO3vOE9elQsIbYbxvm5%2ByB5MhJCKkcIdC%2Boq9t4gmLl1TD236DXDBlEOxG2SE8NWVHIqi5nb5ZUJztOWwBVcujjbXaMD%2BcEsA%2FMrbyGamYy3A4l3h%2B4Vy6CLJDBpCV9jNItDURbAeRePpvxodWB7RTYxPzjy3uH3bBzRoqKwRp%2FTFVamF4%2FYVXY4jtBEOk9%2Beihs2R%2BElsRkQUGawrT6o1PXaF25Gf6bLl439FgWWLlgsbIBgmc6fKRK%2B8cs4GWPjUU9kzi%2BoaaCmmzSzWIdy%2FdPi7hw5YEXEBbbry6zMqI3rrLevyQ6738KD%2BYwSKPz7Rx6sSFIjlso95lyCHyqfLC5H0E8n4iqhlvwb%2BOS57G%2FC4erHfnKv6iicXlt85K3nYdt1Ko7V9QvbGD73%2Fmrdf3i93Iy5UwgJrF%2F3GHSV%2FJXoltV7BgUKXdl3LV9p71GR4KAEQaMYNIb2qvbTbyFptg3YbJJnXLKlj3G5ZTc89xYnNn%2FDaYTIIIkv8oGbvJGVP%2Behx0CnPU0wJmnHCrNVbVq710jLqaXL%2FgxcLH6Nc8aX02VQ%2F2U0XHIfsn7Cw1A8dVf2qj5BY35Vl1V5YBiim9enggBDX0XG9YNswAhmDjX8xVfWrEX0Flw5Auz9tYqU2k37uMixItRyT5ocR7PZk8d6vASdUxtNFC4qz%2FbZsPlUrcId88F8%2Bn8mEbcnLYqRuLvy%2FcC5dBdl91xpk%2B2a0CwFD1IprD%2F5p00zxDbaJIDt218AM8dtqDatGe5Hh9RhiUyq8NTdb5sYT72lgaybWlSfVmja7SGbBdhQoedBT8Trbacx0ZWlfMKzBjfYkeDqmK3EOpqdSmUZ1DW6dMrNIZ5Mz68iJJw8q%2FK%2BXqeKzBWqfI4kUwAQVfzyiz3FUCVJuDI0fsCZcUozJsYg167qHH3uhvwP%2FxOPgr7W9TP6F5XdcVU9Fm3KpomL2pg9f9953X31Z39yNsFAeh6daCIKNts%2FdXmMOjj0KvWpjhHzQtHNqYkLcufn4jCEFINCEZzd4xDrTaWNYq53YvJQSV0dND61iTsGcewmCLC9Z7c4iqmSQUAadEhwRAClmeQJZjVVaNjHVS8uoDo8Dka91ezZBpxkIpPT9ytpnkZBYFy8EH1THC6cDsX7Vlum1B5bh4AVHlOU%2FyAwyGUOHwhfVJJfEnLc7kpAEFYpe1G2wA9DuM5t4wlIKBy%2BpXjzuPJkycEQgMfE2Mm3uLnvUyphhyQvnElK1SIQCYL5wGQM2bq9%2BIXVzYW1MOJfug%2BxVVP3OMBTgE4fvfgPAP23Sm75hNnFdkdJKUh0jEF5L3e1zyfD6a2cdxEaT0GLrK3hIniG%2BrG4g1Zoeu8IyVjMv1PDmhZ3tUCkz2w6GtbaXbsQPazXtS68kyhV0DqanMuGqa4CxUmcWC9nbqiypRcRKi2hBvz9S%2B5xIkP8B%2B2fnPaLPmbNUBzmLxrLnEf6B9an8g%2Bit6tk%2F%2B2qfB%2F6Jx13l%2Bk7i8FB%2Bp5oMg0DPSz2o7M0fu%2BG6973nHVf0z90YVGf8gmJmRrBZr3GML3slXo3wCMDqBCtv64hGP%2BdaXtjdWUmmEndArzwstTaGK5xgZfMm%2B6wtn0w8N7Lj4dzvX5if1ShIvc0qmVpMsTFYyWedIXci2A1XadmntkjAvpeWUczEe63vrtcZX7szkNK%2FQGXtUCDtFPCbWfXhIZyLt0wm3wPLgOiIsIHr9OKx7H%2BBQ3FVxDwd3RIjQfC%2FPVI3cjkB0O5jm%2FiWx3FtiGPeKvaVaR91h%2FSE1XAAJCbItNnhQDE3A%2FZp4IVzCahaTB11Bv%2FDxIExszCNc6mZUeFcLl3gH7L6TXclcbjVXmPwT5uQ7My8UTbR%2ByOllbmW2y1wTO4hWupKjyeG17Ue9ISD2GXlAIx9eqp2X80kYotBwTafaSjVmiK7QgFLrA3kti7YxJOVMsVguNZbAnRVR1MgrnHtz55xUopOT2VjNtZRT51ZlLC16tKVo8%2BohtDDS3tx6ssQBw2AH5KigP3C81kh0SfyPygzOgeFf5%2FwD%2FIP42Z5kH7%2BP3fvH2RVmaYJRpUWbqPtYoXiOla5y0ZQ2uJMyYwL7A4Ti0Uvs4aMFJKZN0lu2ZtUk7RkjbspGVZUYAT%2F5F8ZGXcj6mZzbmZykc68ZWdZJksPxRTTAh1dTCHjjNItNSq7LYMS9ojdUD9kutB2jP1%2BPPf5zsub18Pxcrnn5PnDS6aZ5zwnz%2Fm%2B7%2Fne93mf99xluK9nNfBPPr7yEVu8XtrTwH6Hyx0izXxlH1uzetXyB%2B9btPDmL2bqagyqM35RD7haTZbbE%2B7DIAcIQRTLanQO9v6LghWhYqkQYKOwrrMbvCgPyy1GuVBiMIPo0ciAlyEcr9Oaxk57aKxq9ZL0k0RsiZVVEDUhNK%2FyoPlBps1MYk9hiMpaZaWvKmvZTbd%2F9qraCZUdUwwnN8h0NQJ14Azj8goNaohR%2BQ3lqdjpYtgIOxfmcgTRzjAmrrC4uINCc8zQ75u%2BQ1hhDXIEnKDL%2FSNwEPWw8MF7QS4RXDcl%2BScPFMrCHN6LfQwN7uXaBf6tNtmSiVjurfJiS8m%2FDvwXricmxmuYmfb2TP39CBzDdcBx7Imxmu3xTOX3W68e9RR70GgAbID%2Beftgw%2FMTisYEq9bs49Laeqp5cUL1lfIee2Y7D9nVqjxmOxSceM13uj%2FzhrdS9H4q6424gj7q%2BYLF5nW%2BunT60PE33%2F%2BVtUJ8Hfl%2Bc8zU3DFNS9HDoP1vnHlH2YHHbUbp8L%2FZq7PR4jfu%2FFOg6Ic2ZQz8Z5H933L3vcseXv8Ep1Blv6My%2BQyCLr3%2FvkV33Tb%2FhqxdjUF1xC%2BYy0QcY2ysFsE7RzJlln2pvJwzhrPjNPBwkBy9hovysFxi1HoRNYVR9sznBjjQaQ07Ey0TQ%2FJuESK21IHe52hHVhDaCVEBlTNkzB4ja8D8C%2BU0SA1SVqMra9lNV4bS%2BSyp62J2TArrc4VMVyOYD%2BjAQe%2BUekttKFBaa3%2F2CclDZdG82P0Kop1pTJTJ4%2BKE4s0xN3EfgpHNEllTfvDVeWypW4W9mn5Yqi0bconMYsg%2FyeRVkX%2FRrTh390Lyr%2B%2Bl%2BcA%2FZnp86SprY1U3tR%2B3lvzrwH%2FrMel4zZjfAEc29WNj6jt3jrhG41u9ctpx7NFhJMRceP0Do%2Fw%2B9KKn2L1GA7DWbvD4%2FPgCCJUNcr4iz50TXDovIV3V5FdFNW7gPVbcJI%2FiFjhhu97E1kz%2FhDmOH%2FVWivBT%2Bfqi2%2BmnkidYPOZbhYldy4zy59TZi%2F%2Fl0kVU%2BtnjmGH7nvDDUvTnoP1G5wPeL20BL9ZtRuMO%2F7RohEqbiYAg%2Bvn4fVhkZDDwz9f%2B9kX%2FZA01N43td5jJD0HQ22%2Bbf2OmrqaD6qxpYqGG%2BXpozFwwuOGACUnDN1mRYyFP2nEqWu5SuivcSUV5WC4xar2IkB8J91CcmLs1hDOeMdX1v2%2F2x6NXCOJirtIb%2ByCz56%2BqfERukOnscWf87fbdYjbSSp%2ByGl1Zy266TGKoqloMFWbHhOYkZ8gYDsZjhPU75OBCKIsVU4swWFrbb3rKKKLN%2BUXQlLgl%2BbzMYtIy%2BYqQycMc0wvV0BWLnatNN%2BY7vkilzJTsUfAZMnnkEkG4VTJkTxL5123xcncvJP%2F6XpoO%2FDPaY7%2BE3UPw26oecHlu1VArSiDaTQT%2BW49Jp1wmIX3zae7vW4O2UVzcYEFbre9y9v3UGL5Y5bfv5WgK%2F5b%2FYzuZTdakDYZy0sUeUMzeecGl8xLc7GKkCJtqOW7oIrpaHmseW7duXcH1wBxyhpYz%2B%2B0xDStF%2BKn8dhBX5A0WFSbWCsQofw4cffWtc7%2B8%2FPfe488cpmOUORzhh6XoBdJ%2B1XfY%2Fsq7ttgX%2Bn5LFij437yR4h%2B2%2B6Lox5swwqYse4F%2F3c6msf2O8EwRBlUZu5oOqrOmqWI%2FfRFTXSLSaO4nX%2BTFncXED1G9r5dy6N0EHQfhySlG7YAc1yyUNYHBbo06rWInmqNwbIBSosWlzw1CZo%2FqPhUJyRkyTofRFSBQx225tJLV6MraC84jgB0iVVWtbqQV0N2UJ2Q6HMy%2BypH54BXKIoEjmlTIKGbYLE%2FwbEFYL2iKMNnOIKZEmfyG8E3pr8RWw8sX3RyUMlOyR0FDmTyj7eg8qsogOKdoAlhNIP95uJdk8t984D%2F25USosSl4g0J3IXdbJNoUojRP%2FnXg%2F7piot7KWzpVfIHbzuFyVLLzMbG4%2BRkTt3NbOXnMd2xyFNsU%2FnnTp5pc5nQPPcASee7c4NLaem52Q%2B%2BRKHzMuue9XxwPLlu%2BfMWq1Y%2BuL%2FYN2FZW6HhbhpWi9lPJGSyyf2MF0tP39FC5%2BuKhYydtu7BPfBjfMPoL5rCEX1iKKt5%2F4fy7Z13bhldeteluaH0cPxOCf%2FRmYpLMi35Q7Vsr06YsewfFE1Jzo%2B13mOGWK1TWrqaD6pjhMKUhPyO5sSbWuhGuizC%2FoEYxiIEUl4soYP4wJvuesAezJjCxTqeWYe8Cwx6tC%2BJGY%2B0kIbGxJ4BGBOyc2om8IWP2GMsiQdhMA6JrCKdRVqMra9%2B6YKeN0dJuJDF0Va1spCXR5QoZHyPCwYIDdmAJUQkc0Z6aXV3QSZKvfH8hDBvOL4Kbsr1mFjEly%2BT5zUjoJGWrYSplJmU%2FtoYyeUbbUd%2BihhtvRhFAGGRpwpyje7m25J%2BvgiLYUQiyw13LuwQe%2BveHwRyrJNrsDdUc%2BdeYwO5bjkmT7OfNWKmLJrp6%2B433ijXQR6IRTcf7QJEtjzp51Bi%2BGOV3X4%2Bj2Atv8znfBJI9C6x5OcGVrK1n7xF%2BzLrnvfPL8eOue%2B65Z9F9Dzy0cs162%2FKWHW8HYaWo%2FFRyBospxtvvXbHm8c1P7xypTO17yRQRv3v%2BQwT31SF1PuT9r79ywrdt%2BFMW%2B44GtQDi%2FHaNLHjHHyTJjkP0g2pf05dsmbEpy%2BLBmQCLWQP7HZHhFitUFq823wfV0bCIM1yY6Z5KItbrQZHDxc3MAGKtyvegBQjEWpSH5ROjXid10YGMuYdUDWRI32Z0nf9AIlm1kxyZRDdsZamTK2RcQ2jPSn73hO%2BmS5EgyoxVoN13Jjz7N0ZlOF37ATfIuqpWeMwLdPlCxsdIQZKlgiAWag%2FH2lpOCW4f7TrpgpNbU0LA%2BGZ45cUwEHwOIeG2YtrUCJOWyY%2BH6gN8E%2BaY5Luy1TCVMrWrlcn7e0G0fX4SYZYE0KY%2BGhDmPN5L8%2BRfvAqNAv%2FU2DnB8F8cjmlGxIy%2FrhnyrzEh5HRdMXEaemGMJcUDmzu7e437ujXQt%2BJDzkF4in4Ht8%2BE163ye80KQ7FvvgHVXulJ9k05wZWsrde9R65iz3vjvHnz5t92x1e%2FtnTlmsfW97DjbS%2BsFJWfSjpYxbbDYo5x4eKlq9b39hsZ0e6aKSJ%2B5ZSx7aeJT0Pab3Q%2Bdd5vDIJ824Yfsdh3HBofy9Po9tkRHH9cZ7H3fTHIr9%2F21b6Pr1qyEHWqGTy0eEKZpcT0IgjmYYXK3tW4wpQj84B8UJ1urOjYvTWJWK%2FD5cNi7KKmzxNgTFkzoRy8RHlYTjHqDLkyDmLYUvI9rNdPDXpi3cHu6KiMLzCYTKYNRaBc6nHkBpmWinNri%2FAvFlMG2sGpZaDdzR%2Fnz5tOKP%2BmFpczKKbjxwirkYkub8j4GMthX8uqlkikBKWBEKYECOhGsDqPjUH9RYlOeCnwPcXn2orJa140Jp2DKGBNhUzeflO3VFathqGU%2BeOrlslrgyYtlTEfigAm3MycuZdUh3wV9B7AFxhxpBnBsL0Qh1VLyD8xIdTUekyaZO%2Bbqs81RlZjOF53V0%2FRqDRKiIa5eIQMAFo2bpTfSxffefMNOI0m2VqCpvo05AeXlmxKbb0lTRww%2BEja84K1z1tw99ceXLbyG0Zr749H61aKiqemggU87YTFEb7AVP2u7TEyomFbRHzgiGnYa%2B37rZ0PFf5BCgTab3U%2B4P21asW1bSg9x2JfanwMT3PiH7AHtvmqmfiYeTF8Uqhe7Yu%2BZFkl%2F6u5mGmPyC5ZKSqCeZm7GvWMJugN0bZlcyA2nShiCgPxaon1%2Fe4tr31GkZt28ALmfGLURRq6ZcBspY8UQOwY9gybgya4YQUZOe67euCE%2BU211OPIETLSk1nsWcs%2F2B3b4vWoylrWfJtrvv2LD878xUs1cSusqlVjBAEVoMsbMj5GLwKhFz6jW8pYRyjWKKADg5mE%2BgtTChvsq6atYgC0FxNPozGRpoZ6gy4hk1e6WtFqmNG5ag1ipSSZvDLHVH8TG0mwSOS%2BKOFm5t69pNSgqsA%2Fu2vgS5tjswOMRFvnepsj%2FxqTfbuvLybaLM3MVNA5yxgvWHWH1XqYWIyNsdoIqlffyADgE%2But8nvBjcqtSZNsjlbdpyFnuBi4gZoeNAlfiYKrpD2vvN8Fd92z2Grt%2FfHQAw2sFNPCitoHS1f9LllhZETbttsi4ur0%2FgOuca91EbXePv5gETBov9H5kPcP235gzwyNotgX3b0sa6j3ByJ7wE9YU4yLn0L0Y5JCqPb9QlaZP21AaL%2BjebjyomYwL3tXo56Ranofwq3EJN3yUiQFn0WsLegmiHXuMOppEQuudBHSHctx4mdHxsGwUSFv%2F7GLFrlBT%2BIW2COn2MyTSz2OPCFjaHPXbAmt5yc9p0ZlrTLXpN%2Be9Qv4EHtebmDKuEvzocaIqEbOFzI%2BRmGnSfU4m%2BVwDydraxHFpEM5WuMJWbIS28OHKAyAdmPiaTQm0tRYvYGQyStdrWg17C1HYT4IsVKSTF6aY%2Bq%2Fif1pj0TuixJuZs7cS4pDvQpRoz0A7XTfa0C0ga0p8q8x9VxnTHwFaj%2BeApUaHnV1na7KM6p7qewRBTUMAD5I5bdwa9Iku%2BMPzEdCz4ns49KBmyI2u0pUP24%2BigB2lQbLN950q9Ha4%2FjKHQlWijmCRfY%2F%2F87FS01bKVdEPFyuVGvWRNS6iFpXfxy0%2FwTtnxwj7zc7vz7H7MENXIAQrGFjXfwTb%2Fe1e8aIfj6Oi362ZbraV7dJlUEVZriL8KIW9juZu5rWWILOTMS9XPopLVL1sI2I9f1NEOs8YtR6EQ5qejxKyyZppl9yDNuUTJFhe0%2FNjnplfKySdGz%2Fy2c%2BNL%2FIMB0lXmmRbWo7Ml2FwL6wo8gd%2B8liY6zBANPvFNm%2BdcHLZaij4V2KqlqMEVFVmzNktADA84vIiTeIGDEfo6itVZHVqX2UvalureL9F7q3zGLiSx6xVqMonfExYZLvSnNVlFih7RCkNgkyeWmOqZURQAxAKj2JmxGEOY%2F3Uk64l2YC%2F7tGNN9GI733DWBNtAU2TbRzg4nJn8mf7NvtZl%2Fb7j%2BqjHtvlyHzHZdiRJMs5fZ92xe1bCs5wi4GVq5wMWDKwA35UUVp652iUY8bdQitPY4vJSy4%2BYClpT%2BmrdQqW0RsS7eHnYmo2QG4fr442PgLtH9kCLx%2FS3FTYROYvagOHK%2FbAwbBf3D5vFL080imq31pAxJxJVc8HIRK29Fl7WpaY4nenAyq245GdhSH8ahieajuawGxzhNGXdLPZ6TIo2zKdv6tlw%2F%2BYLzkK2p3eoaNDbPImgUPSR8lprZGzw3JyEgb2oZMm%2BlH8QaPht14K31VWRv8tGmvYaqM%2FTTZqXbGCVW1uUNGTheFOkvsdUWMmI9RWACIyKozZ9ofbq3jyp2zyAOJoFtWMfEl%2F75ZRSFqUc74QoAkWg37x25VWC9UghSXEi0CEjJ5bY6pCTOLRyaEO3MCYc7VvXCK1ffSfODfJtq0y86MaQ8EwMJ%2FNLFaNDeYWPM3tv%2FwjGPZ3Zudt6M5jMpmoM%2Bybp8q62jg9q0Lthtr64sJBdt5wMWAKUX%2BDbT1BSga5bj5rS81x6FbBwu4Wt7E6j5bRFzoNT3E7AP1LqLVGg5L%2Bc1hWT9o%2F8BWx%2FvXPbbmn1tuQGYfxe0BHVkQgn%2B4fP7qStHPvbeLe8ym06fM2o%2BLUj6lleU6l6GrkeQwrNG5xc1hPejQ0aES8dCJU8VLr8jOFhDrPGHUIWPZ1jSKVN9yhEM%2BvfT%2Bm8cPvWjmzwE3VMqOWHfUN8zx4RShwsEL5WCMOynCdOmRlduFTJvpi9SNLWjc7hOFrKwNnNrNJwy0O1NNP012C5V%2BIEeR0pwgApU7ZFx2y3zBQ0A8Cv46jLdJC4Ab7%2BRQsqvyc7XnUf6pJBzQmeD9F3LbNmPq0Jh0jaxnHSyqs4DAtVlirXW1VMpMTpcbtGTQnRmkI4eeurWzPwdfAmHO1b0gudoU%2BedMbxDLqPqWThVkdzvrDxFM5lQv%2FUcngjEsBpcg2mlXyCYw4X1Oi4npm%2Bkj%2F%2FqHZi7u793ovB23W9bV27Oxt9%2FobZ77oX0ujdy%2Bk0k2v5dQ3Z8HXFpbLz7kIBiDojGMm7vv%2BIpTz3z5y7fe9Ln0M62D5XHdOq%2B15PiL828zRcTLH350XcE9UO8iOjzCY8h86Vg%2FaH%2FPesP7V69aseJh2yOYTb3GKQ5Ady8h%2BO%2Bky2c%2BRD%2B6TWoRPFw2sURsBVpZuc5l7mpYIdiuNR7HiFfg%2FSgk4iWLAW1OJNZCZJ5ArHOHUVNs8YzE7A%2F2jViG6XpyyvTCtgOj6LbJ455hY8PsqDZtsugmYYVyWKkrQluTG2TaTL9LF218x%2BuLNsrKWshqKPjq8Kaap%2BzTKUqVPm1wlZyJ1ci5Q8bHGCG1hcZPDUsKZTZhweIVa8NQKo%2BWJlD3LTcmzAOxFlkYbbQXE3p1K0zadqgckfZaQMHfBreldLWkNDX8bJDiAkmRH2EfIxw51NStdn5hZkkgzHPoXngkr0YYPQnqer%2BxvngZkXOPA2q6b85uDBu4Z0pMXH2awIT3OTUmbuEO1MYqtjHutqJx1Nlkjp5CjzXWHxk3AwY7Hu32rUl2WN80yU6o7s8DLq2txwdFc8UitPWstApl7v%2Fw%2FgcecnWz99%2B%2F%2BJ7PVTnbOlge1%2BKv3tE6%2Fs8i4kVLHlqxypqIbnIuov3bwzFgvnasH7T%2FGyuXL3vw%2Fvv%2B4ar1m%2BtRfSUOYMSQsiC6fOZJ9MMglxZzQ5zDML2238ni1dhWf2uHnOHiX45VG4kXwWKw%2BQg2moJYR5gClYe%2BJta5xaj9NMMzEr3ZhE7r4tmTRw%2BYXth2pPTZXBkYtjTW7%2B3GoIGbhNXVc6XuE3QsP8gYUCTLVK6j%2FbSLHhUN9Gcz1fz3h%2BAYQY2DdHAtNtCcpEVWbDsy7uEog2EVKMO5IVMulLbONctuVbhF0bmuLgrBlZMALbbbiomRaoFJ2w5tEA3RzVeR2OHitoSulkqZF6vBCwcUWZoFYpSotlqzTd3c%2BYXex8L%2BRRPmOXgv6VYjrHNeB0aCTUt5Btkv4w3Y4HFgwi%2F0y0IRvHVhcKXH5NPOTWDC%2B5wWEx9j5YdjQ0Z5WR7eYfs4WZLdu3Vg0NZlloaGuCXWbt%2BaZBtYcn0LxDuhuj%2FruLS23pxT7nIhtoG2HpVWLHP%2F3dWrVz%2FqHDMNp132uTwzWwfL4jKwHnrA8H%2FAatVx4813fGXRfdZEdLVzES1s4mEpvzkM6wftN7uke%2B66614Tv4k19XJxQRb7MmIYb%2FEbXD4%2FPp990Y9uk6rE3MyoFhPsdzJxNRLC4J9TCu68ItNZv7Ii1r2DwhCQcxmINYHixwNBSCDWOcOobRDCaXWXBoL569OvHp2ploee7rO7ZDtCJMOmdC42aLyhjjk%2BPHPCr9RLmSrLGTIGFPmspCGm9YqzBR3sJUaNvTbV%2FOn%2BMbAaoXEItobFWTUnKZBxb9RGZLoaIagcJFyDUyttTR9H65o1soviJHWHWmyPpUg012wvJv69NCbWyIICsqsaREmIoHCFlTJ5hjP3gYaEaEuXTNhjMlFKLT118y7IlBmMiNB4XBHmOXcvaVynOdNHNtojLf83%2Bl03g%2Byf4g1ANAM0ktEM2akidIT7HJjKdrlpCtNINTUmzkTe%2F%2FYpI6UZLw0bzYU9Bo0iuzxh2uU%2BgzNLUx3d%2FYJh9LJc30RLAvX8coRLa%2BvNOeUuF%2F6aUlv%2F977M%2FduO3PbaXlmW436%2Bblmtg2VxGViPrl75kIE1%2FwutVf98af5t1kTUuYiuWLWah6X85jCs39N%2Bq4%2F6rYX3rngEih7f1Au1vSz2BWtgasAWxtddPj%2B9ePp4TkQ%2FXOfYMEVIposY5LTfcalYrHOZuxp6QKJjrl1ZfKDzyhj7syLnwHionsyYxYwRawCVgr4ogVjnDKM2xQvOLrKFVnxP8bYX1e8046Jodsl2yPT5OHtoqoVWeOyLPXWQ4fVTR6bLcqXOGTIGFLXrKAU3u0MH4R6E2GY11Ty8P7AamdEQHElpTtIji9qJjIuI7rIqt3JYQ6TS1pQuPmIHCwsVvit3f419NgTRzjIm9sRlsJtCiyhkXohEyuSplJmhRZHoh8dMPYW5oqNFAmEGG0SesRuVvIjbcOeHhz9n7iVtkN0OHSTTdLTH93oJQXb3BojwzR4lScLfR8zg6TFhuWkDJuw%2BxgwCU0Q7tnciKo24o1x57o9GTbtcnlmb6ugmbew4HOiELnDLLS6tra%2FIXS70m0Fb%2FwtjXn%2F%2BrJt2B7B32blz0KpbthQLax829P%2F2VKWarYNlcdmCCsP%2FDax7TJ%2BE1h00EXUuoovuu5%2BHo%2Fz3WNZvaf88C%2BILCxYb7q%2BMflSxb3EgqAWMD96b5%2BHyefbVQ7V8iH64zulCSS7oTN5cYCoWC1S2rsb1xfnn0ENzZFzOcNHQd823NDGTvjoWAEJHmljrah5QUEWsc4hRj3GlEhdFGjztyWNOVN%2Ff22WsEoKd%2FpBsqiX6YttB80EsvD7Yu3ZZWKlzg0zntZTrKDLGz9vnzUi6NtVkrfFMxN%2BTVvOyJl520c0fMlYjqK6hcbisAhJSot%2BylbWoSi66%2FTP7ydtfoUxf6q9CsJ5EO4OYdE9ckapRbbGARMjkqZTZj7ZYOkuDG6LURnW00Cq7kPZBOar%2F8JW865laETu%2FOXcvadLQQIrGgTR0QBFwJR5kJ9HW4RuaveGtS0v%2Bddq5HZioO3IPrmA%2BRi27npjcO1GJSqNjZjo2L0WCqY5o0kaSzWSaJtn5xZWsrUeri6LBZV77M7Zd1euv%2FMyMG5OwwN6l7OpajY6p19L%2Fe%2B9ME2VvIaxK2VspbTWwVi1dvLDVUXK6iM6%2F7cs8HOU3x43x5mBL11juTwkAfX1ksa%2BvkKs7%2FJ8022QI%2Fo%2B%2BWDHfz77oh%2BscAijk4XJBZypVtO3J1tW4e%2Fc6NCtkHJEzHFObV3LFWI9Yub3HvAdivbesPLswmFmppoh1bjCm99MsR%2FK0x4%2FumxodcjZptiF6Cbx6JNJNtdgXe%2FoIBg3D6w8vWUgBYG6Qaam42oEgY1zbTTG9MNVERS1dRqelpY4PHjJjFpin7KKbJ2TadVETbcPA9HpJZQEqayvAPTE8eEX5MQaXHEjaQzizmMhSQZGFDGm2tlhSJk%2BlzI9rWJtVlibsSYIaSnW0ELxGpX0o4aH6W9VBzKV7SeOpaVO80NGHIDsI9gSKgEWQHYRShG%2BaFm5qTAg5tQcTgzZQfz1jgsCl50ZNX6Vn67NIgqmObNKmmo5pkp0%2FXFSrGKq6MGan30BbD4PcI75d1UsH9u%2BzZcvVPfb4wQvT1tEyMjqmQUP%2FH1mx5J7fTsH%2BWwdr37SBZZooWFiPr1lx7923tLcVLrn%2F11c93hev8a37%2BkRxp%2F8O%2ByNOLQCH%2F1%2FHXD7N9x9flWHRj46fSh4eFvQobO2hw0QqNmtXo24PJnvWQ1PPcOa7jGHIcnzzA0TlV6A6sV7hxEp7sG7LzYoqJhRDOn8YNWvEBZWfpnB8m%2FyJEdaUvKh%2B0KloBrzGplK2Y6ZIhs2dM6xxzaBx7lgMr9%2FMa%2BcGmZaKk%2BzJzMREaZRW%2BtJU01fUsuC2qix1WNUsdnFyg5w3ZMlEe51cL%2BMKjNtthCaWmjCfqg2RFExz6Za1yFnEpHviMmYCGVLE%2FT2rLMSf%2FKaglPlXVREYx6xAd00ma1SrYl0yHom0j7yZsmeDJMxUbObwXqJG95K6mVZdRx%2Fj217m2b8RO20G2UEoBdFuXripMWEH2gym3sHUmJSSDX%2Fub2%2B1j3Gw30w1iB0kmOrIAcoPlZojrHzimnfrl60j5qL7hJ2%2B%2BIATIMbSDNpV1aqwrrdHKRqbmvmTg%2BZ%2FVMuG%2Fm%2FrWbvq6ynYf6thTU%2BOGVhmbX5kJWC1mw8b7m%2BNfiJ0epatQCn%2B6eCPCIf%2FT38Fl8%2BeNUvvuSWbjF%2FHTxUPV%2B59qg9Npq5GiuOzTqyddbwE4vrBXvgaqIJYIOB6VAACRnzci76HlhT8Jcx9ophQDOncYEzWiwg%2FTeWsU%2FuTWqVOq4dHR4edpeaAGTJWae%2F%2F9X8bFtkR9tS0xoU7lg6v5wFZspm%2B9Pyhlf4uaaq5y00tYRv4nLDUETXxYhcnuujmDFky0dZdcIMC4ysmQgO03T4F%2ByT2ubxDJbYXSzdrkTOKiSyVvQUocUGvLCWTFH9yKmX2IzAuu2MFd01KbWSr4mR3zPFAxNEXC9RbFjDk8F7Qyk3fSwoawWZazvaQfJsyTxVkJ6Hc0MClOWqG%2FEtMPc1hwoKdBpNWshXj4aluasUTTHX0AC03aIdJWPnDdYPxp19sHDFdeWpDO314CPuPKsn1MKzrzWE7W5Wi6ouH%2FuzwgWlD%2F430dX0a9t9qWIcP7TewhsyaDFjtVsHfucRwfzB86%2B8jugD11MU%2FG3r5IyQL9rh0tu7yuWLxgrbeTMpOSYqHK%2Fc%2B2Ycma1djajgKpbRFX3bSCXE9fA2CFabqUyT391zVnVhprzDO1Ib6Dfr2pcdYaQPGRD%2FNLt2YWehs%2FRCGqN7UR%2F3eJqexGdnxVF8R%2FxrodRvmMqj27hlY45oK%2BbdMskyF1%2FOCTJvpdyAKrsVbwkpfmWry20KPTHIj2mNoPXLekCUTbS0sCAoM46qz2ZcodKI9GXVHvENd%2Fq2X3cxiIkulQQ5rZC1L4Rkok5R%2FciplfjITicB44LwyiQhGw3BmgjumVNuwLxaotyhgyN%2B9YIui7yVtoIu1tO4qsRSvDrLjDaCrlHaLxPhVRPs6Y6KoJT0mJiE5jtimmUMs2VSHAzS5dTaJep5wfWH%2BQtuZ9hvOEbOwqfjZ2voJfIyQXPd763pz2M5WO4x3ae3gz04cOTDtTC%2FS0OyWw%2Fq3Lx854INzWWD%2FX1pIk09IfNgFqB7mdxUAqA6E4J8O%2Fx%2B9f%2BroDFw%2BF4qAV3bJP1UTMkaFDZxwo4P9DlKpmboaU8PoGxNJd%2BURVtTaq1XUgsyIRkzZx8HphnRNjmKil64dFCtxSKfGaM7ZBozp%2FDTB9EhjzBiHg44V1W9%2F0jTSMBqbqbEhU9Rv%2F%2FVcacdT3y7W%2FfQ7fFuMk7DGvWQq5G2yTIXXc4SMUz%2FFw7rsomxrOSJwa2GqKftpgYSIOm9lqaP1yHlDlky0tbCACoz7VjwCMRI7s3GwqNQifWFwGvH%2BtxETRrrCpDsNI2YSeuJG4gxkqTS35FTz%2FL9CjSwC4%2BS8qi0WGQ3DmWrq1nZamI1I63EzQhI9h%2B4llacmwzsMp4cRpoPsINqQiGu3SDRFACpFHFPVxDWDCWDSYNJJyDJbeqIVLFljsqkOB2jE2kH8tvTnVam5nOC6ccE9S5atWmN6UvX6llTPiDeckwi19fj4Tp1cd3d2dnZvckd3V3FLv7G2qB08%2Fhcnjli765Tsv%2FWwrBNfCbBuaTv3f4TyfmX0Q2Gw8AKaPmLJAgT%2Fxw9UR7Lt8qnjp4KHa7ppnqiy37kpS1fTihoGhcxVhLje8x%2F7ZnK5YctCd200NHHhy7qu75%2FaIV1VDokePYkUYAuxUlqM5F5twJjGT5NMjzTmO70FI6yxZPpZtNAerc3UxpzZwGitVgLXxnBybTFQJfOx2TC%2FWLHJMhlezwsyXTLGbawqu4CYnqaag0FtEwLsICEqlaEsdaTpRB6RJRPtyqxEe7kR16MjcWcfpmL8opLKMQ7HuJ14%2F9uJiTUSEpPqNLwer3XoiQt9JM6gWyqzbdFYdTI8K%2BZdyXlFWyxBuPXULewHRIcWuGM2aPA2h%2B4lvacmwzsxl51o1iA7LqR7ubM6ITQfEMQxvc9nV9OYKukxcWz5Em94K%2FkZqQjzgGRTHZ6Ev%2B3QIZneoHU2iXqWcZGCLl66am2h2DewfbC%2BXmltvcEKj6zw0dnZ1QMTfbSxta3KOk3gy9Hs%2F%2BgaXaak2a2H9fNXjSEHYLWVM9%2FouH%2BQ98MNkJmAujC4EPcCukLwX7NrZ5ZdPnX8VNTrMX7KaB6CzLKGL2NXY2oYBvpXaC1l2VXVTlEh3BO6TUIyUxcu1xegf2aHNDilJj9CrSrESrnDmN5Pk8463%2B7davXztelR6%2BNVmZiohGNscnLCc23jgvX7G%2B1wqom2GHbD3KfcsXKGjO5nsh9bV3z1%2Fj1wa5hqbtwWLPRhpmk445MgIao6RlnqiKhk%2FpBpok1P%2FeCnKcwEGWW34nr6LUToRdZIKd2l%2B2nx%2FW83JgxjgUlJETbwj8waWQYDeAbkDsBSMdVUhkpjqDUM%2BpagmxE1soJwy%2BMmTN2YjHT4ne6YLNdlAcNcupe0Pp%2F%2BtBGcHKD2nECiUgbZeSH9nlmM8nURxDGtz2c7MOk4BIQisvFIgqmOaliu3IcatM4mUc8yLoaf1zze2799x5B1xHTHHtSgIFgoNsvh40lDrgeciT7IudXZ7xjo6%2Bk0RNay1P%2F31PGDtXQ0uzGs8WsH6%2BQxwGqjWoYG%2F2D4NPlkJoDCYLQCRXcvK%2FiHw78T%2FD%2Fdu3ZFhl0%2Bte%2BBUk0oN3DWpNF%2BJ2NXY2rYFif5wSZ0jdvrNLvDDuBa0CkIp2cfTWIso769%2F4bPFjCcruN5VKtiSEOslBuM6f00wV844m0vxNLuKVfUX3YDPBxDrsC%2FUqlOjg0Zw%2BHv2Ar546Ithh1VqoVunpCxomVXoCcGi1opDcwJWukLWY0pE0Xc%2Ff%2BKN0AthnCxstSRUcl8IdNEmwpi2Ukrnk%2FgevmN9XG%2FhfoupSL12zyn6qcl3v%2F2Y6I1JTFpKUI5qPfgSsJMKc6A3AFYKqaa8s6Yw2uXCL2oGllBuPXEhYmlsUHOBgZGhQIkf%2FdSaXgv6X0%2Be4KfToTaropz%2F7Szlgiy80Iqw0SMfF0EcUzv89kkpu7%2B9Ji0qQ7nbSz%2ByaY6umG5ougJrbOzjYvSk76ndw6XovpyhVrjMPfiA1ixyn8X6xm2DOP2P7ui0pAp8qU%2B5c3jdZr9tRQFqRJWpeoreIeuGaz%2F5GChTrY9RJgG%2F8rk84pMQO%2BGzWwFiu5eH9Hh3wv%2BVy25E%2B9Etg%2B%2BrUWyRB0%2F7UqoUGnv1bSiZhPczBDI6MSEtwU027WKkT6arBrFGsJqWoQy%2FrndrTcqKjUfOhAIsVKeMKb30wxVcxMls6Uv20nBU%2BtB1PfgGHAF%2FrZRuvkJ8wO2Qh6Dhm0xeteqkZ8rZNpMv4shXtkRa7IiRLeyotZGFZ6N35eq3dCWOuBIOUOmiTaLWbhrReqLtot8cYUlQ2XE65OqUr8dPARwMvI58f5nEJOSImwQPT5cbBrTZsiUytwBphrzyEqqRlaSXSWG4iPTNbJ8W5itFQY5hCIUIPm7F3v6xvdyVYvRLD6fI9xT87sbQ5CdF9L%2BPjKKw5eOxDEVJiQjmsKEPE0qTNpUR1T%2FpTDV4RMUlUZRQuvsHOAiyTYiVbseubI0c7iXFLwaA0V97B0Fuaah5pAj3eVdztXO961866%2FrNNtYUV7NplHDmqiURoZcBe%2FgNYUFh0xE2dpo8D9uiT03ASITYBMA7OzbIbt7fXzeOvx7wT%2F%2BtBk%2F%2BLbqYjTJpMZUhUp2rqZ9dNBEC4GMMOGxmOnHtZgsjz9MkT1n%2FjqCR2wWTycsyKdEDb8Y0nnCmN5Pk5P%2FpIuq20aCnlr3Go1fYUMnjq4eV%2BC%2FdWDQsWwTZ585%2Bvo7Fz%2FGoEFbDLNhlgmeXCHTZvo6xBt5tVZtqiQD7JTVQH07hGSQrt1IsNTJETJNtDtCMUsQcxVpkieCi52Iw4SuK1Zg88MrBV%2B9ssQBI0b6t2QWE1UE9FpRXcbKIlMqDBKolMFDksIWWaOXIIbCG8QnjM5uzNbSIGcDoQgFSA7vJcRWPlePLyBWuk667BQZeg9B9k8v%2FxIXEv4%2BXc2Sf42pp1lMELWkxETpEbUw0ukv2VRHV2zzJJFK0BUBK0%2B4KDuPohEjjXHL1bcH%2BZIGlZv62K0MNQe2unVtZFcZzsN2R%2Fe%2Bo9luTbsaDZuCZUP29sxbitcWFpZam5FoF%2FeHwf%2BohzWCXl74BzIBfR2hsy%2B7e0EhjP2LFfxn2uVTv61UAetOSUVG88Q0mJmraR8dKGrc2UmzMRe7qe3ITIigS6tnRPWwiHwMu7j13kK%2FKD03w9ZFdCfAsoUhnSOM6f00mZd4rmLD5oMDZlJw1LrDV%2Fjw6N3U02WYdq8d9sNl0%2BDj0LHXTr%2F%2F4SexQaNjEXlCRmGDTo5z4aCaYEYF2J9mMM6qxccQLla1GwmWOvlDRqINLTd6aClPfE4KWC%2B1E4MBWZsuC8qkShzA56RiN6OYOF0waMjfCQY5FWFhJAwSqJQRw0LotUB2uf3QbbH0G8RgJkYdKz3%2BMKZElPWQ%2BbuXaKTRvaQorbWIqeuE%2BMeBd3myEHqfRJD901%2BfO%2F3zE%2FtBPxulcJsg%2F8CEkd0UJpD%2F1JhY9lcWDlyh6YP2bNKzCLdvCITJUlrAUrXfmcclZefGntoUxXZZdxxBqAFLfUQlZajZ02HXtf4dXqTitVynf2EiWjMmm230Sl%2B9mhdHwxroK%2FZ0XXNYPsk%2BUETovz3NvUT0hr287D9Uu6%2BOUOxLhTCUS5kX%2FOu3VamAWYVFTZ%2BYBjN0Ne2jw1QdBI2g2XDVmTz0s%2F0sUZTNTot%2BlNPqwS3I2MNKlXN8fyu7E4Rla14%2BMKb309QbDCuY39rb09GxwTiBscKHx6CPFnTbYW8V%2BBVDso%2BfOvPBZZudryW0xcgFMgobyqQyMsRbDA1d%2F%2FVUzEenKD027atgOHiwMReFDQmWOrlDRqI9qWPB3J%2BAilnBGhbdJzFLuyk4ghND9f%2BpIWKrKFOYbnQ9QlYxMVO6K7SfwvwgDHI4qIVBApUy33PkRdbICpajth8UHqlyyHIU8j0cdZiYvh%2FzIJA7mZzdC%2FxIG9xLCk9Ne7fUdRa2imZatNd3m5ULn%2Fp6wWOHj%2ByvKEETd%2BjCbkaEb9JgAttvFtOe1JiYAIICXubB%2BDQVP%2BYsorZvWhrFF0TXfucB13zKzq09dWdxi3PHcXgCrHGeER8QBsQMNTsKm8zRa77R0dNnZm%2BUclle9ZtzZlkzF00RY5ewioVWwLLk2a49gNWW5l7k%2FuofG8H92QqUxb7s7mU3L6hZzoHgX7%2BtwTaxkfemHkXtvVqyosadnaq9%2BtTmM8IhWmSxYHajuM%2BtIhjjXcJIp4voGZUPZTxi2coLxoQpUftp6g3Gk8Xuzm7Lrq0TGCt8cJSd1M%2Bz8I3We8eQ7NqBIyfePGezymN20PyzJf%2FgtzSA%2FCAjZQyRDyyRjE2yw8ufudiL99HZZiW2E1h04QJVxWZOFtcioISTaEud9Mh6B9uNjNhqIpAIYhYM99g61hPt7eDZ9WSsc2JwPpCbJMMWJQ6MKwv%2FloxiYqaUXoEczRuEQQ4HteiJS6XMd0dUT1zomJW7pqqRVeX1lqaL1j5x%2BUxwH5anyuW9dMx%2BLymK27yRTjdmeEe7ZTMtmLodOHHmEgqM9tWmZ%2BQeU5WOIrUhwjepMJXbiEkngHgqUfaXwNsxPqWxQ6RKCDEVqW11y3GVPy%2BuGxYugWGYrYY1ppo7nDtOaZwdA5iC4BmDH4hNEwhHzUHnqVOwOhX3K3AHPP0zyyxSmLZcD1gfmW6aMxXAal9zL23wz0yAN%2FoxVnjg%2Fiz2ZXcvpxDOhcO%2FHkXae1NVYalR1O6rJStqummgj9fTTm22FowRdJECLqCsHyigHN2E8j%2BSb6LH%2FpZKPulRlB5j1GaMGrB4VMq2hGmJzWZ491t27Z3AdsGqYARUO9pVibz%2BxoYO%2BgzJLlenDx47%2BfZ%2FssRpYHPBpMvuvkUG2POCTCm0A5WZmE3%2Buf9nh2qys07livZae7lh005YiJPqcHF6ZNgitQOZJtp8kjaMjHedrXZ8de3r5%2F%2F%2BN%2B5lJ8%2BGItMXYZWkFCG2afbgEFeW%2FbQyjImZUooupGheVgxLHTKVMqGqSqVsEK0DKWhQI0sk7sfZU0vNS6LeV5wqf%2Fci6331qZLZkktVAJ9k1k5sXwz%2Fc%2FrIKbPZQSvx0ujzGEsivK6t8FKbbhOTuXrzmHoHU2NSySy56otB0ZXA2zGfYZnjg6StBc%2Blt9Utx4VFKS0u2DEtWwuTYMMzbSAqqkzs2TM15l%2FSSKQgpLbe%2FAq5NR01y6UhPxFFsY3xR%2BZ1nrJPaflVCCquH6zL5wKstjX3GoegBylcuH0qox%2BXABDFvujuZRTCaKCQ%2BUOPIu24LwY31yeOovZfTVs4SEVNB2SOGHl%2BwfaTlMxVFZmNjoKg%2FrKf%2BHvNGyqCzFW5pOPEqnlueoxw%2FmkTxgaAtbiD0xgr7yy9dr46u6KoNEJnHYx797985e0OR7Ktadjo1L4jJ94wi3xpaNAUyqxUfQfzgUwHjxjyp%2FzTQ6JfhJkq4iE3tNfaxrjcHrFhEy1qhXxLmU6kRVZpMzIS7efLBLLBC8ixrPh3fYPfEP%2FV%2BffeNtrKsUrg2VBklsaHv8dXnRXuUi7HuLLop5VVTMyURmJHr6JtYKmyygJUz1wI67DQV4rJhCHuRjWyRMIWnkJjD3iq3penyt%2B9iHpfdarkY75hS%2F4SRempaa%2BBfiuRqwV2QfYPscOYKu0s7cUdirol3VY6lQ02MSG41DwmLNVpMXEPKCtF1aAAIdSzSGPXQD3A1Ek4slqPa1NaXNifOTumcl1tXtrlamVLVbyksi5FSuxLMW5dCUcEZU1s02G3dDNRisLNNsBqA%2FcXJp%2Fe4B9unxsd95dGP8bJ4cWjotjXWYInKITz4fQJJiUz02J9ytLVWAAKpsv1AD46f%2BhTnHghbeLOpidllQoHONYFsJjLliUbQm7xDvZipeLSwZEdMoICdlqMKAdoI0ZdoY1HpcQdIq0wUXIcOtplOPSwq%2FChsw4yfmTgUcmR7C6jsDfm%2B9Omvbft7ze8Y1tRdR3PFzIGj1TIn1aY9Is4dWQ67rYNWQ3S8BwcVDfwvpQ6QphO5BAZifYLV3pjFGMvMgxHpw%2BfeP21l48enN5dIs%2BOKTK9L0%2BQIqgSWyS%2BJJ%2FLLCZmSsPluZVntC3I3KUOOdBPTh%2BEz2k3oUZWyuSpZ8BNYMuHfI%2Bu9%2BWpcncvut6Xp0rVg6QsU7sopa84T02autUO%2Bz5iH5552Tz9ndEk7hDDTNjsRIpoY3ilwGQu2xQmRg1SYtLKX2X2wUHBBI6eRbSjJndxcoDpk2QaF%2FdnbuJFsDkaceuV3%2BuqhL6Q2FerlQr6V9JdxxzmHEGMU39Ml3HZqwuqalijw22A1crC19sl90f7XmHyyd0A5UC1Q6%2BC%2B6PY11mCJzQpy4nTZxSpzLRYn7J2tfloYOKZLtYTiOv%2F0H%2Flr%2BjObgqThGdmY0G9lzE%2BOeiDMAz8YaUJI5vdZQTs1BjtN9uJUcdD8KiUuEMkbiarfnQ7Y%2BJ%2BV%2BHT3em1foV166zHTgHaG5MydCR7c3e3SSAO23a6rx4z1GnEfEtx7Jwg4%2ButgkcM%2BXviTHZ85gQD7DGq3eElub%2FHwaFbtlFrqy11comMrPD5%2BHaCnGyE8ckNBsnu6QMvHdo%2FPWk2ZAPk2VRk%2Fku30HYoJyKhv9I9vrKKiTAw0qU7pm6LInXIpJ9yOeZLEAUdc1KNLJkjqDdl8tzyFWmQDlojTpWre6FSY%2FZ7SVFau53COWhpkHc2D92lAxCQgoT8k%2FNu122lZrxD5TyJnVN68k9MuGxTmAAmNSZtPQAUTOAwZEUTXTGLKJtnURIHIGKA6ZNkGhdedHQGHx11hj%2FfEnUpytgWY%2BC5MemoiV42or84BodLOKQQb2tYg22A1UqTz0XLHqFYs8BNAL4j233ZHRCMfo6fvgjuj2LfhO5eOXP6VJlpsT5l5Wp8QyGl2UCmG0GYC9aMQIwVNGKT6Yao7hgZBf3qhd%2BcdTR5Z1k22hU6QKF3ELDTYQSbagPGhHiIv2JEcYdyQpiqRiUbD3DGxN2GULugej9Huyfd3ZtsRa0n2YO2dGjboB1Fx149cWTGBk4Vx84PMr7eNC3nMxBkD1P%2FezLA3i0C7E%2BGGu9EP0376BEgzSUyPsnamKgXQ0Y5KJPtrDxcrtYmx8ojRopV3BB4NrKyT2KhZbd55f2ExBfBgc9lFRMJMyXtoemAmDZ1S%2BXfcjlGK%2BUWwkrl%2B4sPXSOrt9pkf54bcx5HVST2OA1qZHN3L10N7iVVuS9jTsVgpBNZdQBcdraEZlof%2Bk03iDbHkqg1ZbwnPfknpvK1wlRJjYlpF9GmQTVqTDDVUTbPwlFTDjARh8BJsooLv479mVfZWMOfnidUXYoFIvcW9odJrmPuOptE3gJpsbS2LRrW5kIbYLXS4P%2FhQl2saTt3Oe7P7%2BiUQN3o5%2FzHbAWKYt%2BE7l75cvpkZlr50t6UlavpKR0aGrteCHE99XYvn%2FkQVhJ4dRnsYTSebsfv%2FZ0TyAyifpQrDU4Z0s90ABaLeCqMMAFtE8bkCm36nGgnhKpNUJp4QE9XVw%2FI9aDV%2BmHPD7mNNdQs9jmSbVKHZg4pWI40te%2FoayetwEZx7Dwh49SP91oG1smOC%2F71%2FuCzAuxPceEI6XaZ5SBjFP4aOUKmZ4XaZIiz4V3HimM%2FfHeVQfvYhkxl9uZCR2%2B%2FdZ2OWzJwoVWVdvR%2BQuJLgMsuJjIS%2FpFlHg9nna2l8s0%2Bx2h%2Bh5xNFsRwn1xM7olLl7KYlxgmIAhIsNrz4YtTzal7SV%2FuG8HrPwqDKbjsRGimhSD7UyTaGEsqpck7FHrxVOW%2BbcTE%2BBf3gEofUyknmOrA5ll42gGIHGAkldKBtPW4yp8T1034dTwUJzTpG9j%2BzBW8WrQi4PQyGMh1cNex81EoiOHWJbHtAY%2BMwGp9c6%2FB4RC08XXN%2BE5RmHzOZvTjWoGi2DeBu%2BTQ6RNPR77y2boaz23NpoXOBwOPEni%2FusCWIFhrRqDIWNgNDnDwSxccCv6cCAqMh%2FQzYMtFPC1Gd6b2YEyu0Na1GiECHO38jrPKNw7AA3VyXa5YSwCj9oPeb9izcBjqVMq2lNbVD%2B02TXVPHjtYUxw7H8j01K8D6yGDg2dw%2FrMC7Bgc2iK6S%2FppSjf0PCHTaYlaLWxZu0W7641oqVjo7u13DSJ7e7psVbZ1ncZ0bRWZG4Pti660066aBJddTGQk%2FCNTZiGTXLqlsv1Nh7SfezI8OAYZQsInsScu7XaYc8SHkMkXC1QVilPl7l4qCffSVLlvhLxRkHeaIDv0zoNPkmjL8Lr2QhV68XTlvk1jAr1LiYkDi1RY62Mw1jquwlRHaM0xFYkBRgmYWu1ajct8Pz0uvpkROy%2B7GLNxqBulckEYWfD0%2BFCGmuYYGS%2BHghhsXdL0h8sErNZzf9WesYPfMZSfJp%2Fe7kga%2FXzywZtoBZqjYl%2FGT1VVu3LhwdORr3y2rsYqLp9IDq9lB7%2Fy5VfoX4JhZ78O0XI10t3PXnJVTyW7tqiNhJDZELYmFmkwdrUPY3KFtsjy4SluQBjI0esdzk%2FT22eOhMN6g004%2FU0w1BkdhnPYSPXA8TfMEALHZu4sZ8jmqTYxREaZPZ%2FBhw0C7O5hc3Boi2jtp0l%2FjTwh00R78kdRGAIIn9X9Rwa80LS32y4kPV0dfpO2y7pOe55tk7HYDzeotBPVRAJcRjERBYczeeA3zYdIcukqC2bqJVPmg4uEGTeFWkILqHoT8hRB6isdM3Evskb2mt5L1PJ7AWVpeC%2FNl%2FtuIe0OnppwOjGjp0phPRX10vcTdyj04unKfZvHBNafApM2rw2iTbXDSW%2F200AJprfVrceFDW5qXLIk0jX6t9KTXdHEXu4muNflvMKK8KeEoSZdrMuuQzsnAVb8pRBwEBYu2wZYrTtuUdxf%2FSOCvw%2B3BcLo51dvnziIVqD5KfblVlVVtSuBH56O9N7M0NU4uZEQ%2B%2FeRXzFuV4%2BUu7VhTJLj8ME2u9TU1MaqMd0vBICSlAO27E6TP4x63MsgsRZ9b%2FKihr5%2BS68tlx5n46xw7PB%2BOuMxQx3Pj3o2FM2aZKpn3iLHZtVMTpBpM32FjDEzvt7IqfcjDieodqnE7rvCIlr7aYpEe56Q6Uc59sKYaMaBDsM2zF63mBg0jdhcEMnKs8z6YXdonmejLEvavgRBoaomEuCyiYmEmcVRTLmwYjbeFkVUWSzwShkzUQimrBo6iw5NDESKxVebY%2BoPyuThEyNqZK%2FlvYCmtvZeHJIG99JcuS%2FE9qTdbqKnp6b1axuu4uJCUa8Kcy4IvXjact%2FmMYH1p8CkzWtVMyxxwmRTHe1pp7vZ6211q3GhPXRqXBwi0qNv2GQSSxOwBQxWw%2BElRY%2FssSFlqOlCXEMuDwlhF7YuaYopJSxctv2wmj84LsD9I2vV5sqZ8Q9h8B%2F%2BoY1%2BTh6ZHs1NZ18dP2Xco6ELj%2FbezNjVWJQSN44ej30lLRxwbsZ55AdGbp2FGxPXQ%2FufF3J66PnA3IUDsJgX8oMxuUJb%2B2mas7Nv1DM7dg6DXg9bXx009cZR3OL9dEZoqFOwqhonoVvX%2B7SvnbccG35Zt2O3lwtk2uRZB9a5mvD1dgH2ESMgIbcm1Z6s%2FZEQiaTw08wNMo1un33XqXGj7WCEsEupUnaPzzws58vk%2Bt8XwLMhxIzELILTJXSQyiQmXacteS%2BngAYqgjusMbfTRQjzK9VquizcNZNSljI7iaQkPszvMX8va2Sv8b0UW3wv%2BGaje2m%2B3Hertc%2BF5n7KU0l4ag70mtGjbbQ4skJhzgWhkWgDJpD%2FNJgYhuDbopthkV02NNXhQio87ciuVTd7va1uPS4DKC0uDhHdn56EGh%2FC%2Bg%2FZ3Kg2Zg01q2hZD3Mdr0d0dBUqGzzbFEK2NsNqvcH%2FyvWYr00BF8qZO3y7L5gbRTD457aARj%2FmuHTWFvuabcL6pM6%2BuXD61C485Izi6WTpalQ12%2FEY9O2YmPCVsHBwM7oW9DL2HtfUfHT%2B9CuHJqWcnso2MndQdsSsMC%2BkxVhuB8b0FdpK9L131JBn0msbDO3p6jQFtjy6O52fzva6oc62YpdR1aCSBpvpM2%2FWO2UsWwRxfY6Q8fUmsZOB9SvbxJgA%2B9EXYT7LVRii2xfHREwzhZ9mbpDphXe6Bk0CVgSIa%2BylnQRruLwrKvsg0i67T4MnU4xnTwXlNt54hocbd5DKIialRegUIgf14isVgatptUOgl8xR2scIS4CxYJCTlLLkJEQCjw%2B8QFBEixrZvN0Lz6TvJUVpbaVhuS9ot%2F0ZWVq7tUiirUvhEAw2t52a%2FBNT1E5M3ITwTHpbKhM40lQnqd6X7BqEPWGr3zpc5c%2BBSw8RfIw8g90tDL%2F5yorm45Ux37N%2BCP0raa7T09XtuK0s5f743H84uPdqwqrth9X65l6W13O%2B%2Fr4l%2BPT3Yc%2FfHlfihW1BLRj9fPT%2BKWf0s63w8Nez3Nk3uVOStKDQFgwiL5OlqzGeE0VKTo%2FByDVCeJF4CLEf8x8Fqan5%2BO%2Bgv1FyesHcQdlxZswLaTBiBLUPY3KFNp6REn1P7q3aDrmg193eV8cwahxu1Pf2FHpoqGNC7F2so4eM7tQ52yMbIwm4coSM6VESOxFYV21iLp19Fds1cssJPxnSX76sFt0EP80cIdO%2BmjMWWXAb92F2PIgNxW0%2BPeNiSK5Ao8d3YzBPDDz7R7Vg%2B%2BJ31wXMM7KDlASXWUwEAZKj9FZ88VWVxT%2FwNa3mak9caX5VVhWkfOw606pTlkXheYQWhfaOpDO%2BqUFi3GYO3Uuact%2Fxuplb49LakUl4al5Cmc0mEm0tiuVaidVBWKOkKEG%2BJpiKaTFpwY4s9BNcXnVrwBnFQqrrfWXj8a6ErX7rcBlAqXFxiDCNzXcczEVsIyic4JzuyfXAVnP0wlyno2AT21Cxmja1LOVOEVbNAKzWN%2FYtgfvDxZ%2FcX%2F4DmwBbBhiMfsALEBXMz6GbUoj0qbZgEN6bGboa4zmOyig5PQejnYz5oklBfYFzfow6w3MTPbQ80Zb5YcncdS1tKoyYfNqEMdlPk%2BIOTpBB0ThRcm6HNq5u2TV8dYZG3IF8n%2F3fPXVDnZLYYW%2Foc2Pq9HunkEMz4noE7HKCjK83iR2XDOVGVLcPdxZNCL5Bi1v2Qs%2BqBc%2FkqUyVJfhp5gWZDi1NHpgU4hoXZq8nYIsbCr2uaNseg86ayYbYS%2BOm6Bb9WMaqkyIDgZgk41OklhJcZjHxJRc6d%2FYLpt6KEmLWSN3%2FDxh7xqothorUMbNvUeO1F16bIoNKBYlOq5IbIW4zd%2B4lVbmvp9QYG7q01iB3OVuONz%2FD7y033h6JijhBP1OUIDeJiet3akwcVkIfjjMJLs9BITw%2F1EIqzR5wSjzQwNRVmL61uHyr6%2FS4whBhbx%2Fffm1kSJAjFdrDebdZcm2z2j6tTXcdo3kdjeptalHKLarhE452w2o999cu%2FmzupTcBzujn1Pue%2B398nooA6IHzcuimFNKFR8tSxeDO0tXooD%2FBhhpKTo85C1VcCA1xc15UfprQkLi58Pzrh2v4MuSHFXMf07W0aTFiEWobRt36bgUqtFW6V%2FpplkwTLRdA7%2FXseshX%2BIxX%2FFGdqPjwe91Qx3VC6qv3zuvbYPmUraJB9UzvWuOaBRDZR6bTo7p%2FLl9B6mIYW4OBWh%2BWZVfgF1Zb3h5TZQl%2BmnlBpqtr908LNx1vrNbrBZnm8XR0WLtWH0PyTRmGR8ftVq2A1lolbJQpQpWiEFJLCS6jmLjsap17RwhHCglxiHYbpQxiz3gscqgwEAlUCQY5Xwyq%2B27xgcwlv%2BLGL%2FTq%2FOpcvJfkVY7R9QplY6q01j75E44EXj7n5%2FkN5if2mM9G26NyEEals8JjuqN5TFy%2F02LSCdty2APLTj8YFMpUR7fLAd0MTbjFAAMqQSRajAsW3ulxhSFS45RsmXG5MgZCzeVNVBTwlQ2OmgPBXceZ2TkXAt%2BY6oQp5VbV8AlHFmC1nvsXgp0%2Fm3vxO5L7nzxrB4i1wzrNWsDcFPtqFbqU3jB%2BqmSpYnBn52ocvDGry9nk9AVO6YxsbO3BbB8mQ7qhMQvqpXlFpg%2FsTFBUzF37AHwejF1txahb3zHEwk29Cr65n3jC8%2BtBsGtDrstsozXkHDUdy4ahzo4R45%2BFfb%2FV0m3o9fKa%2F%2Fz2Cb%2BVXrP07nn5QkZhA7X0SmYvekRSVWsfofCRaWzQwlRZgp9mHpBpI%2BmZ%2FWOBYW%2Fs87uvLldXa%2BT0dgu3oaPTHvV2zOMQaXme%2FWyJ9UMiOaHsyKUiPJOYdFPcBuFIWq2IrDmc7N14qESawzAyp3I1XHtVVyz2Ngu9CYW4gZJ%2FipnBjebUvSQfoSVZT138Y0%2BtS2sR5AFY%2B%2FNWMzIpQv7YHoXcSIck2kmwdLqjeUwAkx4T3wIGZrgHljG6BNcAoUNBgpvFyAyOySwSiUTrcfmTpMdFlg1R1ogzmzERckwhuF9WFMicd8xRcwjuOljrho0LARtTffCJ389eZWCmZbCiUgpYreP%2BjPKzsW8HvD03bwz%2F62kUecHgn0Y%2FRh0rXADzdND%2FOzal6poqylKl92aWrsb6PLrLajm9DH3HpJxhUpSamnFQabOa2IVEbOfrH1pOL2ppc4VRH%2FPrre9EfLesgm%2FuKX4L%2FLo8ZoLpZa%2BmsYJ67PlhtrnLG%2BrYJiEu67eR7rlmYNmg0%2FteRNe3fuVn5dFuyRQyJWxQWnrK7AM%2FsUfcUT8mK9katsSa3ci6Ru1jkRtkuoVk7cdTuJYtBKvvvlz5dRSVnHjLHc6eSZRnW569fWekHPqwdisTeaEIzx4m7dAa8jaRrpglYWaNFJzsRTGrSPEE2t2RnKu5NfDvmERmtl4iQSZ%2FnPPLnLqX5IOpBbhlsVC8R5fWYriB9PStrwdYY4bzQh8Gp3kS7eTxpdMd1wpTJS0mquJJhaXtX0QK0MFBIRcq7dckXglWH3F5FFkkEInW48JJ0uIiy34e2zC3%2BPR%2B59mS5NXKXN86L5WCoybS2qy0HdzuXAjYmIrd264mMNM6WDsSYLX6%2BOLtde5fN%2B%2F%2FPrg%2FLD0tvYi3%2B%2BqlwX8w%2BTS%2BGOz%2Fk7tjfgPxRJhSKwnem5m4Gov1I1Jp7Nw3xCT%2F8dA3F1sEgDBCIchhchShkKCoQfoA0fhZ5PSiljZXGHWu%2BM4l3gIXygUZ6sGKzafY7%2Fg1DTVdHa0r8PFqP7TZMu4oJSeI7oORrhtjrmlgv%2B8u8753mimaCpqbE8x5s4JMCRuopZc50YrogDtbgN0%2FUeF8ztujViTBbjovyLQqoXpgpoJrmUsXOQ0Xt9lS7F1WnYVjeMS47GC31uej8E8PDGmHPinjZU5RKMKziUk7tOquT0x5kZHAa2XxsrXksig1ZkgA9drCRV4b5DToihVTysBzgB%2FsTUiZPOaXuXQvCYdOLYzHKkYSSmsNWBJtumkpK10OMLG5zgkmtnnWxaFiQ4hBoRYq5dfkT8IibWEhmDDaW4OLJ0mPi9P0C8g1jpaMeVgnyYEWSBdpIDBZtY6aE3DRR1oblbZGj2hcCOIxa3QPvYr9bAthbSkmwGrVQd3wMnB%2FO53DdpTcP8ngnyafJhr4ODr%2F5%2BvgMKIQU6VkURaovTezdDUqdLGaRJwWNqH%2BhgsGq7g%2BvfzL8zTSjIJY3hNllkV5ESQVNXzTcQHRmIudyRhzyhNGPTwWLF6x1rnaMrDOUI%2BW2Vv27JN5dV%2Bdbmj9UOhvfHZsif%2FOEWuogyao9eyajTqt7x10etNfmFzaVMn66ixZeEMjZF8z5rxZQsa9bSObDm2m757vRQbY%2BXzNE4UXiVhtlVakod10bpDpmWH%2FoSm66XhxTeQLMPoG7FOMdlV4GH%2F9uk7L6%2B9%2FH1OKEJQLGS9zikIRnkVM2qG1QVNcSSYodfmdeIPZvVKpLX35qGOWwRZNHZlzJIOUS3%2FoTQiZPPUMc%2FBeksNQZZFTQOQmqbR2td0dWdSNG%2FxygKXYXIt0R%2FOYKIpJj4ltnhUjZniKM5Hq1pAg%2BfcnoTdewshqFS6cJDWuuDLiR1PoIbjLtg1RBcQBY%2BilNRGVYi76SGuj0rbbOeuUSLJtOcfJlxz65Un72SzCav6gblhwf7bxjfgdGvzjOzD4lyafRgecQ%2B7Pd35CRfNET%2FgE7832X40VjVXW0lKlF%2BpvZOOWX587%2FfNTXilDTQ02rJgDwJvtfOg3pGFaGA%2FzDl3jhMccYk5pMUbtxKhFP0vXuGrXH%2BlQD9gMKWS1VIpc3ewOR6%2BLrnUW63sgs%2Bk15r6WF5VMd8BY3%2Bwen4juKSDAbprK79ttaOfaZWEO0MjsmMwSMrJFWbre2Ewfz%2FcvfICdz9c%2B0Su3xElm%2BjIClR9kKmE%2B%2FdJMBW46to1Wpy%2B9MrY6BbtSuAyy28e5DE7%2FFlRoR9ZYsxj0GrrpjGwgIhXhWcSkrZFR6yqb4oKOaUYSrzgds2xMiDVkKwzqmBsGW%2BxWG6AbKmWkOeZlIZOfO%2FeS3uSfpbUQZH5Wae1a%2B4tjFrVopmsSw7rBb5rNNTGZazSPiVv91JiYTgOt1uUwYibSCRy5gWObe0rrhcI%2BYbS3DhcSR6lxsSbS2AtjorE1sc8YcoB1Xe0m2EurFMj1liIcNeuVtv3OWWdqX9Cr%2BHXMor%2F7tvkJApuMwmqe%2B0M3rIP7KOoC9%2B%2FZ5gSfaO4Fg39p8mkcQPLG%2FTkjC%2FNkTswymyOk4nhb23y15FpaOCXYMczoMIQNNmdz7PDRn7loedDU7EKokxbnyIQemgrxdmRKe9QSQtRcdlJjNFdpG0a9YixZ9bitcKlNKYp3pRta5Y%2F32LDn4IAZ4z09vZZd7zC0CFo%2FFNg6Q81uEzC1s4cdaZZGQVniPHQRYP%2FVuZOGdqolRCEr7c0SMu5tK6J0HSi0mb5l2O75%2Flv%2FfPlg0TsRqeYEM%2F0EY%2B0MI9Njw%2F2RXZi9sxcVVmbmtYZwLpze7R7eIKJI%2FeaBdcGb1au1nrT4dI9JIbvBDYrAXRYxaWtkSXVlAkaXWMcrTidDXaQsYmQARsvsb1XEKEkpI80xRf5%2B7txLYgjqS%2FPm3RwM9WPRdUzWKK3lFWRp7WrnLYsgVQj5Uw4qblFsrq8aU0%2FzmBhDSI%2BJPBK0WpbDMHST1K0BeQxRlRuTNAp3CzWyWoyLkv%2F0uLgFqf24honGSlFHRumJFR4CX12%2BH4JcOwMyVtoOl6Lq9MFjINluY4cM9kMP3LforgUJ83NGYTXP%2FZWwpwMubtbODd%2Bh%2Fyebe81i8rkQO5V8HbpNKidmDnFG86QTdZauxopG9M6VtbSz2Oq5Hqb7atMHXxKaGk6BYNQsp7VMmUp7aaLZoHkYlp20GLcX24RRH27FsCHw0oSieAaFzNjstqWP%2FTDUdOHQUoSu3jhgqOmKfJBsK6KpxkbbPc%2BCR9b5129DbgpbnewjI71RpevYcmozfZflxPNF4Qaf6PdEgr2xmX6CiV3mkemKxJkjCC%2FRW23QMGnY6nR1Q621pWjWE0O80ZUNddp41%2BOcUDbrZG9%2B4XSbXUx8bsyKqo2WJsyWkSw1uBngfT48sRCvjTAJqaalDLZop5hAHUN5KEGJ3oRQFSJ%2FP7fupTFFmn%2FbHV%2B555577ovLlGjBwDQtrocriNLalavRT4sVDMpZn7comunmBBOrvrGS6XIYZsoadGuQAjI8vCtVJ8LdQo2s1uIiwU%2BPK4yRyZ8cqGKiMSnEialIFlZBOEBw%2Fll8S5DrHTtjlbbV2syBIyfePGdI9qcff%2FTRR9jYFdeve3T1quUPfu3uBJ7dRlit5%2F4U9qB77zgb%2B8p2X2zulUuTz%2BQ2qcp4H9FURPPkVjVLV6OoueJ750aylpal%2B0VkhVHOVBqdfkloajAjugFcjJfTTqPDUcxjB8Ia1TwsZld1U1qMleE2Y9TUpzw6NDQbxasE%2FA6EZUIb64aaZceuy%2BjqzXJIJ4r2u2kY6brz00iyA%2FVmf8eV52sL8oJMm%2BlLQRJXArG33bfbPV%2Bk3CnC3VkShljjCWb6SpCcF2SalU0dOuTDS3RfNqZytNUxBLuny5dpm5B7MNfxDq2VieG4lY4QwcnaWqFNzi4mEmbd8lUkYBRh%2Fp9Y3WkkBj9s4I65wSJIbFrK4UaxiJqLMMtwepGqwnzdCz6S7kWPsHkL7lp03wMPLTcHZUoQ%2F8jeWrwer8DS2n8iiTZLTxkpErcoMmt5wcSq76LYA4tJRO3hGKUSgWgAx86RCW7l%2BqpGVitxgeCnxyV7ixxxYvLiRjOF7Cw9B3odOAK3JKGGaNuAINeu6Xi1Zo7p%2FfsPHD72yqkzH1z%2Brx9fuvDeO%2BZwvGqbk98XHluzcqnh2Q3e7UzDap77U9iDf%2Bh2X7q5V75NPnUwWkbzlHIar6u07s7S1ShqhnqGgSFdSyvahxlCd6Aqoj%2FIy7OxERaCSXybieH%2BHhlCYcIUIxqo02I0J2wTxsYGEd%2FDqqj9NIXM%2FomeYh%2F4dXUsKnmPMdggwgjR%2Fr%2Byq5WEg64Tksc7p8JpDjEABNhzgkzvbcPrPRFrjij3ts9CVrIl5qk5UZmgIZay19Zm%2BtoNNy%2FItB5jbP%2Bfu%2FBSod5z3VfPsmzDPTd0aTZl3DTXMWx89w9hasvamJCV1rW11CZnFhPphCTMe5Rdjv6TxytOp2rqiQXNpXhiarumnGKkYKYrNBEXvQlhUIy4aL7uBedJuBdFs2%2B%2B46tfe3D5qtWPrjPHelFFUJS9tTaG66GtKUtrV%2F1j%2BweajBo3%2BBXbI7G9yTYmHRwXbjoYG5xE1B5OJnDm2z051K3syyYT3EI%2BK0dWy3FB5J8Sl%2Bwt8lNbSupmkS1ulDDQQlSiLKE8NmSWMEGuZ%2FYbdv3S4cOHjx4%2F8crrp989%2F%2BHfX7743pk3XjthDzO9h67k6w3PXnzn%2FAay9ezCap77R6T8Msov2n2VVHOvvJt8Su%2FlzzTeZzRPWHdn6mosJcb6EbwMZ6%2F3Rb3Od826Dk0NAyFljHhZTmtnf5kYZntdiCZxZuUKnRZjZ5swNjaIeEZya6yYqrX6ZlPA4ww1Hb3e4TzGfEw0tEByhjr1tn7jlNU83Vv0bhOd6DHzd17914fASi6QcW8bBKPy9ZZm%2BuQnTlYSCU%2FNsZka7kHYa6cw088LMl2JOX3ELDDDgz4XO%2B5XGquiR1EtMja2W5uz2aS5Tnli6oeg1lh5hAhV1dbSqC%2BLmHRTRLlbI%2FWivaX8kztZe13oVxPjQY0YIlBtVfhHSHSKqQhRIagj4qJ5uxd7noR7UcPr9kVLHlq55rECLMS%2BQ5N%2Fxn2p0MT14Cb0Yby0dpn9A7mAKnkoG%2Fyq7ZHY3lxHTBz06TExBUmnWyAR9W6YxPUeThlqcp1D4NkhRBiaeW41slqPa3sxPS7ZW2Tq0L8zM05pyEhRv4VSNiamZAUjwNXGKmOTglwfO3HCsOuf%2F%2Fznb5x5593zv7z8yeWL59567eWjh%2Fa744Wql7s6ezLDs1csuadBlD2bsJrn%2Fqjs7Zg9yh9v9zVQVM298m7ySR6Vwnhf5KmyczWGlfY4bwQa6UALqup9mct1Vh5SAolZUJbTujAJ6LbIdXOYI03MxQIjOl8YZ%2FfDjvs6o9xL%2BaxVdj41aAp4LL8eNvTaVdd2dfVYtR%2BOLUWruu9HA62Ck9lBVoMtDVyMLMbfXHwL5WZYu7OOjHtbIRiVxe3STJ%2F8xM6pV3pqTlveokrjU5jp5wWZDsoaXeWR6XoVVqniBDQFZG5KUQXHrsjXaZgVAuY6Uak04TAyygYuifhUQm1t5jBx0%2BZnRe7W5Iwh7S35J3csG%2B4tf1KTEm05YhKKGHWJrNKNFzHLKKWMpUZfxa3k517cuZPuRZKJW%2B6%2Bd9nDj6433k91C7ERZaiPCAwsGEQPMZbWfn05mukWRSEDPByoq05optt6TBj0qTDpTuPctQEJBwXfAmwB5QnxEIWhJpx%2FwkdFJKKkr3WmcTHX%2BPJrR%2FdNjQ6bSjTpyYxGjRRtokjwTwxxPnQ4Tq5Pn33HsOsLFy5cvPTRR58Yvmo49rFD%2B6cnxyrmsJz8h%2Fv2T9eqLk%2FZ17N21dLFDaTrWYXVPPcXTN%2Fl%2FKnulO2%2B2NyLBv95NfnU2S7GSpON95mnytLVGFba44vMy8FIhyNa1vuiXsfMdp7eBCodiRJH1kGZLyF%2BYBidi4Zu2oeYQL4w6unQ%2FyL38aI5qRj6UcUKHsYrjl%2F3W3rdbQNOA1D7eTMUZ6gjG2hRt1S8ouQMkScsudlHxr2t8sJoZKZPfmL1RC9NS%2FXxZE1UMJdTm%2BnnBpmu5Jg%2B4iupNqNJ7rCNAblqbfPIXBYZztGDtt62AHOd8tCzbmKRdXrS4Sih3jdTmEiYUSUkNDLrBGGmvSX%2F5GsKYLY2XfWva0KijZlGdMTQRYyq8EF0g5W68caqH1Cj3NyLVv3oe9HEaME9X1%2F5SMFWervqIXtUDfJvGcDaXgcfNNSPldb%2B7urV6KelChkicioSUNFMtx2YKikxMQpBpoiL0giHg4JlbyqCoFQ%2F%2Fqkhpcb2bKKhpazayDgu5hpPnjx2cLpqKtFYZeV%2BWaKiz%2BpLhly%2F9vM4uf7lbz6y7NodsG87NDM1VmaaslSZ2nfopQMzU9a6oL%2F38TUNClezA6v13H%2B0buXMdl%2BquRcN%2FvNr8qm8lymhTDbeR8Q4Q1djWKmKsjqsDSosicHLeh27zzg8TTENe54Hd8MI350YHtwel4oWnX6H%2FXRRCQQdHxeLHGBMrM94Spb0MIghlJDVUtmGPR2%2F7u5yjpqDdigzMOoUNyZgym4a3fDRMViZjw4We%2F9VJNvzgYx7W1JssalVVtHgJ30IsNvHxiJuYWeOonBRJJlgpp8TZNrDaXB4975jYNrWfGnY2%2Br0FV0jNrtr80f%2FVue0A3OdyHRnEMYakNcL39euhHrfzGHShFkzsFn%2F5Gtiku6paT6xhpVW2h1T2OqyRFa0rmJzLKX6gSAaJ8rbvZiPhHuRoYiFi5euWl%2Fc5iq9J%2FbsNRqH518wvVAHtw86PX0RYXVVUAxDfZbWbugxviiqmW5ZlUhgfRCyuqxiSq6rlbO3LD6SqvjGqh%2FIauQ32dBS%2BVpnFRdzjX7CeePNE0cOTFcrocoK5xCoaEH0zjvv%2Fa0i13GSbUL2FWdRgAIlM0ftnj745z813Ltim3b1PKJpdmZgtZL7U91Py%2F8I7b5Ucy9p8J9Xk09NxymhbGy8L4r5s3Q16hqYRqYaUaTtYEccpnS3mXUDsChoc0eIAE0gPFTeKVrCYNFQ%2FSCFiWbeMGq05pSzlPR0Kpn9Dyasl77jQ8UtcNQsO73fzH53zNQmx8omYOoC625jbbk1A%2ByquY4IuOUAGV%2FveG81u7kjGLz5am9rH9zMn9ZASHBdhuV1KyRAEquQHiP5QMaD1Gyb3XD8ezDtDm8qZ1LAyNpYSx1%2FdHda4k1znR39fyCMNUTMjeV3CfW%2B2cOkCTMZ2GcR5vV9QdJdGhVPjDPNZzZmuEltf1DzUQnG%2BHJ4FOkUgxwGk2P5u5eehHuRPPveFWseN%2FmgYdR%2FOBfD6nOj5nPUSOWNo7mdfZ%2FsndVQ%2F5eGF33gpvmnLPGxPzw2OaJ317rHl9gsZhJTchRiXPRnoMU%2Bi48a1MHcvVSpa2TjS3wTs5la7rKJi7lGTDgHT%2FzVmVOGZ%2B%2FfH%2BpcdMw0ZkH00ceOm%2BqDGnVvTgxrMpuddC22%2Ft2xQy9Wy7bcTdPs7MBqNfcH5ReW%2FygIVs29YPAPYLk8tGlWgvG%2B9E%2FL0tW4cw%2BRJKTtNgiLAryPUNuZOcw3x5rUjQ9jS4T5cqP1ORkZqgt3UTzrnTXFiBY6vptyiFHHQgY9LMWtRUv9idHh4KW%2Fw%2FvqWDOvQ1bt545jh42wb3fJDKaNfsDBR4dBN7eKh8CIkNrmABkptpbTAIwy0wc77rJ6hj%2BdAenYJUxLK7O2QmK8OKEVRuaR6TD7I8UBq678C8%2B0%2B3p82%2BUI9RpoE2mPXhclorlO37dgrKHk9aIsMKECMHOY5tEhgc8oPIDGhNmcPEi68Qto6yAMW5IaM1D4RHYImi%2BcYpBXhFOMaok7F%2B8l3JTh2Y9YxWBp3MQvfTtTxBcq1b1Tu0uebxs92DPDE4Zvb7WDxXx8xwJ96%2BxpK4n4S%2BdxAvXYaG3MLwJltbsmHVXNdDOMSZdrKTediqqrRdmbqoPh9N83m7omGGo6TgENk1ruMo2LE86oUdic%2Fc9nTr1y3Cw21B2JIndqbhA%2FUIc1z%2F%2BN3ctdhEYdWkVX51boMJmhoZIpY3311aMHahVEsm8Xb3mGYLWa%2BzPKLy3%2F%2Bzp0c688G%2FxrGTollMnG%2B6xxz9LVaEQbWCDUiDHNXngfQzmYN6%2BlrDmoIQsxd0ME26tjsdUCvJDOmhjRsEmAji8PGJOVIoMNLHWE5bM1AOju9jWQpWhsctrU9hszr9ec2s8cZkl57eUj%2B6bsoLGjibIaym1ZgOfXb2GykQNk3NsqdlxsZKYPtvdNl27n7s58iAZ4qhWS8NVOqFzNNDK9BN9%2Br1k%2FXS%2BVn9sJ1mo%2BO52tTiny6izPZMBmbLEtaHaxsNmH19xYUvJ6Jj0gqBPYsouJhNl8myRX8V9FmH1sAWGBke8pibY2bNGNGbQ35mwlsuOhhJROMaolbr7upTKcdC%2ByrNbwbNvKbdQ9c78PlMrC6p69k7ttY5HRvY5Ol8acutm8UD%2BzgQd7%2FOm%2BKoodJ%2Ffs%2FWHogrZB764ZUBWyugxj0uVayk1H1w1hRwx%2BjJWKubgHVqPNfV3dSnUN99iDvUypKWl9hnFxwjE5aGcuc%2FH8Ga8MMqgITjTJCw5Xglx%2FdOnihQt%2F%2B55b3sxKh%2FrUoq0CQTvy%2Ft5Cty1gMtd5%2FdTxQy96DfuyRb8NHOJIhlVuA6zWcf%2BE5l45NvjXMvR0xvsIg2Tnagxt%2FpGQMiC1HOn2kSwH80UskDXTPQdNnTwNZBOtqedZQ0thDYe5UNRUoOPLA8ZkiZY5meLWomYRaYzuXu%2BoOTY1s%2F%2FQ0eOvvP7GGaP3c2o%2Fu9P%2F2%2FfePnnMp8tsc14AxspLuGzFIOy1c4GMe1va56hNrdCNku25itJD06FvM%2BmQvTEV2hQvSUIrjMwj48HMuQu0HHr1P5op1mk%2Bi6581raCr1DDgA6R47Yz2w6Y67gCtA1w1FfyetFOS9TWZhUTZ0y6AlsJu%2FlQ%2FFcR5u6Yn%2BMQMz2zuTRFCY0ZhDemLJHtEqJ55hX9nYiWuLm6F%2FuRdC88brFltZYd7Cq77V5HxzeNpf6GTnoKIHTuKm6fm5ywHxPP%2BfLbH3rJYf3wbidRqVQVgrqGu2shq8swJq3YVG46iC0IFRGdKZRn03wr3eK8HLFDWQGiWPbWBVFX0vrM4uKE83WjsIG15AXkYBksjYJVolJrGmp6%2BZeeXL9z5g3Drl874fdyx1CfaluPwJ94GB3tHbM9ffpV%2FxOFh7%2Bu2tckwWJFehtgNcX9O1DZm8j9dXOvXBv884k2YbyfnauREO6hgl6ZSEfxFjAsB3vUzfPO2ED45zuhPGkgCHZ1mDW0EOB0hmE%2BZV90LBawgU%2BPMWo3Ro12ZDu3aeTW8oGhp0dvv3PUNJH1Q8dOvPbGmXfPX7wEvR82%2Fr8%2B5wtlAmBhg1yE6gszrIiL5AAZ97bB6Vg46ygzfbLjtU5ibNcBFNZKOiS9vjl8pJ25HiM5QKaPBYtXrO31tmpvHHeaT8%2Bjt5jdG2w1TdjSHBPeDNosFVuKMNeZQIrdruAJ8nohTc4uJvYEb2yNs2c2wowAtp8AZknSiD6LjRszUMhMZwF2xFWi%2BR46xVApg%2FGRs3uxH4n3whMaLmGJit0RUrrgGpR2dzo3YYjmIaDBQXNYsXEc8s5jQlDHcaZ310JWl2lMWrEp3XRwVqgKhYpIeTaxrLaMx4UOZRhmYN7Ce0pJ6zOP67eNwgac89XT9mc4bQNcKN%2BSfmHWOPM0yPXxo4ZdH8Jebt%2BBKojskK8CKUW70NHehTVee%2FfsSd%2FJZP1KobBJA2tTG2A1xf1FZW80C%2FdPaO6VS5NPPSGr3aQa28p4P0tXo2ZvDxX0ykRaZKJYDrbafevPZkTTQ8GoZfFnER8U3mCYO7XkxU%2B5WKABbAqMXL%2FailFTbNNkTNfVxU2aANya6ZertZlDR19%2B7a2z7124NEtt%2F%2BX3T5mRIxfboIm%2BQgUtFJGZR8bwkXQ61vUt3NsGduwMSGZ%2BMoUQZGnHd3QDVAhH1UuiQlA88oBM65PuXLLqcdtQZd%2BxN09bzSdsdbq6i1usnp6EZdi3gdxqFV1Og1OpVYOxRoK8XvS4yywmMorUhBl5Kz8ByJJu7tMoaWjYmIHBcp4OFvGIKQjRPJ1ilFImb%2FeyvZh4L6yrtUqIAUsToAVzjBpvgZXb2IYivhYkWELBYxgHJWPoEr1N7G%2B4Rde7ayETyzQmrdiUwRopGo%2BCioiDgvxYlNUWRUid6hr%2FQUNNxro4XWcYFxU2KzzNfvHQ8ZPuZzBtO3DKpxmoYJwJcr1%2FGqkby6mrtbp%2FfTRq21zaqEVpVxnVrBXDC%2F7m7EnTycSANwqbm4kky7Ca5%2F4M96Pdl%2F8HWv2yse8ca%2B6lJ%2BTGddsV7O%2BU8X6WrkbNHiz0K5ydvslJSrSAYTnY%2F%2Bo1NYemEPBB4axg1OLLWGEYM3psb6MWi%2FQYi23FqCn23vJOP9knFNc%2Bawn29IHDx0xk%2Fb2Lv5EV%2Fp98hMPmzKakz15ZKBnL4fmLwEjWkWkz%2FT2AxtxoV%2BhGdAU7XuGaJ%2F5khtqQ7UNa18CiUfGS6BAUjzwg08f8e4zIxrlKHH%2FzzKnj1u%2FNC5dhq0nC0m9jmeZ7TtFlvKFnfhQ31kiQ118MPe6yjIk9wVMS5niJ7FPisWuTscaNGUhpwukqouCIonk7ISGgqZQyObuXcvK9cFNo62rNCUuOJnT09ruOz2hQ6ji0ayXuXKA6gyWUi73zYLE4Oo4L%2By21Refu%2BuyHnwpZXZYxJdfVUjTuT8eyNw4KejZxBweHJjwupa4p0lCT%2B0CCyjAu7uBAsyu1A0fdHxQzrm6LJKqsLp8zxpl1uVa5nrrZMWgyN97BesT2JzQT1xMmarED1LfPKQLO%2FeLtEwenSlZhs2ThDUSSfVjNc39%2By7dvR6vfcbvlAPefY8299ISM5yi2uhjbDE%2BJep4MXY3W73uvNDJnyl2uDSwH%2B198%2F84%2FnwnRpXq1Z2dMTBMItihy6%2FDDnKk8uVjkEKOm2Mbnga6hjYtrq6OlyBDsIydeP33uwqU4v%2F7E1vWff%2Fcdf7z712iP6wrsSNxFyICzhpBEZhmZDh8VhZm%2BSHYxNB7Y8T9Z4zw1zUqAPinfU324EjppNUhpZx%2BZnqIXLLbsxXurnTv92jFPtW0lmOEswVfTaxhcndiwpdmH%2FrSmjDU6YhJcIa%2BHjxaqQbOLiUmudIT5yViJ7OC%2FDALD8NjZljWhMQOD5TgdYwpCNI9XCAFNeMST1OTqXpCUSbgXysEsFSo9Z2lCx2bb0blSDhKaqORIzqDdFJJRNz6gzmFqrSq26OYjvrs%2BccrQkdBPK9OYkutqKRpX%2FUZ02TalW%2Bx52YOlMFBu0axYpdRygIs0e6hcffHHsFlVeW1hQfQO%2FML27S7V5VqDSN08OWhVwH3oXTmwuaer4%2FGOLlORhEb2eN0%2FeNP8soG%2FdhmHTNZgtZb723GDf9Qt%2F%2FvA%2FedQcy89IWvdvZCYQessjPezdDVWE8Sav1NDBPmGWBtYDrbUCxv%2B%2FEAVQtBQ7Vmoh9Utx2FYnbEhew0Mc7aEkRLRpjBaNtAGjJpi18aqyp1Jyexr07UZQ7BPnTn%2Fy8ufxuj1pYvn3zV1%2Fa%2B%2FcsIfr7z%2BlokpC0cAnghTCfOFQjeSaWTaTB9FkKg0ATvWZvpgx0tWrvfdS%2BvqmmevCK5FCRQJISh55AOZFtk43QKclf%2Fa9H53DSCjktXSm0UDlAXx9kEjuHGKrmOvuCqMDajW44gqh4S7stlANWhGMaUnzOQTT8VKZAdEVZXBINTb4yOqLxbnW1IamV2kW47okeU5zTmbV4QZFklN3u6lJ%2FleeD4XGTTUxFGI8i7bq8hLaIZdQW3VBzqHg5am8VFX54zgFtU4i%2B2u9x84evLcZZY0IySaMUxp62opGudExMoNDgru4FSHsmKg3BhmNNS8IFNq2cdFmt1nNm%2BVus0q8tqk17q7MuSoINcuv9Ozfn1xwLNpfH6ry81TWzz9tYMBia6%2FO3fyiHrXswWrxdxft%2FtylV7k%2Fvlv7qXTXQzCU3evo3naeD87V9PEGotCRTd%2Fx6k5eJcsd8KGQ0emWUdLYX1HWCLG8TaOl0oIEUV027HDPElRkx4j2MD1xqgp9sH9L4DhNSiuLdgV998cPvaKIdgffhL49eVfnn%2F3zBuGXR87%2FNKB%2Ff4w4ptX3TOVbcFnbRMl7NQyjoyvtyQm2shWmumDn%2FyPTi1aPUB1zVCJwTWta6iKRnAJG%2BQsI%2BOhqyjJtM%2F9jaPapjysajnLECkLlPblsUmv6LL%2BSzTVdB8YUSgKMR8JNhuZwpRMmOkWpmfMeIlsn%2F0RKrSURSs9rPQTI6VR7a69mIGmAtJGGPMWQ3Vz6160BexuJ0pwFMb1KnKbwH7Yvlq6zSrahAM%2FWUUPYzXOgtrpubHqPhPHsUTbY7u51Zj%2BaCQ9pmbqajERqcoNVbNNT%2F0O2ayYDS35DBmlbyWuaKQZXLpPm5VtjWG%2BDnltpZ6QFkRPWHJtDJ4eXb169Td%2Bt7DN9QC1PWxKvqh1wM5TjgCjTxAmoV%2B%2FrbJcrYU1nhpWq7m%2FbvdlPN7A%2FedEcy%2Bd7lKCLcZTONtq4%2F3MXE0Ta906hrFN1YjQ%2BJ%2Fb8fhT8yXraKmW91%2Fi%2FXRZ4ampiEF1%2BuyjJYxS1DSHkdqL64lRU%2BzD7ofBhePcmt6FbsX9y9PvgmCTX59%2B%2FZXjRw27nqkZloRVpLbv6M%2F2i6qgCPyR4Tv%2BBUT1WPaR8fXmgxUttJAiLSgzfcNPfFt4qmsqY1WcROgaItUILmGDnAIZ17aWI9OH9k8k0z528uwvLhqqbbZpB%2FZPG9EoKUspch7k08a61Si63nXXoqaGnTXj6y7k9cpmI5uYkglzOdYpV86Y8RLZXv%2BIGaJTFbNdDfpiNQiWgyh3xk0FYjbC5vgQRriI%2Fs6xe%2BExH83fXnA13X767Sv2eKV8t2%2F4htj5MF4OuELpYyJGxmUPYxrrQl%2BN1J2Lifpb7DdqaISfW4cJUd50mJqtq9VNr7mDU1otTbmprlEN2VuIC2G2pnCRZi9eumptz5N0WnInkya3sqk1GcP%2FtvobK5cvX%2F7QA%2Ff%2Fo5Xr0bW%2BG%2BFBw2hdgxJLc1mK7AU6mhi0GJbZoaaG1Xruz%2F%2BHYM%2Fpi%2BD%2B%2BW%2FupfkoB3XDrlt46aV5cpauRjuTSU2sReRWNyI0g9bx4iN2qbgiHdwRCxR5Ic1ItQaBqx3J1N%2BjJYxU1KTEyLFDjNRMtw5jIvl3HqMjjFvO1v2ww6%2B4Fy8Hgv2h49eeHFXt%2BjGM%2FPGw6dx35ABiWwjVKc0O1%2F%2FAQW%2FKPjK%2B3iwQZlKctBgFHoHdYAexyOd2flxX1zw%2FI5ZZEYMSjeASNshpkHFtaxWy9DO1bfJ%2B8u0PPrz43lm3XbN2EbQhn9lvuzQffdmUcZ%2F%2FhWtaR01NFztrinabvD3h1pRRTMmEudKIMH83ViLb%2FwQesZxp8GsJfbEQSFaGYjJ2DonhFI3xTx0RLfDm3r3QvMIWgU%2FXTRWsXUhvv%2FfI2VJ09R9eNd8POx26QqljONjsPCMWBuxvlNrJxUR%2F5eoR0Gm85Zi6UmNqtq5WNb1WgX9aX9jzScodsjcXVUvG1uCSr1HzuG5ccM%2BSf7qO%2BS3GoEivA5XChpcWREvuX3zPPfd85U405a2gfeWopQ2W2pptX2UEJuDBXlFJAlLAMhwjPSwDpxlYzXP%2Fjt5k7v%2Fm%2BY%2FZ2HcONPfSweiErlt46YV1d6auxryd3WBqC7gQGNKNCH3Px%2BqBYzAzV2F1ttAddANor8lfuZpQv6zL1eLTi2%2BJ9zQ9RpYAxlWr1xGj7ke831AY3YesLJUxWHHRz%2BP8mVOWX3tZxLBZP1x5mVtybAHNodpsjnFl1eEf8RVMj1lHxtc7bg3KUIjHFEkzfWqH7kJup66umZwBT8cyK95g4YabsEFOhQwDr2XI0s%2FVdkN24s1zF%2F%2FuN06o5Yyi0YD08DHzz9d%2BbgycLlz6BE3rhMIGKQnZcPJl1Vkzw5iSCTOfgCDM33O6QHAkxC4TCLN%2BYuzo39BUmMFyfzuwEUZsgfRvbt4LnR1376vZrreWJLoWgS6iPoR5pdd76nTDToeuUPror9vs%2FJ5qesxbjFviuXntv4itSQYxNV9XKzOs3MG5dU%2BbXof2WsGsFQpf8Qxbgwtv1bXD9QWYIyqnJQNOGzSLbNeXb71p3jwzYz3sRD8jDseIgbXZsobx4We2Aw4oB0aNCgumgGVO0wZYTXJ%2FS5YSuL9u7Jv%2F5l4MRpOOJ3TdUtbdWboa%2BSD7RmpBsmhEGIj1HUtQTntoSlWCbe4Ky8RoLHUWaPcusVo4xFPIUOUSo96rRDMuZSfq%2BYVinJU9INgXz51%2B%2FcQRy69RENlvY06FdfYouM59f2KJpVq0K8rvSJhFZh0Zu1iwglb5HvNhqxZ2C5Db%2BVdVmMHVRCsMDSdFJ60UyHDS1iBLP1u7Ju%2FTB4%2B9dvr9Dz%2F%2Be1OibVpEoi%2B8OU6ffcd0ab5oDJzYtE4pbGiq6T5Ewh1PL8uYkgmzSEgxmcR6Odk2XPXGLTYizIBww8IlZpVu5ClcCT6f3SyRZVCUwo85dy%2Bcg1ALb68SOjl836llkFEc9Ay61xLtQgetNdXh%2Bbj7%2F7QW1iLqeDczH0D4UAhHWomp8rkwXaO6WtA%2BtJnCitZJ8Q%2FLakVfS5q1gjqKIESrcFk62zQubY6oVUiVSLnqqGzXl0x7Ei%2F6Yef6bRvN1xPm8%2Fek1gJnwJzFPU06WJ1thpWe%2B4PyJ3B%2F3dg3%2FyafnMLEjl533ZI9Z8l5MnU1KkGu9JAoflMSa56axPpWCBsO%2FblvohUk9KPhy67NsIXwMsoguBGrBSWimBRyhlHPiMvsVWsWRJeo55dFdnRnsvFLK4Y2ofVpy69hhVhY99ia1atWGLXfilWPuEagdiQ3pticZMXuLwfIEBERTq6iMhHZCN3Cbp7L7YxM1tU10SR4uh4jHD7JG%2BSMI0uer82GbHjUOGYeP2UaNFz%2B1HRi%2Fugj68%2Fqjl%2F%2B5iN0aWZoaINQ2OjOmqjWEwn3TGPShHm9tgogYYapXnXMrJxx1sGFGU9aB1v0dg2UZq2NMIzMGiyfCD6fFDMIY3yUfM69e2EkBy64VL7ZC5SGfNPnXVGlDO3MoIijN%2FTU9FH4nZHaXXOnHvY8XjooSkZbigmzREpM17KuFmX3bgfntOJPQ%2FxDLb3oa8n0agPRSEtwgc42gUsNGPBgkZZAsEa56ggLIteSa61T00D0g3eePpp8mGTZSs2aPVgt5v7o8iW4%2F5xq7KunMLGj1123mO4S1t1ZuhprQJWB3LokYj2%2FLmz4GcPqKjr0dF1g2OPD60FvI1eLIBH92oLcYdTiPntVM4SnZT0%2FIyEA3IEiBV8T40zQa9Wy49dbioV1jxp2vezB%2B%2B9bZNR%2Bi35nhV2BqwkUm2%2BAWMEzjYzPl6JM%2BGliUmSKlJOiaENkNafu3DOghACADzFGRF%2FYhA1ylpElz9grjaX0oG2Te%2BCIac3MLg3qoJCtqBQ2wlQT665IuGccEwkz%2F9r4mDUh5dvpHHgekUewjmrIMTYItujtGikN5xQdLIeuGReBmEEZ48%2B9e%2BEU5PI2%2B9GinXGIgT%2BwTZ89266Mu65GUkHf2FPT%2FdYEd9e6oQE5uN8hCbPIlmLCLJES0zWuq%2F2CTUPCCqYgOzSwrBbfpbVdA3uLFuACkCZx6XdMKmq4NWSxNSNcckvyBZuNcLIWrw4Y8fteOv%2BgNlmE2JWatYWwDGO5BrDSc%2F8CY%2FvFBtx%2FBEZZ4P75buybzJmrwu5Pdd1ivFNYd2fias0T63l1YcORYwirK11ofTCPILxeKrnmWXq1uCSqnXKJUceLo8lG9fz2Q8yJn3zwpm9%2FOrxz0PLrx9asWvHQA4Zd3%2FXl2%2BbPmzdv%2Fp1Ov1RJENcwBC1y91lGxucrRJldooWWnhRDGyKEnqCusSYksvZAJjjkSRLmxYwiS56zb7nbWEoXNg%2FYjjLGP8f1Z%2F7bX%2F5GkW0I2RBWVwqbom5w%2FZFIuGcZEwmzSreohBQKen75%2F5nhLVnH8%2FxB%2FWqXEWzRmVZJabY1CpZHwklMG%2BPP1XuZh%2BTj4f1XTOfP%2FH63a%2FoMtg23zCq9cz7TUzMqRxN%2FJAYYy2mFuxGItmgTlUFM17iu9pZ7XFXtqBfTkVxr558OPsQG9hatwQUgzeHS75jQ0WvpJiNcoqn1F5yyHqx2ozWvrKtsKA0O3ewTtBYtgtXX1TSs9Nzfhm6g6xmIcX%2BnQeoQ7b6mJPfPf2Pf5K5bIYwXXBQZjBHmydm4WvPEel69nLZRWJ0VKfbbBds9cQqFfGK14GIBiWgzGLHfbQNGqRRf%2FhhivZQqyw1%2FObTxxsbiYM0kmU1ovdfy6%2BUP3rfoK3cYdm2mN1TdrWCP40YUmyFoQbGzj4wREQoZ8EJrp0%2FtRC7UNRv%2Fz53SulyabKTopJVhZMnHvIX3Lnt4fbHPFCyWx4zQxpjoGFG9ldR%2FxMOI7i9c%2BFsI2RBWb6CwodpW0JNsY%2BKUyXR6IMyRTkhheEvWMfaCqo4tCn99sm25XZsvKc1442A5ncRcJ39hjD8374Ul9NHMnyHKHuqOBvqKtucz2Pb2QRjq0FizUhVempKAD%2B0s7dEDjFpq%2Fi%2BMMhFUzR6mBnW10eepq%2FW9Nh7v81LXntkC7Cyr5UNsYG%2FRAlzIvjePS79jFeE5p5IviHBhDkHMBtbEUNY7VQ20AUCJlqBQuqWRajYPCy6fTcBqgvvvGKamvxS4v4UhuP%2FI7n3HBPefM419dSyekyjZE5VvCV23MnE1Euv0evp5X3TltA3C6sKLKqp3TtmLQj6xWojF4uYmMVLpdr0xas7IKR%2BTGGd%2BFkV5wHhgtqtMX7Gw9mHLr%2B%2B6bf6Xvqhn2T3CYl556jB6LCh2ZpHpiEiXMELTTp%2F69Y6ra7ZiP6Oa6ug2qGKHqJ5ftpElH1%2B6fdHXV9qOMoM7zUQ9OW1cNI85M513zPHuu%2B%2FY48wbps72L494Q300h0lQ2AhhQrYxsU4oEC08usDBbA9hzBkc3sLka598SPhlrbOR27UbTV3e4zFBYYXzi1DJ40s4iflJqxKM8efovbCEfv8xR3TpODbiAgwDVkdf6ICvJg11dkBFI7w0pfRmgCkR1U8rbo7xHQzVWGV%2BNjHpulqUwKSuq2WX7V2Qseyi0pXOPyyr5UNsYG%2FRAlyo9m0Wl2bZLJHUTp9RzKNNTttoSghlPfppOUkAUFJtExKQqlImBazKcFpYA8UmYDXB%2FUPv3tEJ%2BS3J%2FWdsv2qfxb0E7p%2Fjxr7J9E6bT5Kp665bWbmaJtbJTjqCmVgTuLWNw%2BqdvbYQHa8mXtVxOG2K1UItFs1iZHih5RiTA8Yc0SAtFI3oyp7BvuL6NauWLbH8%2BsqBcsN%2F949%2BFwEC5Vpm3elkzZ%2Bg2BlHxkkRtXGIQ44nOX3i9aa6xoaL%2Fw9mMRo1glPtuBLIfyaRJR9f%2FO27v2Y6yhR6txqhjW2cW5uxNvrHT5jjlVdO2OP4UeOwedSpQzpg80qhTQOFjShJzDQmVmtUw9%2FZFSYy0yV9mmw80Q%2FvmMnXC5owBwLXIFczzwhlFru6PFoJjPjpRATLsUgHJzF6HFHsNTfvhSX0%2B192LBAVHY5IVEomVm7rilwlbQ8MdWCsSdId6m1F0e0TKIaQ9ilKVfEvMVTFNJQ9TA3qaj24dHW17iE6d3hf7Ss8LjpC2y%2FUA0T1h3hpNnuLluCCfqVJXHqDybSqWpmol1CuOr%2BFDcnoKJX17q%2FmUbp3Hmjx7iMBKVh2ClgYv%2B2ElZ77j5fMxfitDnN5yf3Z2Pf9U%2BD%2BDRv73jgvduRjd8CQoNrRSzMehASleXLGrqaJtfbQZy5KMBPrAqfD6tzFi6TUqBPVuO%2F3%2BQHN1UItFk1jDGbrN7YQY%2FLzioTqkQatRTDIoqrs%2Bd9XLr1v0cKbb2zspxxUlaLFM3vFaordFmRRCmRiUlT2x9rpEzMaXm%2Bqaw6Y9GYvXw75jug2unKHqI7MI0t%2BBU1HmWUPP2qENgODrl7RNdC1x4ED%2B90xXavVpp2QLTT%2FYV8orbBRnTUzjYmETmsEabUYa4djg%2BUIDrDSYGKshl8WHnoJhNkJZeqzCakNI3QMlrOFCLwxP6yXyC69G099Tt4LNzIH%2Ft3hGlVd2wpWVeCk8lFp2IfOB2IsuqcLpJtemuHo%2BOa69T2eaMMjRobXpezmKQxVMQ1lEZOuq7UDAsH0NHW1hsaZhwh%2FO%2FEwYWsxEhx2WFaLjJqyt2gFLiy%2FTePS40WVSHL%2FFRcjiWl74b1uQwLjGijre0ASun3EvRdfu3cfUR%2Bhr0kJq%2FNqYYH7NwGrae6Pbw30Bu5vn6Hm%2Fmjse6DakPt%2F8Uvzb%2FvyXfeEw5QR3joPk3hmDy3fiuL%2B%2B%2BNhbCMkKHZgWbsaiXV%2FQYm1Saw3MC4pmAnD6sfDaoMpRpSjQFTjh%2Fh2BNW5WqjFonmMvP3rh1FzRhbyMyBSbNDGm3Pi79x92%2FwbGp2RcspyMAWWkZbZKHZbkOH8Ccj0pFjUwiHtpylnNKpr7NaML4eIpOAd0W10E9pVZRlZ8vw9f%2BGiJQ%2BtXLO%2Bp9fVKw7V6xCrVffhfEtGn0NToyiE2ZDjUAobYaqZdUzctwmNoD2HbLKEv3o9WF6MmXyVTGMR1UcwkTB%2FyQllkEfsw6qMuYZEGbyZoQVaiVHJPGfvhU3GXzVBJGq8LYXYPujfhz%2F8QyeaH4rrZ7Y2PBB%2FZ4Nf1NDryuYul8GbpfQoi5hmr6t12BhniURdLUKBuq52vqFx4SHKh9mJZroU2qPCjSpXZW%2FRAlzQrVwjXNpPH1VZFWWpSTFSmLbvMiTbkVkU%2B46CXDuUnb1ecr%2BRqEkPRGVt62A5o59rCKtxL%2BLP5v7bikV8S9h%2Bau5%2FsGbmAXJ%2FcYmb7%2FjKovvuf3DZch7GQHDxV%2B%2B4NYFeZbbBr9r5Yk8vWEGmrkZiDbGjco%2FGa4rFQTIThNXtShxfbrZ1y%2BgQ55wNjmE%2Fq4LqarFoGiPjr63EmMwZGUoPgR7EjaVaJMyJNyec0c6EmCq0Q%2BeGYgOK3QZkxRTIgp%2BmgYEoeIKfJme0oK6xOFVvYSTxBUFSvYzUkUVk6Y8bbr7jq19bunL1o%2BttveJA3YFwGPJk41j%2BXffsWVobDLax8AqFjTDVzDwmPWd2%2BD8%2B2JfMFrpgOcTFMPnaNaTjC52JhPm%2FgRk3AwpYlaFlaBAsp5UYS2Tn7L2wyfiJV2hIZElEoXtTL94HE25XlbONDyrvR3UNPbN1%2FF9IGYlBlkFMjepqWVCLMnhRV4t5SNbVznedofDw8Nndy0%2FR8h5ddD9k2YbKqF17XLsslWwCV7I5IqqyzIe21IQYidO2Idkks72O6FopEspsmZ6AyibQA%2BmpmQpWOR2svs5rD0s%2F1oWLl6LCYLiBuP9qub%2BtnFgL7i9ywHeZKNCKVavXPLaOx2NrvrHyoQcW370gi%2FQ%2FueUuuSmV%2BdpyKVtXI7G2s452j2ZNiiTWlNjeXG%2BidYJh9XE7e8oWFMw2dtilozQqgurw7sJikS%2BMyZyR9l2U2XOnz81agtCD7edxl%2B7ExRCqRwgh8pOJotgZRqb94gyMBD9NZYVJdc0%2B88pzIAgrhQhCnRRtdDOJLL3Mft6Cuxc%2F8NDKb6x5bH0Peg%2F1U578bZr%2FsbRWG2wndNbMLCYSZrzcNEmQcltkC0EpUFfc5y%2F0eQjzf0szbqFliOpahlmD5cJKDBVFc%2FReKBPff8JHU7p926LB%2Ft6eji73PvQ7tj1EQ52JPdVKwuHMN%2FeWdQ09YmMk2t%2BFIEJMQ1nEpDM%2FrKuF9SVyjpE4Z%2B0lSL0ZolvIzlDxpQ7mdnW7CwrtMa4SVK7XEhfo6rXFRYNm2cWezFvGCsO0%2FY9i3N85%2Fdc3AV4RDGvAbSAQ20gPRDetdLAQQ2ojLM39zbNZ8%2FhmPwaulvsXZuP%2BaOy75E7J%2FW8w1V8PLn%2F40XUFXzrDSpme9Y%2BuXrn0a3cvUCnvzDf43dOoc4pgBRm6mibWNJDjmyl7x4sKdNSP%2BonfLDhebjYqmk9jd%2Bq%2Bhg3sc2MiqA7vLiwWqTFWMoExuT67XBbUUYv7Ggs94LbNGigVqnfcGgEXtY60A1mUAhnjR0qUiUfNhLLw0%2BSMRnXNvskR31GTrwOZkXAzSmGCloCM%2B5uWIWv%2BmHfrHV9dbLKrK7%2Bx%2BtF19ihs2lRw%2F6i3siiE4nYa6tNguzuhs2ZWMZEwj%2Fk3ErLACvVyMmAAStHhUwvYc8xKmMufTZhpxh3zEYauuRuf5M1cpLWV2Jy9Fway9h9%2Fy%2BcHfN9Q00XE6Gh6rZK%2B2%2B0IB2ioM0znfH0wDj%2B8c0jaC8g2qvWxt7NcczCFs042MensahRUmkgaQlPJc%2FoAixKMIJFR9PSQHaI6IG9igB1acWZvtMq1Fbh6e64lLvIFVh0EniAMEzfoBWXFqrW6dy37aoEnOMdb8Ibd%2B0KJO4Nk6WAZPG2Gpbm%2FfTZ9qC4uXB3377CX1dwfjX3nX6H9tL5vjxnnh347nnhYY63envVrVi5dfOd8YQuagwa%2FE3BNb9ByF6wgO1fTxJoecMhJaavGK1sIgPvZsHrNrgI0nwrb0PGYGZWrDB8zr0RYLVCfhlbwaTB6cG3GmFyfDW4d0qDKAC2B7sFtW9RA9fSTTYJbU3zOylOcsQ3IDKQUyDy1KVd4O1eWspRFObfc23FrHM2YaY4JdrVB5u5mLFVXlmRkzGpcV2TaMsFUT7mDLRhCqP1WU1e1%2BP4HHlpuDpNqNf2Zly%2F%2Fn91jiwXZe7xC3MltYwbb2xM6a2YUEwnzJJfVdUExqFqrgVKg%2B%2BlGt5t9avayos8kzP%2FDEppxywY8lOayrbgIlkOmTyuxOX4vfizbMDs6BJVNtceQFX05tr2p21bSIirYj5656pBNdp9iL8FZXFQidNAeLZnSr9MXpe1MFjHp9Q98uohgOoX2bBZIsSbUHkIwskuYxLBgVFjrd3C9a9yl7Vrj%2Bn4LcDHEpQmCCHvpBeUb63v74%2F2rEAoMrODKmunpI3C1FI3HcgVLl2Xd6Z%2BNOS3pfSmZ%2Bz9tL0vu%2F3Hg%2FmzsK1wf1he39JsBNIxMGvbMQ2a7bY0FVyyRv5NZm%2F%2FwgVJJ3XJXGGRm62p0OqipLaj50E2ahBkEVB926n%2Fx6M8ol4Synhk9G24XG1Xzkl4RVK%2FAuysNRix%2B7ceoy2UWrYBBZO93LOnb8i1zqoBdGaAl0T1feAfmgyCoZaH4YJqVfwBB2q8rMkJKgewm2h%2BzXIC5UcbcaeSqjWxvQn9OEwJmWkw6KlAu16CXkTpSIOPidv2QaRptDlM95Q7TfFkbst54061fvuMr%2BDHzI%2F%2F976xcL4Ps6GzBKlFoRphxlytJ5jGRMNdCQp1bNjVnnHWcj3TD72afnLWs6LMJ831BYyEEM%2Fha2o3JYPmUEDPM0XthNs1uU%2F7K7FLAHEznN1fu7dm2N9aEo063%2BYQ6jId21SwKAWgDS7jadG3f0VPvfyxbw2UTk2aNVPjKjlrM%2F3QjwMJ8mJlCHlxJsbgyielE%2BQa4doE7uIQubdcGF7l%2FC3AhxKX8poXHtV5Q%2FsV689BjJBuiGrBtn%2BsSNdNTB0%2B8bdiubDyWM1ja5meJ35dFcXo%2FcBXcv2Yu%2BytzWXfh0w24%2Fw3wezZdgs34inZBIVd7%2Fkf7Z2qTY%2BUR21KoZy1%2Fi0c2G%2FwqFZduuSsMMrN1NRZs1kSzMGFPLNo%2BCWLNsPpI9cDLPmbiY0J0hXZE2ots0JTOv7YqqN4H764UGBF7TY%2BRGbJrhFGXyzzswj3fNdGhkYmSWTqe4VND0aju5NeY7t1YL7yL2feh%2FhQfCL9QXClIe6aRMT6u87JdLK6V9sfSTzOsQZP7KpJiUwmd1MtIHWmQ0enzuiJj%2FawX0CB8bo9VK5bZVmwL5mlrtXow%2FrYFRs0tguzg26JKtDLsR1uCwiarmEiYWRWPtA1tWiPOGadPMCoQetaCWAvRRhJh9loGahgomAlfb9zGRiMqWE4xw1y9F9bRuArOv4ILeLHLdX6zQcCqY9vOWBOOOmTcsx2g4eZAEEO4qChTrdq%2FOXzs5NlLqjVcJjHxYAyhTPE6F36h%2BtJ1tStWrS%2BCoBWdkgncesKOKlXCjfUuoUvbNcOFd6kFuIQ5IpMvlAtg2lYOC1bmXo6RbMYBUQnouQIL4O07%2F%2BYHn3DDiwRkOljRVcLa1RJYenBai8%2B1IdrPt%2BdquP9xe1k09n31kOD%2BXBoW1js9DpUil1mDiq5cnT7wk0P7pydtX73%2BXv5exsm%2FUnGplruybjJbV6ONXE3sIqqiHrEcNqRYGzBDIaze46y4XrYxkz6hCgWRFgzbv1kl6NLkYpEOI0PV6TFC8HONMOpymfVPmEhxybrEVf%2B4Wva2D3%2BArUoB87%2Fq5KfoHik7Cu9kENRXQEYwQykLcaWIHrcemQ7PpkEGURseZ0iAqjoEpYmXBiIvVoepofQfoqihsZ25OlIgg6TpuiLjVG3m0iWudBbCeXsUjGvCquUPfm120wSMB6fmLo2CYJNviypRlHFMYuEVCpvMY6KUYy9EbaAA4lFSk%2FCXIlje47cguhObTtbIQu91jLPSWKUn1ju8wsCDDJbr2MKcvRdGclx4Af0%2FBzZ3d9P61XCCiYm6bn4oMG59oFQcxzNXuKhEsy6Pf3n63K8ZQUaOLouYdAyC%2Bzs20KVdGK0b8AhDH92H128eoHdNzCVe6kT4UJO7tF1zXN0twIXhIjIs2CpHwi0X0zZg%2FZ6VuUfK2pLoLBrUJrscGEo1LKwP3gzCgBSwEBlLguUwtAiW7sK%2ByoiMGO0fIL2%2FGu5%2F%2FiNwfzOIXqxI7g%2Fq7xQ%2FfSarNhqVfE3NVl9OP2zo%2F8GfHj00M2WqYNSuIYsNfkMFj27aqeg46iazdTW%2BktNBP4TzCSdCRoPN2iBzk6ZPn%2FfRf9k%2BcPpB9OCTlSkb%2FbuCgtravqMnVVA9FUbWPnw%2BjJVmMCaXywyY9bAajB%2F2%2FGDMmEc8CXd4VVUr1SJag7cmFN4xCOpUP%2BZUaONvP6A%2FkZWn1xUZw7MpkGFrOz4cD2SWRXGtsD%2BWuQMprbf4VXbMAlEb5ARpXApkjGy1Gpmequ1c6k0zA%2BfoN3HJwmOmaqoR1UZb%2FcFhH3gjwYanpvuSpbVuRF34VClsso6JUo692F9hXRVJHFYjimB5N8RGoigPT0mUafDBkzA7vjwuDUzYPJA2%2BRURLEc8U8QW5uK98JjvGq9YV%2F2zjmmXrK1Od5e3ft2%2Bw1fTltH8gYy70TE8gmP0Of4h2LVcd9D%2Bm8tMT9AwMqOYdCstSohCPhW5VpGvZfHAowVDy0o%2BaIwkjtOIx3Ui9exNx1V1abuWuCotwUW6wDh6mHcF8w4xG8DatqMhye6g%2Fi1Wm%2BxLNQDrIPlBCliM5CbDerqvBbAUwIX3LnuYIqNiV%2F0pbeqI%2BfsjKdDB6UFzf2yg%2Bx4Hg4fLg6P%2BTvFj62mGTNvs3p4unyqzabZhe5L%2FcOzQi9Uy9g23EFk2G%2Fyygkc8QTZf0ebmGbsaX8kXMEG5ymEQN5xd6MBVVdKNd9Zb6L5yaEr0mqAxLd9Q1qjwZRFB9RQYu%2Fu5%2BGUDIxk2ymVKE1VmtWz2eMKaRwBzg6paNeujPMZSdhbe0QA5pq3BDGxJO8SVovL0uiID6UiBDFtb9h2iiz4sSVFKRlmMyh1QWr%2BvOvacyI413CAnSONSIWPQtNXI9N7LzqU%2BPknOMWzjkv1bTNVUA8800e6%2F4D5psEFPTZRxwGD7ktKPZh4TbVprIqMelemPGRekiWB5d3AaCk9pvfvQLTmlvRrWZ2FgAnFD40Y8jGdykZ7L92IbrxgPLFeCdeqvDU3YN2Xnn37rqlPoMQW1bsMojTUrUTmqNDgm9uzZM%2BHCGPBCkn7YuoO2qkvIKiaOjVvunqWVllDYRzJfi86M3T3bBslnfVSr4B6m14mIdjeWRyZ3abumuIZbgYulWtgjS5YteyTJ7e52UxZd1iQ7skSX1YB9zIWZd8WXaphV8n0DaxT8ID2szkRYINutgCWfp2EIBYqMyPj7tm41%2F5oY2fGUMbzySYHfL%2Fb2Y3powP3tGdYstdwfzXyNv7NdGrzixwyvp%2FuKG3tQN9Pbs9F8353m1KtHD9QVQ4Sd5Qa%2FSsuHBR1jW1icZOZqmlizbIe16JGfrioxRqj9yNhC98RP9%2B0OXab52cFuFCyo5esiguopMIoeq5nAyAAmPHknysxqOSY0bM0jSmbifyKhqlZaorvyGHPCEHtDeH3CMW1qazADg7SLiP31RUbSkYxMOxDxoSoTBAqHdO4gSOsPHpipCg8sfIhQWwppXDIyFMZfb2SszCpQmWw5x95arVat2HyqqZoqes%2B0m6%2FctaGtPuNqrLCVVaKitBYufdSP5gET24KjRoOtfqREwS22%2B3aLYDkTDaI2bzbLFkmYuT5vFIIZ7GfiKUdSmoR45ly7F6bDEKL8m7Mnjx2crpaH6arT02Uk89JYE6TbHGDe5RF5uA5xtDATI0t10BZ6CKDMKCaOja%2BvtGkJ9NDih0wmMF8bwgeGnw0jaKycIpHNYaP7AvUifIgJZbVN4xrc1gJcfJhqn6v3XzJmM1RyepNOZW3Z16Fqpl1o0GSJLtWrWy2szZYftADWLqvA6WgBLC33X%2FkI94vFopUbPVd6dtC%2B8Oa8Y0PupS%2FtNkoBtxUemTBwfn9jY%2B7%2FyIrFC77gjB1sM1%2FT2XFtwUf4x11irVDsG4BjlvX4qZ%2FoP56q1wqvvHfhjdkl%2FxUZhFflqBjbQgycsatRT%2Fq8JXkMc0ZQKYYxzOCt0hSZFroIqx%2BcnsRqEMU%2FoQxBfF0w68siqJ4SI6bPjGBkANMNUxc56nWrhsse25e%2BPLHXUJWBbZghsVfTbfhomWKbobryGNTes%2FDOLtixJijsswI9hIjYX3dklu2nQIaASARuzQREzAShIix1dO6AHTp%2Fuh8eWHKoqFBbkjQuBTI6fV4vZHieqMyyD4%2FO4uVKdXrGuCZUI1M1Bc%2B0RbfPU7%2Fo2%2BojrrYLxS7GDZCcERW20mD7ZbsPBKzMYyJhnhyjzmpDmDokRdlns4GzBMsnZT0Rym2DzBCV3iTM254ZDvV4lOJCKDMRLzYipUGETsYz5%2FC9sAQLv%2FWLc2%2BeOHLgBxN01Rmw5bTSWNORbhw70AdaHNaJ50p3Cm1cwULKT3%2F1dtBDXD2mnq7riokGbWZsrC8%2BCfkkWmnhlPHoXBGRL4YPnnx6J8o26RRJqYbM5pj9oHnK0IswwK6b2lwzXNhWtgJXmHSVwk0KJZhq%2FeTDd4xQoGTl%2Fv295m8lSLbemSAXNnXQoULKpuZgiVB107B%2B%2FZ8sLM%2FEWweLg9LJ%2FYvb%2FH5xa5%2BJ8Rv%2BMz3qN7djtT9%2BrmKPsckf1kb9xF6dHPmuec1Bk96%2F9LG77KUY97%2F3LmPzbC2dHzDNfNes7zHU34Uah81uZmOxz1zB98pwHj91xnXir7xL6EDRbh4yT%2F4ZhOfYJjvQLXezdjXanE2G9cByFDZn7fr%2F2Xvb4LqqM020IOBUGZJKuAEqlcAtbhWTXOBW0lUUcGv8w4S6zKVhcIyOfORjhbTSg52xcrtLoEr%2FUFf5j36pVKfubSk6%2BvAhtHw6oybI7Y67G3ewnUm7Gxxu2%2FRgB%2FBM8BiIOxhshw%2BHD8fDzPvx7Ged5WWx%2B4yQdLbN%2BnNsy9r73Wfttdbzvu%2FzPi%2Bzd46%2BGJhEeDOE1f%2BiMVolmSZ8xuH0GFm%2FcpRB9SsuatVGHGftYSNV7%2BGiC8Beq%2FliJzx3lv3Fr4vTuwkbJaM%2BgeexXKRPFMZcIgIoV16jfVDvtPIYrnt6LOPN3c%2BVWwPX5ym5YvQGLLplcMZyLMsT%2BwHaY4qnuelwkjtgh86fboOfEC%2BVJNSWQ41rxTK6JYtkGeGyV2YNuRr5AITHrWzqx9ulaqrqmmm33%2FIlodlffNYvNqvr6SeINp0BM8YKjkGKBNikCDbB75oOGyXgSCJL%2BGfWEDcNlj9aJzhOCjQih9QB8x8MDHHnAE4GlIGQQHdGmCGkQYQujmeez8%2FCEizIkhz7zWu%2FUIwjKGByAmh7AFUi69QH0FHqqKzTQeTdsy4eZZTTrknENS37GAFti00mfIh8m%2BACLJJNxNgi0LZSy2ONPjlXKy1sSsjXYh8aUPqGgioqRao2zCSUddJszswu8EUQYE%2B7tH1kdqlPMj%2B7WldG50zEKPuD9147fODJx2emRpQe1Wk2xbL2ZYDsyDPZvFXek9NNKZsH1axPfXRmnTr2oiSg%2Fmyqqpmb0sKZRQVOo%2Fv3GaP%2FISt0r443%2FkPjEW9lzcwWZfnrjzT%2BdFQTXAaS%2Fum5wy8dPX7y1PvvHTuQYf8Vt3z1BhnazFF6OWqcH9B%2FU794M3IrucOkXFeXGZ9NZ%2FuXgv41hFHBWmivQfmZcynuRNSUtOVuu92NfNJGOA9QXCx%2FG0HHVr0L0u0AhLg6ykT%2Br7V%2FuGlc3DVXzyGpJg6ng13ThKz3PPNfDAvef%2FcKlIa0ZCOOszawkfkFC2Dqr7trK9BnaJMRHrocZKvAlQTOvtu7gSTb4Kpcd62Mz6uzLNLnN90sa0YAtpfHsLwHsdDRUPVbQoNdcmuiiH17W0ZgwzkloAnRTCCViUgEgbkDhug1rwOIPcdS4RrJgdgtWdYBt2RRLVvucHmTJ3L6HJX0bLCk6pbZHT%2FZ4VBbcqt3Cc3%2Bmisvu6Q5XueAjora%2BpkSbdxACmxTiuSaZYWwiX5XI5HISRoS1c%2BqMMicjK2NCBxH0kwB15zIdtxUi0N5y4Aweg6TMENIwwhdFM88f58FM47uIFs0sep7tTiJw1pMO%2BkpI92aED4PuvlBXrNjlY%2FVlQx%2Fb7QlWYnENSNRLRY1iJEamwQfogWbBhfXJiZs77zPCi8xvxAM%2BJBWWh%2B897pu25uUwo6yzRGqstSaYzXM5pRcHf7w2%2F89P8A%2Bf7tqoxr6XQC7UnHESCMRMxEVWb1%2BwtI8DaH8KD1qvdoUy9oHRjDQtslpPgYtEHHbkLK5b%2BVHataRA3t3aemJUn4W1CwqcBrdvzpZ%2FeM%2FhsStOr4obGdmi5w3tLgeq000Zrc%2FsXP3k3v3HxQP4OUjT1ujjG%2BWV4nC2x067rx3dUWb%2BVqcf8R4B136RFUlIMt1LT40hU3G6rl%2B9fyerVowLMSfz%2BEkbZ9B4XlsodHUxRG%2BpOVuu92NfNIZXB6NSOUD3Vn9fGFfzdCl7wqnilmZiEybzl8f1WYjFR1qaJYj5toWkdPxd6Vbi7tRCdiCjai9bAcbmV7gRibY2DXilPDw0MbuUlePrgCpsH1kVF76P1JTXxJn%2BTQE0O5acasMcZfVWRaF9Lt1zdhFakpGXLMuU92GKEpW9Wvh9VgFJUTsP9nOlnFu42wOsQmpkJHYT9oHk5mhndvmap%2FY3QrEbsUyyjMsjmVEKgqXLYRmHK5SWUBIqeTlVOON7bv%2Bo2um9W9Umv3NN14nPbYuvfgTl11t8TqKRaC4zj6daIPuOpGmZiJFUgSbWF%2F3A58x%2BGm1sGdUmJb6%2F0gyjoLlLNKOIywRo8H4uchn%2Ba4B3RJsH7ahoJhxLQgzZUKa8BQPRvHM8%2FlZ2Bcckgq%2FtArhb2%2BQpoNVa%2FlZ%2F75vTSDOs2NuKq9J6o0GKqm%2FlbQwxnmBQkrZggxabIz4EPk2TY4vsk2shVmvx9CfI7NTc1g9Zyut06dOvPLC%2Fp9srdfGgGcJF4MjF%2FrZVDG7UIfPCbDP065D%2F%2BmnW%2Bvjuj8IpTzHLjlPcuxqGWVjJrDvOso%2B%2FNx%2BK%2FDQoISq2ptNlLWndeyrBY6AMuvfAruGKZtrl3%2BEZknd68xm%2B6YW2iwqcCrdf8sPRgX409vtx%2FuNzFbMeRPUDjeh0ZjZtm2HegBPP6u7B3vi4Xf6FOBLnN%2Bhf1nghjzRwyiqt%2FiQsYcdKew6cExcYVNlvAtT3XYy%2F0Cfid%2FGCB8d%2B0i6u93uxva5P4QfgXU7QtJ%2FhRJ7NYm5vX7ilxpvQ0nXxZ8UqhjKRHT9sgsMvdHwio4nErrVzbO7noKs8uqVUgm4%2FKJWbVSr2sRGFhbwV2t%2BXAhGrooHv6Gnq0vD5RZkF6d6dGbnz57VdJljxvsrq1etgrssIunldT26Zgb1l21nipSRcbRPheZaZaqgWAiaNaPta1kqqcM6DrISKOZKsZ9Ux5WZIYGF2%2BKyxrmzY1FNeDJasYwn%2BKJZRo7C6KS%2BleWSk7g01t7VpZ6d8mx%2B%2BlPVTBsymv3dt98qPba%2BeKVs8h6vGzV1PfZrxSc6XqO7TvDZUFpLKZJC2ESZhBlEIbGhhT0DXEFJMWxC0UocLJ8aHjyXj1ZLlTk%2BOKUR74kpl78GPEbj%2FSAm0M1egkkjnihCdx4%2FC8Gjtl0ErfI5V2t1hmDvQ98dnBgdHBKVzEem1AdA33%2BMRF5zkDW3cG4IqghC6WrDuUE6U3gJ4EO0sU3LvRZGciz1LZiq6CNtpXX8qMJZJtk6XZFhKIOLNV1jPfoHZnMwuyjbyAmwz9Oundu1kFqbKOTYhSxTjl2to%2Bzwl9WGsp%2FZq8rypj1T6dRzrAabYpANo9hcFzw3sGu2Zimbiz5Cs7BTyk66UGaxLwsVOEVsc3bm%2B%2FpuD4Ln1nNWZuvrpU4bpQor4F0Hd0SqAdQDkCTA441R9MQLXrBTexz6l8TLEBLTZCanu67LnIEakIO%2BLb8%2Bss9UGWWuEddp2x5f9XhbZUUfYUEk3d1md2Ne4VEkf8GkJ%2Bm%2Ft4JmRA8Y2%2Fa5g4cOUsxNCj%2B%2FZD4jGKKl%2B4VZE8nDMTml%2FxAha8OMm6Wxg8oqy9%2Fvk0pACay3YiP%2BNpeNnjdaHBspFg2pclumVSc%2BK7lN%2F9wvaodlqbBVhR2Nss%2FIUrF0mUyXlZUxnWzIqd%2FWTM2J0l2RMrKZH1S2ce5TBeX9SP68rS2jpA7c10RSB8zRROyHHdyiutptoYDKVdXS7FgapU9GK5aVeYIvmmWsTvRoEEhctmFLOYeE1Jxn81OPHalvV5YeW7fdfJNqrVm8rgZ1veGxszrD14zQQbE9%2BGwSdUNprXrTxbCJ09dIq2RBEvSPjsoDG3o69AZxsFwmPGFn4VdDEacVarx18siBJ3c8tpmKfBEVl6x5EGaiClkEy6MI3Xn9LHxbhOkFWqWkArmPr%2Fv9fsm0SeDwj4anhhVUjAqxWNgFU9MNHdMT49FQxOFjdlsj%2BOM8F1mFmnbBkXJCcAra0SZGk8yisdHB6sNM0sQfcSutQwf3P6VwFuU1JSgyqLBO1iuqjFW6PmRzWCiaE2Cft12NOhjf87SrNbw0N8r%2BsXgj056pXNNtTJQR2pRmJYi2N89CTpN12kjZfJRmeY50Ac1iXxYqcG5%2BpI5qrT5UuHcx2M%2BBNIAXv1gnjF5LAgwaDagur%2F3sD0TgDf4x6gQm5S8m7F8u6dFg1H820lMa0LcZrzCSmOwk4ruA0dkWI38euy0cs3HDRnWB198PWBBJd7fb3VhR8ENoEUIBQjcsJJPB6DOdjZ%2Fu3rlnf7bFXyeFn0oV62tu%2FLD5%2B2TtoXkuS9IjZL2%2B2%2FD4lq27dm7dYoJk96xUGcBPtGZjt2w1c9hoeaP%2FbTFspIdChrKjGVtDRo6v1sZGhpxi3wWUrUIoSJdpdRkiSANwlu3nuhT1d8riLNM0wiKqbKcqKE8yBN3elnFqKVpOSZ3AHM0V%2ByEnmhAbdJwoO5YUxdOQZLRgWQc0OhfTMo1RWjN8OwdA4lI9TZysxrMRqP0f5a0dz3y7VXffYVpraGUT9K1iog2nrYwU7BlE3VhaWwybmLhpaAowrpIlSdDA8e%2Feu%2Brf3udORhQsH%2BqP6rJjoadmXayXX1BtauPkoh8%2BihgZvlTgnBFl1rBCNlJ3Z4TuvH4WjstR5yF7698geIwMhqqFfcM%2B%2FvChh%2F5YuoV8VzUzG3%2B7U8aObfHQLcrHHgXPqVdDZRUC7ZBZu%2FGqS9vYJpI1Dd39UXMgJHzgwpy%2BvXvEHIWztjeXylqBY1VZZYu0x7KfzdkcFIpCryknwD4Pu5zxvSB2pXgJX3SKssmvEW%2FElWbKlp0cnRSmFLISNSuqTUA2ilKfETlN17YBuwYpm4%2FULIHK5QU261Jt65UpcE7pZu3VWmhvIbieNH8OFgD0QgSry5IAfeIBGEWuBv93%2BmEbdcUKQ4IeDGE45Miqfk0UWv8ImQcqeitriZt7m41l%2F4vPI%2Bfs%2Fvt1HuULke1ikwyZ2%2B8%2B1Gdr%2B5cnTp1h4eT%2FirBx%2B9yNOpozqCaLSf8jzqmpoXxzy1%2FONLbuetKTu7ffpoWfiv6qdlpAj6oaac82de%2BIkbX9Sd3Nme1PiLSTvusaWL%2FuKkLrfBsRsZrTxo3lrwUbeaIthI08oFlpZxJdJhC91ik1Fiu3ZkdrDGUrDy5Ll%2F25R5DgLlM6WjCSAmxzljVJSngUWuzL5xwqKAhBt7VldExSSR3ySPPFfijKOUuIzZbuhNgI3U8QYjNKn4wWLKMw6uJYxiC7fsm6u1vl1BjmhvEUl1LYIpVYEgWcGNGtt1ejNT1gV6qABHLrlYRo49NWQpBdyNzopItATFFsoj5mg1WX6jzUwg4CcHfvv15xDysMmoPlf6DzHGvjdEdKJl6B8I9PW1dKXVRxP%2FyxLGg%2BZQImIMqwQnYOdffz%2BllShafq5j%2BfUCsfYj23PAY%2BviEPpdT7P9Al9uzBgwf37z177D%2FoY58JCJNRXwttVLl2AbSjzFo720SyZm3wIU%2Fv0E3jhwvdZYmb7dtmZbNGWMaLbUYkgIyIV200yebUUGWjuFE2aOg15QTY52OXRnm7FsquFGXHgvpnS%2B0MKenVzjFBBd56KhP7rPHsj0A25ShffPMDeCSo00Zp6kdqVqW0kGax8Sfk%2FsawJasKuBJ7HfUP%2BYnPQekfMnvUV3Bl3h5zFgbAfMNA6UCvORReWqh36s%2FywSNa9isP5WnKSlZ69NaLkYpz24xPaLey%2FwPz%2BI0Mh8u2aCzqet1Sf5IZlKfWbuv7nzt87HXP6v3uCnDG2%2BlurEmcGWFHkrhH01oXbbG4z%2FRoVWgwP5kdV7d9lRd%2BDo3WLNcPfx5FRIwWsWYsQtbyM5l%2FJZqN1B97%2FK9Rbi8ygBG0zrPRd55z26h5o8RGueHC2MjUfOhLJNGMB2Q1aLIrk9Mft2ZH2QLrZbrM8mUNuMueMnMnvKdiADtk%2FkhRgsq2fI5GLfahpQ8UuriWyR1asIxbItBwpNwEPUxgG2JjdAmDpE5Ci5hJ6mn1g6iHZcM5dTEtWNYBjc7FsowNiapTlmUx6ixkNdk%2FZS1yOvWZbY%2F%2FzbaZuod07H%2B4zF5HB3PrzNewrX4SZGcnXVAwC2ETGVdaklj2MAaI8uVAErQr3NlcYRCC5ev7SdNu7ihSo3Cja9g%2BISqmvjOYXAbxMh8F5HimGVEhm9uBv%2FjPko%2F%2B%2Bwaqj%2BhTBF0wb2CiqYkMfaNm6PiJ40dfOnscPX5CBwSEm1tnd3dEqw0hxSiz1tY2UZ5aJuEPmuXF4o8gr1m3ZnoIy5QQzQ3AcTLG2Oxlr%2B%2BL4kYUiuboNc3Xrq6uhbMrRdmBYZnK6sjbbI3HcY75NrWx0uV6ZchFQO%2B2BxmvUg%2Fkv6XGhR4J67QLZ9bFn7PGnwb9kYwVDn4PiL2G%2BifT%2FnX%2BAy1%2BQVnwAJR5hQbUZfkC8Rw4UDog13Wtzwz6oxJML66IC5tRd0ZeR0EX1NrbZVy0%2FCrtVva1%2F7vb5rGXOHzyT10SlUP%2BNvUDSQLu3nvgsMUEvcMN5CLb5m6sSdyKZB0%2BdHcC7wdR4w4jxxt5d2tD9eI3eOGnvJM4I8yfh0yXrWLyRNP2FJbLWuvFH1tmt1m8ScCoQ2v6LPk2QgMwtXHbzDltrC6MjWSJDLO%2FpuY0xXW2TtZruqCnqUF2pNbWdDFdZi42BkTl4ITLkqGsjl6QGmjDrrINJj%2FD6yRDQwVl8SyDVGNLloWqWh6Ta6L%2BkNgSiY2jDnYpLaIRtdMhNZqwG2XDORC7Bcso9rMolnEtVDy7staJt%2F29Vo%2BBzumWUS0jpzMxPbPtR3852xAyJ%2BLwFI8LFZxOsCFRfBJx4xBkf4WddC8rjE1kXD06QRXCMuYTzhz2jHvuY4UBiWp63%2Fupn4nJR5TTZpKMkGntX4biyn4WMTY%2FCupgIIhlXAYc0zkd%2BAv%2FLPno%2F5uyihwqcnuCQ%2BMBHafeo2bog9Pvnz20sxDXzBpK6SadlNgCJsqstadNXFMaYLe7agiCZHp8dOODEztVNYFUDcugeYsJb1G8nhg7UolHoSgmkerwSYC9De3KR9ndX4%2B0FSKJ5bulPsbkCFy4DglKfe9HaBN1PzYJMwBlCd7NFs1s95lHgjrtwpjFt%2F26WwT7GwPfyrAM%2Bfch71931D%2BY9K8DEQg5gbqFAwELrBt2p2YBwpB%2FsaxAn2l9EvqHg0E2GmhE6eGK4xSxHWiCL%2FmgKPWNt2i3su5vD1S%2FX1UFo83TD7sPBHJ0rIQqJ932XXuf3T0z6h1uVkIsvm3uxqjSY%2FUosDEJ3k%2FoJoWVqTovE42GikJmhZ%2BUFNNQuSpqVkP95xzIenB0yiLG8hZYPLDxaENLXACtWVWbb2NXbzvYSJbIn4CO67Hv4drY%2BBRWVlcPCmq9qIYeseJscbY50E5Gf2QcfMrqGGUpCCIzvGcwCeF1kqGxbtrWsrSqtrwB%2Bk2RAiERDrFxUHFNtWAbZ7NqSozWRyTbHIjdgmWss180y5ZdY1kwza6AHiuU1XUyGEwxPR3L6ejLb0psP3z0B488PAUGfoe%2B23EPJ7a9aIobR0H2ceRgi2MTeyxorimEt8l7Ca6wORnoScdilQcZvGSYFm8iA%2B1WQaP5b3k23SQsItd%2Fdj2eJknXUoybXIacDvzn8bNQXsezRZEHY1t6N58MCQpg5DkG1kzaOhvXTDoYc321q03MdiNR238Wtb4WhcAorynwyyI3yOYCOAaV%2BNDqt5QRt0pZoej7OerwbW9XirIjmlXSXPHf%2FO69HZ1ukoWwQELXWLvzgwmy2ZCgAodEQTaa2T5mHklUp92qWWsW3yxqNt2ucGlqahhRQEH%2BUOapVaH02Zf0r7PgPqoBwA6YhAfg4iD8Bf7vPkslKBV0kNAfKWHFYnYc%2FrvvDteahC8itfb2GJdqY7t7NIQl0Gf8P4jbM4bvaQDYKJL7Ne6EitztkY7FLr61Gni8Xe7GqFJttoFdDR8jWNDetMlTcRuNNCP3mdg6U1fC0fc3jwzinWyqRJ%2FYnLTNit9XowVPWu6vqwKRyfqf1aEDq1W1qHwqio1kiXzPKvaxG%2BoldQkjp7bWILPMUW0sW1y9LKsPw%2F5u8rgOyU1WB1JkaIUHUbRu8iEguuFFtXtJhl5My0Zasiytqg21HJOBX48OpiDWJ13CEk50xKpJubaA2DmKWC1Y1kF99EWxjEuBXLeaR4N0P6CszmQVTh3iOLpBo%2BzKBBdAHyXOJqBbX2bcmISOuJATNhTAppgryPA2w7iBBPctdTLAYgGrpYbewlMIyfm010GUD4F2KW3Wh3zACt8RxizHeNmLiYBpyGXI6cB%2FXj8LqeOeLULkBm5I5Js40QbNWwzZnHlfxhnga4bd3wHQJoyaU0oXmgNYX%2B1qE%2Fcfn9sw0eC58vSLspH931LqNUQb2EpVA1fNvNzhOJvDQtEcdfi2tyvdcoPPhWOPflhNbPIOhA%2Bx5A07lbYoDPzghAwAh8S8O2PWD5tHcjWQQCtm8TxYCrOo2dQ%2F5BAnxGXktgwB6onvwp4c6HHdFWA9KEIyrBt2nCqgizCmUR4cAZEP%2BG26iU3gP8qjL%2FVgo1gRpe4xnFQdf3gCSJydvyulzmysgRKq8py0U9Tf73A25beAx9vobp8ELZnyZv4x5dGlGjbCWpZzqokd1fqPHt%2F26A9UukudRuHF679z%2FY5PkEEftc3CMqc4%2FKTF0R15quGA1lpV%2ByUg64LYyLWte3jQdNaeYsh2QVDHmG8KnCcN%2BqBmxmcUA%2FH2Ae%2Bg4QAbml9Rmz%2BHRZHoBotqQYZeJMtApmrFsrSq1hAJI%2Bo4H0FQILE%2B6hKWZoYaQTONj%2BrVkRHEzlHEasGyEni7i2UZL5hVuVfd3xUwTQEFOnU9WmMFJTYZ%2FYbsSnaWhAMkUrsNcWPItzPITj5HUWxKuYJRL9Km8vcHITHU9I%2BZ3%2FqI47Yo5hvx56yfq%2BfohThrzUBWJ1nEbnYvIpchpwP%2FefosqTIysTSsxU5eA6iMGDYy7aeOvfzSSy8fO4FBwv1hUmzg4cwlpZtocrVu08jC28T9xybo95l0iKq12fiH2cj7jauJHG6TsE4t8HKBsdlSj4WieerwbW9XmmzNNlkykuRrh%2BslSS2LliLdDc1qORDBSCpn%2FOAUZKtDAqOcWV%2BBR9KiWcwEL5FZ1GxyxVUofzRJfSpdR498cvg5ehHcR5kvioOHDBOMJUUC8q9jVsNskiIlQP%2Bp0eADehAMTjLWBCro2qbi96LLtVFsRQNZVVcuzZC4wPBSB%2FA3Br8dO%2Flkdn7mOgrE4%2B1yN9KSp7eRU%2BNZziaNPXtJgKxVxO%2Fh6YbV79tK1kiRs%2Bq5fkM4PWqbhQSfvL0eh2e7Z8lzmeGPzjhUr9wFZF0gG1OIbVEPxdQU1CH2GfC1MomamdARwxY%2FNbN0zUC1rY%2BBknAOuyBiJWmxPz0MWYTFtKy3pzXLCGqwNTeF2FjVHbScJtj%2FNnQJSznRhNh8VG6zUxHETi7D0ZplJfB2F80y9h2mvm23F6ePR7I6fsqigHtdD%2FaIcsmLtEfiA4R97iqMG6NQIw2yt7VN%2BXxGErkpfCuCacOMZLNFHfxW61%2BKACf8UK%2BzLSHQ7i6x5ejHTSSno5wyCHvoz5DLgArZhMtw3j9LqoxMIn054nMmDBtjMx94eq90ET2IEaR2%2FmEbSyfTgvpakNJNNLlat0k%2BFtgmrilPzVifAcYe8AGla%2Fkg86Zf92eEZcisBlccnNdajLFBFocDl6MO35Z25aPsWhBXxj6u9ZOjkCIbzwR%2F1iJCMQyKPfjBKciWFro0ypn1t10Pj6RQZoXGnyjZi6r%2ByhWP6%2BvUgVTOMeRRG5D8jR9sav%2BxPFBd9UGQDrBIopcTA%2FqrM2OMCvMBNTzhBb886aNzcCkHdYC1UaziQZ0b%2BkedOMnAvMHgt6Mnn83PPlVQHgUev7yN7sZGRM6pYYiDjZqQ67V1qS4iXgZ5UTStj6J0rGRfv8gMp01zO52Vg%2F%2Br4rIKCExk0uLsjb%2BYMaU5IOvC2Ej3JEZ32gyzjBceC9qLZR%2BwtYLGGHHHSPs30O5szfgVVCKLrsskBJHRmjhpsW9FtTiF29gyksXRRbdGbM02kcZWYL0vFLEREEg40XNCbCrlEmLPGVdozbIyutcvlmU8Q9jnTiCcscEkch7L6kCQ1TI3Xd6WUSYXWmvRAQJ8zQ4NXsmJQo0kyF4Um1KuIDrOARVTT2h8KqtUHzurwmBiAhF2%2BH7YbUYQS9dAHSJ1I2MeEFgVdPi%2B0df0KJMQFQOXAfn5hMtwYTwLxWEjmM%2FnOTfDBmzm7dZFFCOI7D%2BukfOoC06JGptx%2BOBEpMnVuk36scA2MfjgvxUyIKAhUV6Ty00%2B6lXbnxlkJbN6VP3vTpTUxBibZPF8dfj2sysfZbtVkGRDBtcB5vfGdZB1WFlLEvoAKPZqntYkwzNJQPZbZpQz66%2FCTl0osy5j40%2BSJaj3B2KvYagRInmM%2BpQjeif5s863K24MMMiqVP8%2FEBKycOOkNaL4lnf2HUHCF1KfOOnjDPjSDnYA9MpGmxuqoiCHjZpbDH47KIeUGXr2gHDxgcdxZrXF3XiwGKcG54LHjFgw1gVkbEV7SAP1yaR3%2B6kuqphcyXpPAOqkaS6aedRMMt%2FbyknZqb90a42T39iuPWaArC%2F5l9o4PLbkNob60NUBB8l1qbum3XSBfXp8rZAxB2d5StQ0p6Cpz%2Bwb%2BDiiVUoJPvr8OjWx6AZjoqCet7dlJIsDVCfN4bu9PSbrfedU6V4WQWw038qF2LxMGC1axnrfRbKMhy%2BuwOKBvl59xWNZHSRxkahF6h1VZJWuKHgU9b0AsMsJsrehTfl8xnLU78IzFJvHEdu2CtlILcfEzkBhkN%2BcAtXeeg5oZTtc4hpELDo6%2FIBGc%2FCwrbi6gLnC4DIgPx9zGc73Z0m7whHmM5NBog0j8GDYiHstbOY6tYeb2%2BtOmJoW1xJlTbHMQvggXV%2Bt27ShvOA2scpDfyviaJU2xPKalCLY8jBgI4KsXUFYJ7TUxTZNjE2yeJ46fPvblaLsCQeT%2BoWjdosOHWOmbhKZKMqzKUNVM7QfPjfIhlFg1hfGrFSzqWybbdTpB8Te8Ukc%2BUTyARRMKSAYAexEgUBXaAncF6pSe5yUwnJiNKIwz8bgLTKLWpskOxtO%2BqgOZukGRVFXrEbNJRRR0RAJ1WtjRoYIMVL7F4%2BhwJU99DzwOPbINrkbD5Yf1Y1MQwr9uDXWN048kLGTvCHlVMmiduNwTUPR3jf%2FcNP4ZgSI0rZZA4PAixkdAHTgbn2pZ57Y8Zj%2BKvJWuTYiwLW0NhLk1SbYfFN5SCNotgjlLp2nEPvsAmOOXfSG4MKxeQYi8cbNDxJ8MTzqpOhG2mlnbsvkIktvGSUiLf4R6caFNpH6wXrfWBE77QL3SHTO%2Fs9A7NYsK7Ped5Es4%2BGLK%2FBC36xYcmsKsjpR%2BRamzjZ0VpHF08V8DeXbUcmZBNkLYFPCFcSeMTYUk2SUSaC1CUOCf7HPeYUBf26AhqWMHunUdjSutivLu%2B5HoG0N5dWWxWZNfjUkFJEGG3ZXmAImSYXshfEsDLKHbZzKDdRuZgQe%2FcHR1m040R7WwZqaeqTtoqA0ltIFlxjrq31t4r4xvunfN9UgQCyUf4NBujVVocpoQdZYWKdcbhbV7CfGJlk8Xx2%2B7e1KiUn16ZBx8d26YrmK7%2FR844HAlqZJU3BHuqGqmbQfBshGBbKCbDcKqa4imcUtm9p%2F48NRj%2F9qDRqeOPKJ5AEKAEM9D4A6XwT4hcfZ2dmxumLoa3WHZncVTFBIaIR8Jn8RNDFc8tbhmkifo5P%2FEg8VRRUbveay3JlJntg3gNOMXxSpUiMTUyMGJl305IjicWZH2%2BRu7ABb%2F9GMhzUYVpftr7uZE2%2FyLp60N5qXmqRhcbimPC3Ua5ma1o4%2FETltCKkqKxAd8fMeMjqeae52Iqm9wKxYybex0rPkNjLCO43mm1WLWnr7DEt2Sl2svf96nawzRo%2FXzMBZ7mU1jQvtqL9HDU6X1dFgXAyPItGNpNPO3JZBpnPeltWq87AMW5BRR5lYZxfdtN4X8YBYEZvZDRELi4Js4wnElovnQOzWLGO97%2BJYxtlkUj1E2bOylvEmpw6zqv1YMDy16x7tUEgcs29cKt9%2BSkSjo2krgE0JV3AGJMGIJGNXdlUiv5E6GawwsM8%2BVtbiYxKQW21TdGzimN7zrry6bFnssVCTH5EJQZKHKwwBk7hC9gJ5FgbZUawVazazzperbtorPUAE%2BM5Z2sM6NjKzRmJ9oqyP9RWpiLSpTVxTtpj%2BH977LN5WzEbaBFVGib5GwjoEjjqXVodPjE3gmK8O3%2F52pVINUFf%2BnsVoUJA05FrdlTUuk0JlnSkwUcq%2BCVFVs5bYpOP9Y1qBLEvCjEL0r1hmBc2mLqCn7rU81A3PAwlQ8QPGARSQgAK1f1L7WQ5MiRDQCBT5o%2BijQuivYX%2FRewD5QkwBny6qg2kH0s%2FtZdjYrXDJMyNTU1RG4RcVHhparUHu%2FJ8Fj7Muql3uxgL%2B2W3oaj6F2MfUsH9S%2BN7eRru9F3iLSclKRqSoOpwI57NcxV%2FlSEZnxGrMvuFJi6BVdcm%2FzEZ8VUtoI%2BkdlrwC7cUTW%2FbGO0HeXThJraNRrhHmsK4gqln%2Begnr3%2F8zkg4qxEvNrwgeRaIbx%2BJOO3NaZumM%2BVtGwZ%2FWLeMW5AdrJTQeqlH7OKn3jeMBKfz8%2FodDbGQQciB2C5axT89iWcbZ9Oah5Nc3J6lYwI1ZZVgSlRqoImOOi8FctrtmvsZoDY9FQfai2BSoW9gzHCmTJMN%2BBGV5s9HtL6ow0E9W1o4NecAXgfQx3Sw65VFQalXp6CjbYrfqF%2BEZpngZ4oU4qIOASbQ3XxjPwiA7BRtApFcD%2FV9Z1%2BUL48QHVlRjJYCx9vDqVatW3QdaXUKsZ%2BSdQDvpxtGqTfLDxbGJIJv3jvRdKagZxDYra2R3ZryrNuZAC8BxdAh5b0TaE4ydow7f7nale%2Fc4%2Bip%2BD3mJquGEYagObCAqDecYdMn0lKeq5hwgW4GVgmwYVTSzCKfUFvImeKgbAHAOgMN9YExqy1CyoY9SnpoEYLKgP5IIQTOAUPQBPpN7PFqiiXBhaOEe18Es4WBUIAuCl%2FxAG6sRKKGCDTAJKpxGc1Jp%2BdDo9OixqFPdkt%2BNr%2BWtxqn5qy0k05h6zrj%2Bcg82f69%2BHSHbyMJ38nomKxlQun%2BwFiNrkMLRNDeW0XHquCBrnf7d%2B7DehVSTbyPISUtrIzfFPx9vOoy7LIAmRmR6mlbfiJU9aY4cOmlwWZlfTWdZdTdRbtBpsjqWJ%2BM57K1%2B42YoUaedOS2zdMb8LaPgT%2BuWcQsiwI%2FgPpTijHDDKiAkyBkPSOEnwk1Jcx1n6CODkAOxW7DM3ZIj7y6iZczjUFJDI71MUgWnTmcVhy4GKjVUxp3V7wR0lG8nwYbTNhyC7EWxiVxB7Bk2gQx0eQtqyNx1r%2F63ldC3KlQYyKes9HGgPeQbJVOo5bSuBSyP4j4xFo8KZKqXboVBKV6meCG7FsX5%2BQvkWejKqAmOrGvA2yNRPRd6a01sewpJP5l2%2Bf%2F%2F5o6m8bUVt976rw1S4d0jsT52rrsD0GY3jpZtAvmHNoH1szA2EWTLBcK9qauZfvy%2Bg7EB4kYCLQ1zoWHbpmFE2lPCSI46fLvblZr4A9Dq0a1UrUU%2FW2WpEJXyHCuLn8sKtgr0q88NskGpgOJH8cyiZpM7uKiYVM8MCN1qeNHmsw8wHqMfyS0K%2FcRq%2F5OR1ifqhVnE7C2F%2BkMXg7J3UB0zpMsW7tDPWHqdf0YFsItaWXrVvqVAkSiVqYLuJxoYEhY30QnBjvEmeqFA67wt7hY4Ndtns30XdbRO%2FMn64np1qM3nFKrSDZdiJQP9ZZGi9RkKJLLWPwEjdhklZpwyOnIB91s8pYpMH0J7BbCRS3vrFgoP6WFsbm3Q01RlQ%2BE%2BhIqa0EM7%2BMsDdJZN4RWxeWh%2BwS9pOofHH9sdNUOJuLdzW1buXmrLuAWNB4lI%2FC2Wj2MVEBLkSTyAzwiFiaCoUYq6vEBbLwdit2AZ3ZJFs4x5HD9ctS9MR3ef5Jc8SWWzigLuAewWISyZVWqAdOuqtgHQQSgGbG5OW7QSC2FTumeA4A6Kq5JkcHllA9odq0FiCP%2FF6xZ1mkGN7%2FZwOSRv5NHMKWbTO1S%2FeEMRZMHwKEZqhXhh1LUoys9fMM%2FCxhCo6EVYwuOQDBpj6W%2FxBcYuIStvuqFpXH%2Ft%2F04yBdcXifV0rknPC810P9miTSRb0SawfhbCJsaJxzch4agfrEGgkmbYjL7rNIxIhzkS1ilbS90x5xLMSRjJoQi3rV3pdlSbAQEJarZT3n7EgGeTcs0IzjEIDnvEQg2BfvW5QDaLKQGyC2cW9dko09SpiMooE955pcsS%2FJi7AOMB7AeDiE%2Bs9h8L0fA3BlnEDNQBz6ZS0qhPaPiAFu50q9sD%2FJMOiO5zKsGDZ%2FcESC9V0PHlGFZ38brmXKGUr7DLaZvcLegbz%2FzNFstCoSW8k2o2Allbpywj7coUD4Wq9DVcyYL%2BuirNkaLqw9VIAtJcfO8o55QYyuh0ldHU%2F%2FesmOrgk4ztFcNGLu3Z2XEKD7HOkXqaYkykpTUEZ5nLCukKCGq6wquz8hEZVbPiVr%2BNHfvOyr9H3Nt2tYyAhgJEI0iPg0jKfYncmjRBnkLsmFXT%2FfWov3sexG7ZMroli2YZ40cI3yrq6rDgiZf747QYVj21kCe0wRIYKPCgtSZbawWfTdncUGfFtDEHVwSbUj7j9jpIMugWhuuiIr9%2Fk4cAKDFk%2FcVAQZ0G%2BkOoAUF1ezQ4xe4vf%2B97Xv1SQUOR%2Fma87KkLiBcC0yQCJkvxLOs7l%2BBZuLwmSUCypcTSWvZwWasPLPqu9PttB7miaXwaZZR1T58lxHo419xCAtBe1rJNEPmnTWT93HvrR20TU4%2F1oU1N7BrWILCpLsycqhJzMcbaWY6EdbqbRDX75iKM5IvWz9%2BucmUh7OKgvF0DPTHU1y1DObiM4KDZBCqFnWPIT8omBK5ihkh7ehObEhnFeZtVWlSz%2BLLHneZHRr1YMojLDFJbhsOk%2F%2BpBvp8eAJMAgKYcFANCOTH4BurZWFZYAw2Ue2pAGBxuNfQzlmzwu0IqEGeS2q4BLH0eivBAFFG%2FHMyhCVVjB7Eg4TuqiCwrA5hxKe%2BWdjacfnw2C3hALWJUkfVaRMMNMVY8E9QbqtK5kg0ue6QIcHpCz0oia%2Fx8fNLZwA4PJo2Vo%2F%2FJE73rDU85qzdSO8%2B3sbqENnJp%2F1UDRAW7X4hzWDfdbFV7zSwbY3CDDFgbC8v6bWR6PF60XGGrX%2BTfrYFu3AwlcG%2BLYFkUGtNjg0RSnCzQ0kdVLRPk%2BRB73apzQuy5ND9atYxuyaJZxus9OsEOFyK1BFkdvP7ukFVrlNjDYOqdHVai1lpD%2FRrVpc%2BGylpMGypbCmFTymcUyXXoAqB6mM28rRn4iDusmgdEazr2F5uZGYHLh3%2FwQLueWXSKNVsuxxn069BQBFkw4GVLXRhehjJm2rVosZ8FuGMJnoUcpvHm0mPy6WHkVCzy%2F%2Fbhp7ZNsEtIIqColwrrK620xRYSAe3WbapFIv9kIuEI%2BEhtggMxM1q1TicOFtnejW4IPqYfBghgjHXNWcI6ChzHtHmNcwmagePpiDCSs6jmYRdjvwthV4psGw26Jebj1jwXX%2B5BRBvQFYVIqEzqp0pBFTZtSkF21EBp%2FmbJjRbRrPR8YyyqX%2BxQ%2BjjEZWojNRz40RiKw4Cw14hCnSU0n41GT6wRAiq1yNhIlQFAm9Yx9zOhGLnVy5cW%2BnPjbWZNlzu9Tf0AgPikgyMMaKHKS%2B0Bg9C7zDYxYMalvxvbvbmw4ezjuo%2BvbW6sI0EdniwyS6B6oeTAeSJcyV1BixZRcr0Oe%2FdssgZaSGLZSZ%2BJTCoSh%2BrsN41J8aKc8PHc59uoWGPJbKQW3%2BPb6ygdDlI%2FkDmJBTVlqbAxBp1lsmzgUFskHkr8rpeu7ghb%2FfpyOXY6aYbCEo82tow5iXA6UlwznCVEAHG97yfnAbHn0vxo1TJS%2FhfTMpK4GL7V2LrunX5MwPvFRusbNAZT77YObLrifpFlRHXhs51%2BFf5tmLZi2JRyZbbXoQuAOmI284bvCofVmk1SYkieRH%2BTHHBXUtBf1EeD9hojdahals0F%2Fm9fhJchjsMunEnXoiV4ltrSPAurl82bdmRNNhLhYyLyjzAWvOsEaEfri001uqP1FcmHt2YTXQHaBCYSwpMfrU0E2X8x0wjakGuCcwI3BKTt8SrS%2F4ixegFgLKxDrrhyXrdsdeAIMc0WCCPzsov60PO3K5%2FTMv1DqtkqdZAZbxeyBlU6az2FjUr76K6nso7ZNFKfE2SD5TZvswYX1az0fGMi%2Bv511GMbM48NB34Y4JoPUOkHewbj%2ByhBxYA%2BUKwRYtC%2FZFH%2FKiQU1xp6ayChSNYPcOtSDqZcmQqULdMcWLAjSI9mmbPzn6pWruYc36yZt57uW9C3eInvlhY7NX5sGfUsKqRl6FPmmPb0QkbHqV4%2BelGVPhZWMhq2lTPZXgMCyEqzaS7ZwJL28RfckumurPh7DqheSLI%2BuTYCayyRjdTi%2B%2FEPlaSYCdmONQvq4JA1QU32xejsSpxlXUK2F4CDb8wcGPNgRJFrNOXf52iG0qaWsfttGhpbtz6Wj8NpG1fVzgNiz0XSadEy5tdOL55lvN62WVSKadjMgDNldYyiFvVqGa9bkzbwtYwHB64l%2BkWC8sao7ulmhe310bQVwaaUK%2FPEY1kopdrMX%2B%2Bq2L6qOwOKZhE0BzoWttHOBkINUNDRX%2FScIPxiRL4oYuGqHJaJnEwV%2BYIr%2FGC8HJbsWWSaFu1Z0iYa62JNTSauzyGonxJYU6DNqtpISp3rKxLlatkm%2BP2wKWIiLf%2BIbSK9Ztuuv200bxM1FA9Buo0UxKzwT5BXFxCcHnqxsA644ro578EUQkwzjzAyf7vWKJwNsd%2F525Uvi%2FtYE0HOZbwn0crK24t7iAuxL92kkO7KlHU63KbtOSB7%2FmbVFtksVm5EJWi1qix%2BJwLUmoGAKfeH0RWkP8gPHquR2U%2BREI4%2BuSobumQVmGy8uolJjc0zBhnA7WwT1g%2Fd3Sn4%2F0bHQUA4FkahwKnznyx3uQ7K4FjreC4Igi%2F93Vhi7GGlJzypjMARThbK6IDqheGAEa4cXVNUog9lbXQnjMCLeDt0vQYz13%2BthyiGm8Kpbnnq%2BeXbCKwxthQ2siXszNb6xKT1EuYBSkEdOWTZ5oh9MYz%2FXFkTu8qsoQdTAmF6l9UBRY4ImznSOZqhtKdlNIyIGI20%2Br%2F9oOnrQFyzTG5NVFU7X4idknRatoyaf4tlGa%2BH0hdo2445nY2yOl4qhvoNxGh0SYCvhcZuMv9x9XulzKgugF1ad18Im9Ik6pYdGgKh6mUJe4ZY6BTBni6LBDgNBvuKd0vZt4ehhubNRl95%2BMW2TMiyQKNFu9xUosgXucIRplm6Z%2Blf5GdhEw12v2KwmCo7KPdNBPUpXZECbRL0OvQjhqVcX5F8eEs2kfwDmxIm0kdoE%2BGZ%2FQ%2F52VldobSBMzoiBdq97dNWEYitnIdekLoAV3xcN%2BdXMIUQ08whjMzHLupD%2B6ExOb4AdqW7t9o4QzVbz3hDdGwAsUGnUiDrDXaixR9cWYc2HcgB2YUziy6cEdPYr2HSCjRMXAYUgFJnRxlQHwN7BEn%2BvUHr01lCiEtz2A%2BJXdFFWJPAiAoRlW3ZumsvIANauLcD64erWbE1dgQtk0ok0RUbYdhfhR1Sp9oX1%2Fq7R9gKdMnvlpb87txeR2P4ScaVximjIxOmpegckZiOTKefi0Gwo3S%2FtNG119KZ9pa16lJHwhp%2FuvR39wPfYbZCHsAtzzhft5BGkWsjsAaYBYtu47JrrGdevVEdNKIs42cU1KmUsqAMMziOfugt01XmigIbJyPoW%2FGPa6L1E2EzRzpHM5Q2tYyhkFB25MLlm7zdHzQ2A7dGXuY4LJ4PsVfPCbFTfY3WLYPm3yJaRpDS%2BFtTwUCSapR1tdRvZekWxdp6mVC2lTzZVP1ey5TWgOwA7FLF3ULYlJZPjc%2FuQrm7RnGBYu1mWuUioMnp7V4AC%2BC83vukS2QbFBBuNohXaZyOkTqwLKBvhMvJs6QCJsEVjjDNEjwLfnHRnyXter3G1U8QZO9muS%2Bd68ABJtkrBtqJVx24NXr9CGjDSW%2FdJqQDaFNgIn3kNlGmYQ9BNrpCiUC16QCWAQ68Afk3ZdogBMIkLlXuoBSJlrqbH9shm%2FN7PoVn3jxCMc0c4DgPu0Kbp4WyK83bojYearaawGKvfsQGEbbGOeZ7FQriTH4%2Bs%2BnVUzkgu3hmhZL0bhS4WEvZet32aRf%2FcJet1498DocFRKFdIRoIlF%2F7kz%2BJK4TRAGAQRR%2BowGR%2FUEdlm2ck6fPiaywkQgv3JWX9MCWoqxlqH4j5TQ5TexMuNw406m%2F%2Be%2FS5i%2BH4%2B0HEaInvlpb8Slh9l3nb6LmGrPsUZXQGMMOBHgpXDu2sLCOONrpA0%2FW%2FaFii3DV2vMLfff7JTPo7Uj53y3%2BtkR5srC3YWAazYLFttGm78fZyrx4ff6QohtENvOhD7kw7mY8mTpqN9JbpKkNrJ3PCzf3wzZISCaTIRTnSpBlK%2B1pGEiTfdIuHjOq8kWJlm9M0lfWSlyKF2JG4nvU0mgNiJ8n%2FIliG3UEXgfeY7mRCuI9Q25mVkNW0%2Fuo6yh2qESxzDLeP1e8gayWtmwTYJb32CmFTKpzW2LmjAdF7NhK1amTvrNPbzx513tNwPSSGDryK%2FhTWiAeBdlCpPU7HSB0cHDDg7HLQv0qKGOkK86C%2BkJ6FpLo4dCxo%2F34E2YG3e1z2%2B1RaWptWUSbsZb0Gm2qwTWAsptW6TRXalDKRUpsC%2BG%2FZJso07NSfda9jrZEcT8Ojk5B5BTNYBDWB0IYgEQ%2FcuCbQt5xa029c8X2HZHN24Pjai8%2BwWX0OcJyHXegCNbFwdqU2sjYewld93tzGXCOM733P2Cp%2BjqEhCcQrOuQcCzblgOyimUX3VP1pyNuaD2J37UWEBpB%2ByI58DocF5J9EDQHY1AtjRJ8j0wjpQzEKexf76eCKihr2l6TPmVBIxBbuSzsY2UIckI1%2FnKXVRe3N8NQATYM1Cl%2FR0Y%2FaF7TB3VhO6wBxZpcgNVBKgaybNTse4Ayz7QCzxF623VkJbXRRky6vJphDFtuTnzhNhNLff0hVFwLrt0IotSUbwSxYChsvM99E%2B7doFmsCvEZLcbmgjmKfeGUNsm4%2BGnX6LXDCjRPh5lMiARS5JEeaNENpU8u4BUH7zOT0FO0NS5QgFFdXyK0xYn2cDkohNjQ50WTyOxv6hzMZ6hyIXRTLSP3%2BOz0cmTVVng2hNvrcMVEYeq2DEqCp9yy%2FBRJ7ma2bKNBkwC5W2C6KTSmf8e8sRE02fMnT7VlnHfKN0CKrkkkMnUJnaqjjWIBAT6vJkYhaiPY4cnA6%2BRCX64wETJgGS1zhC%2BhZyH8g0K5l0eL%2Bhxz0k2iDfp9paW0KqCL28oiwl%2Fszgp5%2BrGM%2FjgC052sTeclkIqU2BdoPbKrl2ZTWd9vGQv7vgyjq3mj5GzCD69UgwNKEG8sxfctSQs4VP3mawHEvHPYcMc152lVfaLtSG%2FXr9bSUVb1DMcc0LCGRDghrJlWciYLSwJKdY%2BPNNn3wXgqyi2oWzzd9f9d6vz%2BrK31I75pGAYH4g9w32wCZoVD6QWVviEr3syy116o%2BnF3AXm9sYDZSf2yHhv3fI%2BEL%2BiDgdi7lYEowRBe8QbdMBih2cLk1baKDoEl3RghfzeHoL8Ddxlu6WwwQ9WRRpwvC%2BSSl2cnsryNrQOmMUFdAJT5sJUPzBTXp8nJCUEex5yTZwJT%2BHqwGvTAA61NB9aRVG%2BGJLq6NkCPy5o3f3PhdEdWeykA2SobZPk%2BNAg2SARsM%2BnKU0BXzba9ENI4qKptnQZHDcmGONIFF7WsZ4w%2FsWapaz%2F0SJVA1M6hrg1tDyn8c%2Fkv76IKx%2B4DVcQtPB3hAT90ciF0Iyyj5uPMf9YtFFTtyWmzfwBy7HyQ2sHOMmDvLKrIRtNWPlNawARuwiw7fotiU8hl3iWVsh2WehafbJyfGdXiPOrbIChJDbx92lVoTFfbSIjXRHiWM5tb1bHlXTgRMkAZLXOEL6llIqmu4YBZ44iOjgiwms4LR0KnybXCAo9LapHMS2cvqY6vKzDAJen6Coh9HOA7naxO0NBImUmLTSLBJVVdzbEoc6l2zNeqM6vFkkMrTOqOeipjCtFcJxywsA5cb1bW2IDUuA644g8YzhrFzxDQLYNe5JC7EgXCx4E1OjFOKqoEoH1CoLFcgRDwGplvJXnzl1hwIb%2FsrCcgurFnMbG%2Br2zmGXaSzsk7vGvi%2Fk9SWgTgzKUBD7N7AqRVEYEI%2FHasrDOwgyANQwShPpiXsDczqM9t373sBYX9ABvuClj7wn9ZGs3F1piWjRKcxeccBjvjtjAx7j3oIX6WO%2FoLczdDpXHfLD%2F03dvzUmLtE1i7DBKmfPofTNjChRH8Ol71HD4Lo7s8%2F%2F%2BSOxzajAWw%2FiL1B%2BlsPnslhJFYFZDkOeu84iZDFsJEr6mGZsbXigo26CCYFdRj7RDoiNMbgqufoy%2FwWSiRQVqfTJBL0GAZFzs7GnBxpm1rG%2BAMLoIRoUOnRSiML%2BkLtD%2F00E2J9CrHVFYNWh4nOiA5B1Xup1KDMmQOx29%2ByEHrbu3%2F3bH1kCBqZkawO92%2BEApmGBfjuD1VkEI8LZC3Om2%2FAMcGmMDalXMEnzXEAYraqfiYk9PYuL4oWWaX1lBjy%2FnQgz0jEAC0M0JLHtmEkwh5A3wxLQiYCJmkRY4CxF9azEHqoaw2FmJIsMtuDFBxTUzPqpDseSmvT5fXD%2BpCXu0H9tKbazJocoSyXNdONjsN52pSoaOfbhOZ1uTbF9d1BoFWPJy%2FqllPKNZvWei0S8BmJGHE%2FJSgySIhV4jLkin9w6lUDjkPA2Dn%2BW5vbdU6Ji11YJ1Yjq2%2FyQ2iYhIHutH2UHx1QjK0Awc6xfYfEJr7texKQXViz6IbM6EHmvUKMWhJkhupI0%2BrUIYwKaRnWlmDbGIMHINPcR7hfXrVqVUen0ztZFUBFQWgJm8x%2FY%2FuuvQeOnETYn8Ue1AdZ6sHa6MCqwastj6NhUzw8wBG%2Fnf4%2Bb1EDClzi6C%2FQ3dwhT%2B%2BWH%2FpXRTjk7tdDaRsNGJSmZfPGmvRoQsNK9h49oM97TfqxQ%2FsUEgz2O0gnQwdJLT1xNDmNKkrgoCCBUAwbeX48MgK%2Blq0hdAcG7wgpLxQioGxeWc%2FxUA86lkjQx2I0DuUxR948w8zfnq1z5Ujb1zJC7L8MBVAyRZZd0muN1tC3Av00E2J9et42gka4Ta7OWl%2Fqf6cQuwCWpfHfZ5%2FZvX1mM7pjxbI6ZWZumadlnEbmF1RSI4hA3IpkLbZtxQYcAbvi2JRyBZ%2FSUxKSvmPD1lzeXn20Aa906Q%2Bm4p7C5nMA5LITiO0KoBYOMK1tfFbbg3xz6TyHgElOEeOF8ix0rakN361ti9SEPqtOzuT140666%2BcuqdmGiH2t6nyKTYMWhsbhC1muk3olsmDnbVPon5lvUwU2ST4rx6a0vvvHjax9hh1Psi2bqzesyt4g2WyQQXE2trbRpYd%2BStibtyMugxk8YEHj%2FnyMXQC7zilxsf3v9ULeuoeaOuwvjspJD0lkTLfVFYSj5RwjDen0SXnbt26JQHaRzaLwEGuAajUrKoXM0KQgARRoQe%2FP5GUg%2B2mwoAfgKgpHDwaiT6IR4tgV1K%2B1vr9Ux7fMSh7j8DFxZoAYWOwBfZA2UfqsT6CeFtHAcRsAm33wjSod%2Bu2gJLenosnXag3kHwgWBji%2BIHdDb8L0bvkny8r71luGmAeEq8NIggbVoejphjHo1UWxpFjNi8N4WoiTau%2Fo9oYx6ddSjZ96r%2FqueHK6uYoyiB8XxkaKPCAb2u9VjJQ5xN4XNFsHqHcSj7C0IL%2FpVceMxqE8hpm%2F0AQ9zZG2r2V8038UCqBG9HLf1usrL4uhNkUuKbE%2BPW9%2FYG62lzOWKzZtaDmG1D084gRiF8GyNP77%2FIG9u2TvVz5oJKsDgp5X6Ayc1WldI3Du0SK%2FVTGtDZC14rb6SSVncWziuIymgaFu7TFNO8NrVtAG3Ly6ySo2FfQUjugta9BFXB8F7DisEFAL%2B1HJ5hH1WMCEeDlNg11wz0LXGrWiOqulHseJJk9ajdcXy33JAU6BNn5FTj8J6jzQ2%2Beap34cUpYr0r%2BYh01xuW%2BuTfo1waZSjk1pffcWb2kPaaYBg1WmkQ6Wr4miduoouSwjW9swLJPFjCXEqnEZGzjwrNFDLsYugF2pxIVhIF0n3rqnD736cbqBdAhiO0wql6QAFeFonmMyQxYa3FyNQHaRzaLw0BMzEP1VOUlUaECT00RAAC0Dkb83eHMIAoKIjpQuS3xjjRBiV6N%2Bgc80Um%2FM7tiz%2F9Crb8vc2zgjiIHFHigkWtrBjWEa5e0eDRTwA8kTsJ1KHRXkRYiavJTZVNf62RQ8wPEFutvGrhbuFsbya6WerE%2FVNX62w17NbjR3serXHsLDMOo%2Bo5F0V9WLw3havE9n3gKClLbKkOdacykr3RudocoqSgRTAawLYCMnLrTR%2FI7ejtgHMldMRbBsnoueA0k1gnGT4%2Bwsm%2Fnm%2FcflMXvYBD3dK9vYMjaMYQHU0IhOll4f8V%2BZXYbXE2J9et4%2BOsFyRsWeFcUy6OMs%2F06POIHYhbAsJb%2FtO%2FyifMMzwrNhXS0EvingFIk0g0qalV3VUNkCrQ0G30Jb%2FWQDLpBNqWn%2FaNo03zGvf0gC5haDQh9we4EtiQi8bCT5uLAVXcTtURATwzZMPisq2TRUHqtyEC%2BnabAL7lnoWjdCvwLBgp0dXy9J7FjXRBxkT8t90xYTs%2ByHr4uzq0ubXVlwZ9jIP1FiDVeaj01xuW%2BOTd6zuhWbWN%2Btd3zMfN6yomwTn5MhOHBqBCzfKflhU%2FPVARAEqMPsug7YmxlifR%2BpbgWOt9%2BSh7GLYFfsJYObZOvEtL3XYieK%2B4vjsIOmpmfPhhGOlnOMNCQlBet6IsgutlmsSX%2FC5tB9EMXo1OQ0SEltGUr4DAUeF%2Bi%2FlKAZCMJAUw9PZcJFqvuJygH0Dqigy7Ny%2FXfu2f%2FCK5rHwBMds7MD%2Bwomf9FHfvmfUiUpecI0CCoiiJoswGp%2Bfy9UAqIsXzvcLYyL1KVXXe2t5pgawpEsHs5jwEPUgP6%2Fwzo4o%2BUKpbsg2MHTgi%2BqBwQhbcV4oL9mSjx3hiqrKE8wmFoYGzlxIeDz%2B2A4in1%2BHVT2oF0zFTXjgeU%2F2SyPW4JEgiwZqGIFipwYPWcT9Pa0jNUtHn%2FwAqiKMbdqmuRCBXGPQheE2iT%2B91RMrE9r7H64pQp5c%2B%2Fkrt6xBUHR0RQeMbpfEGIXyDLGf53McUQjJcqzoaxOf8bFQiY5dGkjX0uhnUV1oWkFrQ0E33La6hfGppQruOeACoV6IwE5TB2HiEF6dkF9RPlG7FF32t%2FjUyePuuOBgiB9FLBhERKD12yVNBSxoCpHzGVN0mAX3rPQtZ4FHV7gsLkgmhbSDg%2B%2BJhhkT8t90xYTf7WlylIGOyd7XPM000S1YI2u1Ce3jaPn5XxtYrlvvk2TwxZEasEmhth1a9iKTcg2bBs6a0jrPFLdhAH0RXaFpdpAr2hwb46A4yYLGl%2F3uZwVVQi7Um6SrROV8mCvfufSCDqV4cp1DEeXLFAB7RmEo%2FGy%2BzVkPRFkF90sFmlp8SQ6JAFLWh7W6Q7UlpExMd2QUW%2Bu4B5AabJCUk%2FtRCohdBawvyDz68yv8WlFC88eekXJ%2Fsz5IGvcNtg%2F5QMO6RduVEkLmfpjs8tB5j%2F5EN7lEPpUSjWcqAREWb6P%2Fm7jwy3cLXXpv3J72aUhstdKZWX1GVz9FU6e3B7MLsyovr6xmM5gs3TXB6fff%2F%2Bd19ypM5BOaG1sN7se%2BsevYUWVAmsPphbFRk5cCPhIVP3f2dIdfWQCzD5oXsFXRtcEX%2FYcU4y9Ux7X6nIBsOn9Uw%2B5mtMEvU0to2b0rhkXLemx6gPbWWQKpIB40wjCloz%2FRcT65EqzzVywAfeOXdipbMGq3eIRk6MPiF0sy0h%2Bg%2Bb6q4dtx1TYzBIVMrJAEeQIzXY8qotuFtTayG2rXySbUq7g3me9rocqN4KZh4BO0M%2B7Ugr9qfEeH37u4HM%2Fz1jIXWi2jmgWtmFE7oacRQcRC6hyRMshjWldgM%2FCLrE7GDoeMxfEWwxoSEeYrlGQPS73TZviNP7WGp%2BVfH3ptXS5mmpUT6d9X67NH4iay%2BZhE9Yp2xDl2zRlQaRWbEKI3ZKCP54hRwTAykistpt8f3oq6DSNoYRmgMI6pFcwZhwBx94eA455mbQi2JU6KP4d%2F1y8iboX%2FK1F1RGN9WNMZRxKYB3WoD0jqIAkdKch6du%2BAiC7yGal4sym5tVZyVgkLMt2SclGY2abjh07d%2B58Yrv%2BaVa8gOmJjF3db6Z6UUekEkKaEPuB2WNqIEgnfreghWNvEPqfefvVQ%2FtQL9Ym2D8VRupCb4b1JiIJqAT%2FaAxI3L81xUrGMEGfShzv6ugjy7cAdxto4W7J%2BNR1t9zlotD%2Fv%2FrfugZdiJUBcJ%2FidT2o6caMsiqdYjpsP20e3dGXXjp68g0JCMZsYJPRyZ6gBoYq9tcPjpOuVBAbCbEZ8NF93jyQ%2Fj%2BubqmPG7MPy5qt8eSHiaImGDeUx0UJfrUGgH3s7RAoAUWub84m6O1sGeMPf48sTqnsgmd9JhyhPRfq2xG2ZPyPJNvkSvqExgzR81bDyO4dQ9hJPUYVO485%2BrhUYSwj%2Ba2SdVt9XXOlO2Ydam%2BgfivpW4NRkzb8M6K6JN2a1gYO4Jy2%2BsWxKeUKPoO6Hq1GRkJCd1Hc3ouUiZepOL57pxxUrj%2BCQJ2z4%2BogFtYZqtMaxopAaqPnUpWDwuU5ePlCeRbyYp7w0DEoxwIP9RG0gMty10isQVMzKvdN6TrbvfGZrq%2BqyUcZxUSTuNivn38NeXBINFw6H5tYgsxy33ybatWWbfrM9f8nyBm6CUEP3kYfdiHxdNRChP9QcIltPKJXIGacAMd7Wggat2iXPO7i2ZU6KFwnzyumdJztrJMNNNawbsnbDKL%2BNNKeAQndaEjr9W3%2FwuWwqehmUbPpZxZDUBusftRV%2FBCcV9i%2F%2FYmdu5%2FcK2P%2FwYMHn31a%2F7RH3IAd5gPU6dTZwYh64K51HEZEdK8AbEJD%2FjrxzwEtAPofO3xA8ByU4toI%2B1MYieV%2FeqgpAuoFSYI0acdGbMGl5xkkkmW65Xino29ZvgW42%2FpKC3dLQhaf%2B9KK1a4OsU9LSUwNAmQZwEOdYoxoRmMxnTraTzsMPLRfXp1Dx37zGtnAtkdgD5DYcl1hte6JgUxxOmjoF8VG7vlZkFdEC1H%2FUp2UFJ9dBycrW%2BOJk5IoarLWtosKCfK7E1tmCbCZJ7MyhZzMX1taxvgDC6Dcx5ULm8PmIUfBgNKYVKBLFP8LJNv0Cb0BhDyigiHJWtTRScZw6dYcjn4BLAP57frb7gLSFlR28pUX9gNqB1kdsDfO6tJWJ7R7AHz8rFAjtNbMUXEpik0pV1Ase9ZfS90GPCFBLquhXaW3Ey%2Bz1GCmoVmI%2BBex5xLboECupHB6ECIWSCqiE08Ol%2FXCeRbyYqZ3uORhySjHhhX9xCxVLHeNxBo0NaNy35Su81MrzxGkrZeipGDGfIqqdE2c%2BeL52YQS5AW2KQtB7DGOyIPqRkN0zRaKpXAtHDhA3IjdO6FXYP4S4HhjCwuqRbv6F8%2BudAR%2B8POahzScDf2aSgXGrlFcyiIXrz99OtKecThgsfH77pS3HZNdaLMYk3L68n71t6z0TwdV%2FPSuCvuffvbgc4dfknH0%2BIkTx16WPxw5JG6AwKU9lgiYkSQA4jn9CPRH6Cuu%2BZiYNuT%2FtEz8iVOCFkj2ty9DXiZdHij2aJMRhJHQFH24hpzHECo1KJCi2AhaTTosc7pxgH0qY0d%2FAe5WzrlbLvEnS94%2FK%2Bdt3TSeFVojAI4p5hgAPzQS00GkSI8c1NGKm6hA%2B623yAYOPaZAprB8fyBTRDTqgtjIPR96GuifU4ff0Kuxz4lHba00N8bwopl4dKFdHhUSJqZntskOQIANj2WfLdyczF%2F7Wsb4g2dxxBTbBe36FnI0YfFTUHn%2FsPgfn%2FAnWy3bsAa130hEd2Yx6ZSjXyjLuHVf9SUgbeNjnDgBqD0RZHXYD5DCmmB3ANp19eBBSLplVDdHxaUQNqVcQcduzzvAQGcd0x7i1lnyhCDxMksNhnVD%2FXn2iyqrhj0Xo89DdU6BGxwe3eIiFqdCnC5HuPzCeRbyYiy%2B9XcQPSmBYTyAE9PWhDjXAgxTTc2UrmMCDGguvQaXskqvkP04FCR5kQefv0240MLZFEIQFhT12mxgKlekMNrrA75bQ%2F1PE7dz0itS4Hj18hYWVEt2retZFLvyOczP%2FxI4G8r1gLlUSQcs9frTl49F2jMgoSsN6Xeux9tebLPohaDnwDMaCqgrOvKhyADBeYX9Lx87cfLU%2BzJOq76t%2FuHdN06cOH5UfABNBDy5W5IAs0YDGvF4dIK%2BuOHXGwIVDPm%2F7BOP53nv5BH4QZZGEsSAYo%2B2GBRGstQzKlympii%2BiZannvUofV3bG0AXtculb8fRpxIxAzr687tbV%2Bc875aOy5G8l6Pl55KCgytG0i7a83CovBMS9tRuHWWkKAh3TUw4xebd14wNrIAAMjogU8jzlCqBTBHRqItiI%2Ff8nSZLwv458Bsq969%2FSM4WXSu2VBBkS7xl9sgGTrKluG3H7qeiHeADXTG%2B9fZvzMn8taVljD844%2F2f9u0WkrjvgnZ9hBwhbIbwOuJ%2FOeetK78iFQ2VJ%2FBR3ko4%2BoWyjONSIG1Z68YF%2FbVH2rfZLg7lF1a%2FDARRTabevTVzKiCBqG6OiksBbEq4gsra0I3xF89Yuh2ddTL96q5SlnSg%2FlcoNfiupVL%2FM35RJTi8E3ZofoGuPGb%2FtKQtIGLBxMWeHOHyC%2BxZ2O3oHzLiSGcFWLFckoIarIlTPMISTc00Yv%2BzLA1cRn93Ez9l9uM0yTpWpbv8I7AJJcgLaNNyqsNoMEVPJCCrAZ2cR5Qg802dcIMBZeS55acpvWJewLEwdqX8YP%2Bmf%2BWR5dlG3U83DlCoDZbu9vrTMyEczRJApyF9BsnYwpvFngOegtBopwRpxn1oNA%2FB%2BeMK%2B3HjMFAiKT6AJAIOPydJgD1GA5oxGlCKvsatcKAxKwwigQoHFfnjaUD4efkFMKA0EX6PhP2%2FgGKPthgs%2F5PdM65wofimkQKoYUeX10NZFJSMYwbzuhtu1vrd8pP3OFp%2BThKWaB4gAJ5NJsrSdaKRsKd2qxwXiBRpihjCXVlx7XtvGxt4G7Jdqk4NMoWgcpIpQH8AjbowNnLP%2F3uheFhvHA2fwW%2FQ5qWmuC1rxZYKamYSb9kAJgtu6w1bintlrzyKHcCMFmC1zx0f1UPOyfy1r2UUjtj7n%2BUrxy5o15%2FwkGMmLH5KoMsWkmw%2F9LyVI8QKRz0VDWEJIuyEo18gy1Kk7QhPKTJvK9R%2BynbxTPmlJ94nQt0VWjP7g5B0y%2FY6QzkqLkWyiVzB20Qlx1OiRzzDXKWOlwy%2Ff0gIxk1s18shqbKj9ov6KIy%2FnN2Vx%2BzfLWkL0nMpIpYjXH5BPQu7Hf0sEz3RbEOnio2aCFYVa4JHWKypmUbslUHvuzjq42SYN8nsh30HL4KsQ1LdvG1CCfIC2RTUYeSg0xMpQ1bVmkxOo8q%2BbDp6meeu1hJ6BYDWPIBjEexK%2BcGoenn114Kzn96zc7ufbhwoaDVY%2BhwSESGERfG%2FMmlIBTYr7TmAFMQhsUHwDoa4G08yOP9hwxIBp04eP6o8oP2SA0A98EyDwzD%2FNisc2LlHGEQCFY4D%2BcOHeNu%2BANY%2BS87nxus%2Bh7OvPcYl5LglFS4mvgkNnhDQItnNQ1lbsQknMYN53A03m%2B%2Fd0uS9Hi14N1F%2Bbazdb0AHBvAvLuPpBjkeco8aKYI7D%2BEuymq%2B99u3DBAg29XfRzKF7IkgU5DnCRp1UWwMe%2F6erbrlMxrn%2BgYDQ5brlbViSwU1M5G3jDECaS2rt7GleOToiVOnww7gMdXHPE%2BWQ5FrX8soHGHZx1%2FIL9ouKEOvv6M55Pj%2BqwcEujC8%2FqHnrRJRnafjw%2F09nNwJR79IlqVI27gd3lnt5Nsnj%2FouPjM9MYJWzXHiJuJr1WeiB2EGLCeqWyybaNnVN66UI9eLoX4ltWXqzkHHS4ffP9Db4ya2a70sQ%2FL0BnWmx8m8jLvyOAVOjmvql7D6pZojXH5hPUvodoTgjRK%2FoP00YOXeviYAjnGEXTZnFmG9lcxbGhj1cTLMm2T2w%2FsbMxRWAJtidZhfHNITichKMq4%2F2SqzjpggosVgVzRmE3oFiirnARwLYFfKDwbM1oXw5rGXDz37tJ9uHChoNVgKb4TnGIAFSOigIZ0%2FZl1G5ZR9R3718gtC4seQNY%2FgfIzzFemf0AEe0JkMwEsO4PhRyQF4PbA8ShiK%2BWVI4cDBQ0dePnYSUIF8n6Oe%2BtjiqqfleyTnc%2FVlbRT2T8v%2FnGOJFGsQR8Q7boPqmx7KMkFJQIUQM5jf3Xiz1u%2BWf7QAWduiJGt3XTcidn2gh4IUEop4KPdIFh%2BEu9BQS7kSv%2BWUN%2BoeD8SBM1L3%2F4De6aQ%2FFMdG7vk%2Fs9A3onHuqw2YeqH2yHz3DVsqXjNzTm95BtJaVm9jS%2FFdLhoCbF0xlifL0UNuU8soHCF%2BnAcjX37Fd0EZen3FgO8FgRGVNY%2FC6%2BkT4jg6KGjIeDoY7u8RYTNUj4krnmUBad95n3V%2B3Axyxm8khSpe624BdZqpgBJbGBFfa%2FsuoWtFUV1kwHKiugWziSo5euTKdKp7%2F6tXD6k7Z5h5GMPuD3o78PLLmaDlPZWMpfvPh%2FRRTOeCv4p8kGhjOAUOMU3q16FxeCJcfiE%2FC7sd7XPREys2kmG8ECv3Zi7smZwjjD2npALa15ejTniTIftx5rXn92zdjFBYEWyK1WH%2Bq7hrsgkRU%2B0Xv2K2oaPOaDHYFfJT0isYY3WIPQ%2Fg2PZ2pfxgwGxXq3rrnTeOveynWxhe0BrD0jM4x6A9k5LQi28WUxBozfJrVTvEEHdDgT1vKwQflPqKlTqsAliLAU688a6UAvg0qmfA%2F8ShmJ%2F%2F169KsCCPzRCrxbiF8XMjcj7tNALHzYICLP%2BL2iLhHbcx28DwUJaiRaz1JxkzmOfdeLOW75Z%2FtNAz1XadZO2qGSj51HH%2F7znQjot4wOQji8%2BFu1ZbZ8OGN4D9b7LgPdul8UAeOLongkwR8TwLYyP3%2FNk9%2FyQzh2gccp5VD4bKno%2Bl4jUzibcMgKnSWl5vc5JL0X7z1ImgozLgebIcPeS2tuySqyXe5sHI544et10Q28tRYEAg7L822TwNr%2BcdRwcEDRlPB2PC%2FT2c3HGovpCWEWlf%2Fzsr71FSoNWwGNR%2B513xWp8TUCee2wyU2KJBvpbWaB%2BNO6wgA5YT1S2UTRwXferar%2Fh0msjX6%2BrOGWYOWyf7TTJWrh1wrGYdLF2Bf6%2Fro6jOBTdd5oN2ao6e9nto4TCrX7oT4fIL%2BVlYUgMC0mzGelBeiJd7f4D1RXB8WR5B78lDtr6IOut2qSz78cGbL%2B41xS1g9kLYRHWYWSWk6iZETHX0iB5PFF8HucLYFfrTmF6RBbNm5gEcC2FXvE4AEyxkp6f%2B%2B366cTgu5TlGEjpDWHBHQEIvqFn56i6CeH7z3vsYBud5qMvkxmAAKADRfBUBIqxneoBDMT%2ByBHEeQcCC7FogV1vhoUL%2F666C39dOI3DcDmrwg%2BV%2FKMn2jBbecRt7iJZCKAtrvcGYwTzvpjebx93y3k2nwL%2F4UmDtDlHNqZnLlxTxRMX7VRfuEkCw0ejykPGQV1myXXs1HsgDZzf2RGQsyPMskI0hG%2FqczByjcdWah%2BKoXhhqZhJvmZ61rCrU28R5sucIsGXFWJ4sZ8G0rWXMPnowUjNWv8HWIdeXPYjxX3Ql7blHKj5zjiOtxj7iPJ1suL93ih5xCNUX0zLuE5%2B59sbb7lxtnVrHM6j9rjhhMhWaqXAltngEvpbUaONBGNX1DFhOVLdoNnHL8OlEe49fS9zJMHM27P7YO9mf%2Bk%2BrVmpwk4bIdGfQU%2FItObbkLOSmy3yQLI6zKHAaWmD1S6J6dQE%2FC9ExCEhiO1gPxgtBYhbqpATHOQQ94S%2F8V8VHRJ3qTfryggOkKp593XcBsxfBJoo7Gcp%2B8x0iqzdkTcmsH6T4OuCYsStOIB8bhWWecojdOnAsgF05UEbJup7vP3VGTzeOBJeekXi0TD3OMWjPgIR%2B3pl1OVuzOOJJinqxa0c0AOb%2FAUD3c2rF5JzBh1Fv0fKVlFVZrWT%2Fqy7DemqrQey0Y98vnGOJ8BVKsi2jhXf8JZdCxQjhk7DWH0TMYJ53w83mcbdcz1TfiqMZa9fNIGeBPKe4iIdnBVl8Ktx1o3GBlQzggfUP7BWweCAPnOewJ8YZi0LZGIK8EjxqisbNIhT3FnlyWN2JtwyASQc8csKdQEGArSsmJ0%2FW1paxftGCkVargkJPDjKN0d71xqsv%2BdDjCCoov9KwAlOo9PfoETNUX0zLuAqWX33976y4S6VImqD2e7%2B1CdFtm7EajsDXei%2BSWUZUVzNgOVHdAtrE6VTEjIDBa%2B%2B8q5iZbq3fn8KD6E8tuEzoRtf4XlO1U%2FLVt99RnQtuuswHiTZGQoH76xlWv8SqVxfysxAdg4D0K7GdrAflhciaQF7tBVtfKThOCXrgL7zu3gxAp1%2BKDtCs9u9aveJLn7u4GDZR3AkoWw%2BlGEWdOIEgDaLFYFckCE5Vtxxitw4c29yufCijNESv9Pv54YTMHtltXrQmfRjCojtyHprF1iyOeGgD5wf52qQAcIQKPuoYGxilBzCnC0AKEYocFNdCfr18750rJFTYbtA%2FJfEdeMU4lnSCLGiFh2eWQx4RQzdRYgWu9ZWIGczrbrjZPO6W65l6j%2F3XBdoha4%2BXIOLyxUU84awAi8%2BEu65WLrDgAbTu9KjUGX2%2FSKZgZcuZKGNREBvTHh6%2FZDROlwdCcUx2vtSCs2w1NcfVCffSSQLsFbnB9ba2jDzxFQ5HkATFK4zrZ0xjtHdd%2FqHHUaaCckhkFF5uJjGG7mPwiBGqL5plaaD9C1%2B65fbVWrRNqG3h8zPitrkSWzQSvhZklhHVzWmvU0Sb0nJkBAzUIzGUQrc2Eh5Ef2rFZVf5XtNnp6SrkNopxsF8EC9ACtzoEKpfYljz8bMI8KDk4atvvkHWg%2FNCmFd7XNdXAo4Tgh75C0dO%2FJqok95k6BOn8fqvwLUugE308xifPZmCxDNJtDhFcNpvAxC7VeBYALtyoMw9slBc409lM7nVJLo1yJ%2BBhI4QFt7189AstmYB4lEbFFFK%2BM8PdVZqnSX91%2B9hVURVQUOBBwC%2BUhog1CfxOIM9jIIFyK%2FLzN%2F61X%2F1hXYg%2B%2BeS%2BJ7%2F56byP5Rk5%2BAlFq9xrQMqLO3d8j3TodFMstsAHtWcIi5fKOKJqz5HweJT4S7jAjsZQA4dDzUjaBwOHO6JUcaiIDamPTwU5h3KmJDNoTjVEsp3lrlqoKalro1Tmwiwc1dMQSwDHEESVBCxfNF2AzkjEP8Fwv4wCPiJqzIVFNXSeIccRswaZV3hESNUXzDLUhs%2Fd91XVtxJqG3NIEHZOMPEDQf5WpxEyCwjqpvTXqfANrEcWQMGWN8pYgnCg%2BxPLbjM95puPSW9%2Fxh8trkjdYEC13%2Bu6pePn0WBx4om0ROBHFwSWBGeV6v5%2BvrQXNhy8hc0RXfqtwSdgUHGPnESr%2F9UkWyigC4mGqdY7jgTEBzCMhnEbg04Fs2uFCbcKAvFu%2FtYwywiKJ0MdVCoWI%2FKGU1E4Byj9sz5aBbn0BCP26BckqMvv%2BSHetBoi5v%2B9DR17R0EdRgeACqV1V92FhjCCuJHQw5IGXDOZfHuJKvv1pn%2F%2FGcw9W05SOIDdgqFz6nLlg52PuJav2jp75bvmW7sh2S3pITetKw90pcRl4%2BBkShMNG4hdaSIjQv8FSUDoBJQL5nyKCglHTIWxbEx7eHxypseUmPOk8nePTtiZzlWzwK0VpgEDS1X4J9BnowAO3fFFMOyyx2OIAmqlYa6d%2BgN9IxA%2FJcIO18FZdwe8eT7cfCBsq70iItsWRgXf%2BoL%2F%2Bp3mqG2GQqs%2FWEDaS3ILCOqm9Nep7A2sRwZAYOmhESKdiE8iP7Ul%2Ftes8JOSesRYtrb5wbbiNTtJQXuW%2BWk%2BuXjZ6FnHURPaHxQNvG82sD6%2B1aK4fn8BTaXhh8USUmGPnGI1xfFJiI0TLQANNuV30g8Z14buDFCcIOIsWpRZUvAsXB2pTRE1SAoC85WcbXGLLkTmobRhAx71T7htXAgoeeEsApvFufQEY%2FZYFWk%2BwU%2B2aE%2Bje4saGC7Ssbdd8i4W%2F9UXudKKpCehAcAjVK5CGKLGaFwv5YLQ1vAHsbAgvJ9btaZb8Oof0riQ0rw7fcoeRpBccIjRgywCR9H5yOu9SW%2FW75nqm8FJLslJaSqHZmaU8zlsxunYSIW7y%2FzK17uZAB1M%2B2S1NzhYGhlhiioYDZSQAt6Gk6n4SADV6RJY2eZ6lkYgi9Rbbs%2F66CtS9HzZJUWAHYRLAMcQRJUm4zo3mE3kDMC8V8i7HwVFHvE%2FYdY%2FsJ4MmRd6REX07IUsnymGWrXzFDD2sfp2s0B7cyFoczyfTmFGgW2iYwkBAyYkIBBPg9AuxAeZH9q7Ay%2B1xjUYZ6e6JDQBpG6QIFL9Os%2BfhZ41pHoCYwHldCUTTyvtl5qYPLW1yVxc2koEINs4FKSoU%2FcpUWyiQgNE60AzXblQ82cOWADgwkyb8CNRHAWlkGMtcWiykLYla9BcMvt9wjE7VfFP1ZN6vHmcUKvx57JumWAhM5z7Lw0i3MIxAMxRC1vl5v6oY6%2B7OVV9955xx0rb7v11ltvvumGG266Wf5w28o77rjz3lWrKyYXTg8A3cnkImAVg11stfMzUBW2hzGwsFL4PtdciZlv43FJ0JZn75Rz4nATS9fB3IdyLLBtcK0v%2Bd3yPVN9KyDZrUWhvn39Nq1IJ%2Fk7DhOtZ%2FF%2BIAMgsG6XNGjNmBND8pCSBgoqmo0MHnmZKLPxIXjkDNzqYOwsUz2LYz%2BktdBy10Sn%2Bz1PdkcLO0ABLAMcQRJUuwth79AbTE8g%2FguEnauCYkxoBTX%2FIFyI4%2Bb2yUJxmg5kXeERF9KyfKgNQxVrG33rnCE4VN%2BqlBVllnOjusW3iQEDJiRgELxaoF0ID0b9qZdd5XuNQh3m6bHnNkMbROoCBe4rZ%2BnXffws5xQ9CcYrlVBMR7sQ0WKQGpiLWmkubfQFZOj0a3ApSfaJK4xNaXx20ACa7cp7mqvlgbaNICDzBtxIBIewzM2tQ%2BxC2pXihKuuE5y9utKjvX6ol6jHmzGExSBXIEafbJDQcY6d52Zd6ojHbVD0PjFd185RnJ%2B7Bfbf8tUbbvjydddee%2B0Xr7ziiiu%2FKH%2B47ss33PDVW25d8TV1Acr0AKwUYEQvAj0R6IrIjOuTgEKkD7NKwcKXle%2BD4659B1P3aUqQpxe0Wo80qwTY0E2YnY%2Bw1tvgbvlvhRWlICWUbV9U64qVIW13jMNEdzKkTjIAKwGHlEfBGhMdHvSD19IPFFQ0Gxk8QpmouiMIqiEWZ1XGWn0XO8tUz%2BLYAWmt6QldNIOyZtQJtzzZTde3sAO0uWWEI1kSVDtf2d6BGwwy%2FguEnZPdMCa0gJqGtrxwwpcsFNB0NAjKVVFEy%2FKh9gNmqGNttFRnCA6VnWCSKrQTF4Yyy7lR3eLbxIABExIwCF4t0C6FBzkZ3GsM6jBPjz03gjaI1AUK3Keacc3HzzKH6AmMd9uV5AxRQ9NiuKSl5tJGX0CGTr8Gl5Jkn7gi2cQrYaINoNmuPNusk%2BtoW67r%2BvrAjRGCk9lrPcZaTLvS8YnLrhKIe8c9ZdmK2CnJjrc6mqQKKvUIlpxjKwMJ%2FXw3i4jHbDD0Pig3VYiO%2BZFDXWD%2F56%2B44rPLly1bdunF8guXyh%2BWf%2FaKKz5%2F7bXXqwtw20p6AOoC9NtFbFRrbB84aE%2FiFCJ9mNsULHx2eVvyffJ7Mxw9CYiJdDW7tDXrA9vQTXianY%2Bw1pf8bvlvhRWlICXE7UvBtZ7ZOkj%2BNhfEy1Kiqk%2BE1ONKQFxypM4aExsW9IPXgj2xkDZeRD0NzcYzqIZYHKqMN3bHzjLVszimJyCtNaiLpk%2FWjC5Fz5N9uoUdoBCWhSRoz4Y%2BbaXMDUPOiBbiv2BCK6ixZtcQIpaFApoOZF0xb8WzLB9q36uGAmsbfaspBAdRYDBJFdqZC0OZ5ZwHKbxNBL4hIQGD4NUC7QbhQUwG9xqHOszTY8%2BNoA0ideemwH38LHOIntB4s91IzmgXoloMLTWXdvrCjkA2gJQkHKAC2sSJNoDmu3KtGjrkOdqmDnsduDEgOIRlWo2xFteuFGd%2F6gvX33TLStmK1vVkp5sYDBGbAUWlHsGSc%2BzLJKGf72YR8dxoNih639CnN9VDHfNzzZUC%2B89530uWffLT4gJIFoAegJYC9NhFbAzoM%2Fjos3JhpxDZw3wRYKEII00JvqAQ8w0RSgY70hjQMpo7A9rQXUPhJovX2udu%2BUUpSAlx%2B9qDBq86SP42FwRlKUnVZ1oJeJcFUlljogPhEHgt2BOLaSP1NDQbj6AaY3GoMq7cFTnLQT0rjEFIa%2FXpoqmsvvfOr8lSbCFPVijLmAS9W7Kg2Dv0BnZGRPHfXKhujyhnt1IaIEQsCwU0nUzW9dJiWpYPtb96qxoKrK30rSgEt5etN2cA7cSFaUFmufA2cX07YqFB8GqBdhPhQb4IBnWYp%2BeeG0Gbfs%2FRn4MC9%2FGzzC16Eow3KiGUTZBXa6G5NKLQzND5G2UMMjhAxbOJE20AzXdloKp%2Bbs4j1GEfAm6MENw8kFYR7UrHsk9fdd2Xv3rryjvuxukmxxtEbCwaLdWsjko%2F%2F9nl2HUuFLMuvsxtUPQuLH69qRzqmJ%2B8Q%2F0SzQLAA7BSgLvtIjLkcewZbFRW65M4hcgeRpIIhRlpStAg5iHvfYyolSxs8KV0DA5j6CYcOh%2B10d3yAQtSQty%2BFFzbmY0B8vcsdsf8MNEyXNKgtaN1HQiHwGvBnlhIG1kmimw8gmqMxQ06A%2FfG4CwH9azm0QdprcpqWTRfWyFrxpzwFia0OJYxCXrjzStk88DeoTfQMwLx3xYeUc7uDfKMECK2hQKaDmRdC2pZPtT%2BvBnqWNvoW3EIbjbDdiOAdurCtCizXHybmJCgQT4GgXbnFB78hEId5um550bQBpG6WxIK3MfPMrfoSWz8oJGc2S6kpebSiEIPNpEN4ABBorSANnGiDaDZrgxUpX%2FoJdrW6%2BroBW6MEFzLo2h25W%2Fjyz%2F7%2Beu%2BfNPNON30eDOgq1BX61ktgoVz7EIyizYIelcWv95UDvVW5gcegLgAUg9sF5Ehj2PPoENwgpULG4WoAGyfnJTgFoOYeyRwBXakM6DBl9LRR7gku0aF20b73S0%2FJcTtS8G1ntkYIH%2B7CzKQGybiJRVas8bEBsIhDK1cXFQbWSaKbDyCaozFocr46uAsB%2FUsDLrKgjBl1eiiuV7WTCtbZbEsI8i%2B8prrZfPwvQM3uF4poS09ooCalXfrM0KI2BYKaDqQdS2qZfm7sBnqWNvoW3EIzpLyYJIqtNOVcHOrVNLi28SEBAyiVwu0G4QH018Mefqw50bQBpG6q%2BKY5sfP8mGsOhhP25Xk3IqoIVE7otB4GpANdHHBTy%2BmTXSjNUDruzJQ1d3YnHUGocOOyK0HWeeBsAtoV%2F7MLv%2FslV%2F0082ON4jYWDRaqlmBSi8ws2iDoHdl8etNcai3dgUtBZB6YL2IDnkcewYf11u5MChExRppStAh5ix6HyNqZThcsfcqz31glMXXxbbRhnfLTwlx%2B1JwjTMbA%2BTvAeyODBPlXPLGUGOCgaAfvZai2sgyUXAhEVRjLA5VxpcGZzmoZ2EAX0Ja63pdNJ%2F%2BZEuTWTTL%2BLUv%2B7RsHtg7%2FAatnxHL5Oy%2BWSkNJkSM8xY0HQRBi2xZvqGOtb%2Bm9K04BIekPJikCu1uMRemtRksvk1MSMAgerVEu%2BLV5efpuedG0AaRuugCHz%2FLh7HqaDxtN5Jz60yjS7IodMjQGW0CUpJFtokAzXdloCr5g27OCNLodR05AjfOLyxTfLvSofWqdrr58QYRG4tGLwMR5QI0i%2BjdWPx60wDRW38QvYiNz%2Fsz2BCcgCcp3khTggPe3Qy9jxG1Mhyu2PtWy31g6CZ8A%2BBmG94tPyXE7UvBtZ7ZGCR%2FC6jG7sgwUS6PgjUmGAj6wWspuI2XIBvPoBpjcawyprMc1LOicb1Ja%2BmqaXXRFNMybh7Z3sEbtL5Kr7xGnvFrLkTM89Y15S4upmWtY22rwopDcEjKG5MU0O6qVo%2Fh4tvEhAQNCl5tQLv5efqw50bQJo3UffwsOTttbLxRCa2G6H82Cn0LngZkAzhAhbaJM41dWVGV%2FgGbs8JuhGQQuZ1PkLXoduVb64I1ALqEuh%2Bb9fH4l6QEHWIOIHDVi6iVLmzjSyGBgiG7hvi6bX%2B3%2FO1LwTXObAyQv9UFuaWFspRPhBoTDD37GZIvvI3kQjKoxlhcGjyiehYGXeVl%2F4O9M%2BhtG4ahMGrIPmRFT0GBoFiAHZzuMKA9BTkG2%2F%2F%2FT4OZ12cbPhCOLclK33caBruiKIliaIlc4FxnlCw%2FVXekAYmIsd%2FimM7DS0Zf225hjUNw%2BCiPk6Tm2jnNPrJMFGjwq5beruvq4DsQoGszucmmvswQnrIfHNGd4wvtIE6BGVW4TFOrHOwfZpzhdltIhpHb9PhyyZ8V5cJPguZiWkzYah8jamV%2B%2BPHQuUeMEtqsDyW05puvzrnGng1w%2BPv8Ces4%2F44JQdCvfBnpZDOoxlgcgkeZ8SUrn%2BYFiYi53zKe%2FPiS8RbWOASHj%2FI4Seq6do8uE6%2BqOd9znO9AAK7NCPXlHuGXHiUM6A0PG2xRJiFESfCT4MlczC4mjNrHt6iVBUWbUGhrvvnqnGvs2QCHv%2B0nSLjHWycIhxQqox9UYywuP75k5cNExNxvv51kkxAcPspnOeDqyySXSAghBNnkqQJzMS0mfKt9jKhV8a35zjX2bIDD30241wvqqauHk5FBNcbisuBLJr9LCCGEEMJ1MQ8IXOF0ZLrW5KsJIYQQQgghhBBCCCGEEEIIIYQQQghRCqEBSZLAVsMUj32Gm2aUWKhKlULMhEmZZZI6iNZdNuG04LyEwVmsYZT4ANT1pmY9JMouTuzrElXNNhInCWH7FIBTM6nyKQaWvqOERPanl2MNAxzYu%2Fw3nv0JQP2nH%2FuZV7ZCZFvRvDjGt0CY3w4dwiaDRGTbPHi9UnbDkG5noWKx2cdImIVz4TPf4lbmPz1ejv7TKO0w1UF%2BnGHYUumHw3HAAcMVi3o%2FLO7Uvj0%2FWe7R57dRSYF9HT8HtF3fNWFQXyqJSaIOonWXTTgtOC9hcBbc%2B%2BUFaQ4tdO2W8I0%2F%2BONZnzllJ5M%2FxUmUxEw4Nh5sY1wfva7SXOqnAJyaKQu0VzWrBmHpR1OCvzxof0j7ZYDDotz26B30m2tu%2BxOAtDQJ0dcZxx4N93Vh%2FSUazVZwC3SMb3mw4jM6hE0GJUg2B5KgdKByz5K%2FxNmSzKtY051gWnJbLfaHOfP9ZDJ4i1Xr%2FTawHKF072mTB09PdJAbdxgy58Rj0Wfk%2BwHnz364YhBe38%2FXf33ByI%2Fjrvvv3fFjWEz4%2FP4aotcFtcSdl6uJcUvc2f5MslBr6oDd3VcR1Dy3hWrPlzg4C35Y9alRObRDXa9bjZ2Fw5zQOctsDme9SRRv8H1LybIPq5ZIoNOF0pgYD7QxLAxqdh3DEcfnYqpcCECul04AGPK6iu76%2FfoNMWzpT5QAGRK4oLQ%2FBuSAAXbWhltBFr2DflHubWZkqGacO%2B4E6PXfRp4CNeqQ9NpBmRZfOwFLtLcVuzVdc26BjvEtka784J%2Fz9dYhbDJ%2Frfj4S7M9UU%2BsmXyr2b97WvCXvmYLCtwn8Cq42a%2F4s40Fqa8Xzny3MPjJ3rKJ7Nif6gfawHKE0r2nTR48PfFgssNh2FYeRngC%2F6m7npdGsiAMMWZhJIMzrCOLEphDVCaChg0xCzl0RmiQSEvm0tDm0kIU7FNj33IQhrBgE7x40Fl2XRT%2F0H1V%2FXVpk9l2e9NvonURQqdf1Vc%2F3lf1Io%2FJD2rg07tmLRPu0kSFFqutPfswFqdn1JYKSq%2BlmtFz5GN7r1Vd1Hvv%2B2aj%2FZmv7LJZDb6yS5UkXLOrTRChwEDMbX58owHmrCu8%2BdiUL4lz%2Fn9j9Xgpmrj2KdbNbTRbucQ1RnrS91crQuQmq0etgfstIKwRnP%2Fjb%2FejSokLn1MuR57qhjq5%2FbaLNRLu6HJdR%2B9b0EB1FXGSS%2FKggIjN4KOQ6xs6QI3NBuGAsLS%2FA0Kkg%2FZWj9MD9SfpDMtEbmR3xhxC27SeWGeTacy1For%2FOZdoMrRSIcnhRHQuNQAEfzZbI%2FwK96rKs4TvcUE7o1NIy9HlqqQo8Kws5jmemtgCUXxfs8D3K2v19u6%2BHRmETcbpdTu40v7lSKFMqpoWvGBbptGEm7Mf4vCb4mjZkiGwdlaBzb6cY9tmWsgWO4780jN5RlWIviVbWUqGqVl9DWvQsxHoZfD5lKdZHzxdSDKY2YtwrhfG%2B8EEQPkZKb7jFzLow116qFBppW46p2ex%2BG63sTqvfLra6Lq%2BfHzqmPUVTXUB5G%2B3q3LcVQZ7pAZZ7irDld11EC59bK%2BsIhQYwFzb2HiXL9P5ZRswZ1nh3YZhy5fEORlHBdJY0RZPCJOIa59gbZlRs4WDu6lcurSKkV7LkFkiiBxOABLVo0POR9RDXDhfx5AmfaRY4UppQx0%2FBsml3QcKTcV3mXR1keou1ki4w%2BW6rjDLvecH8SPOZVoSDwkFvFgBy8RkaaGog%2FlBjS7hADW874BgtBCT%2Bo4c1yI9pP4knTHoIzeARZZb2xHaUSh5gq%2FLXKuGg6RnE3iVmXrzV5lzo0mfYniYEgCCP5utC%2F4Cj2J%2FU3mW8L1PeAOdn%2BfTcrQlKRrhadSryzkO%2Fye2QBTf1y1FGtMqFtxzXC8yCJuMf%2BLa%2B1Ru4epZC3aGLaVqf4Do9AZ9e1%2B5%2BcN89h2%2BgjchWjrNdbxFnywIqzi1O1s5sKe5Mtq2%2FgDZ4iHyFUMqpnVQ2zuqCvG3sJWlZBidV3SwBj3LoG%2Bh5Up7mvTB03ixMJjZi3CuF0L8Y94vTIBiE14dnosM4S5NPPhttd07HoZjyPnJwU5FLVGq7BycnI8h4fC4166%2B1TP%2Ficmfq3I8IIuVMiP6G5z5ZHdEuDRVJBzvduzTRwzCr77z%2BdP7fK2sNK3B4xIXZ4e7z69QWNrcPTy7GCedk3lUII2VApgQJhmNRQTrQT8Ksg01E5ib1qWNFkZ6tswSQeRocol%2FKuURHlcPcj6iHhLA%2BagkP0pKH6p1gyqlB3VGMUgB7T5TKFSI%2BS6TLhepHmCNhDsCrusKs5x7fiF%2BxLn6A8RDUoGQwUchx4wIJDXf43yo4TIOCMtwEgT7ADGZ%2F%2FxZOmNQUNSf35WE0IMLMHIjAxZgHLU4tIewDvgGzLU6zx8kFaIEbhFTt%2FYw557mRBTDw7QAeMTfRwigJOR81sujWGfgJXw%2FIrwjdJrr%2F0bm5ylH9x2kKPD8YrYwoMxHsAVOFN9XKxgBK9%2F3%2Bse%2BAh0Gvf%2BkNpmv54HH5ZZdXZy9ruCVpOowis5QRYZHbgZvz8b9DX4TouXI3sNb9ElxuQZWcREc9dpri9OEJkYJW9y2cdiHjAgiv82Nb0oHZVEVwrdGUn9UB1SaRJ3OK7AGPUug96TlSn06xNPSWiG4LsazF%2BFcsxX8IqIa8%2F5HJjCUGnh5fQO5voS7wIPznISCXzr%2B6OaB5e5yOLCalVJMVi%2FvHlhuRr6zu7lU0DFnXYnJX0A5fqVM%2Fuvh%2Fpv6c0WGB%2F4xEy78kExTlhq9oyD884Hl%2Fo8wOMq91fmJd5Lrh0j%2BHksgPjt7CsZ3SedkKfY8KpDGigBmhAnk29vbe7ZXsB6i2TKatWn2%2BrkyubR7gJGeJ7NEEDn8oJx6ACWVGlcPdr5EPWsE56NE6RccD6%2B3zC9cKcNInW%2F3EUhXtPtAIVTarHQHfJdJVxCn%2BhW8QcvwSuyNkMlXjj1%2FkvhRb3M2%2FIe66%2Flt4zrCgEqngONDTyl8SG9tDz20PsWHHoIWMBBASFJbsgVGKCABUQDxJEU3FuCFJ2KxaL2MSP3Y1KEXxtbWCmtvGG0qim3BWqKFmEgURqkPFSyhchHX7t%2FQmXnfvoamY2nNJQi%2Fg2HAy93ZeTPzvvlmZg17gACyrji2KB%2BBXATQIDWhBbuEGHOiB4ixdKVLCRnYJKHdGAxAvMxYyYH4Y%2BZomaban99fvmzCN2LpAohjWJk2LNt2aNmw7cwECkk0Rv5siExnBCP1d3%2FL5FBnRTQV%2F5VBHnYbABbMHSEB6kdISJB%2F5uoa6538LJJAPbhkQjtvaDDfhTjERzNwUaXP2ak0UY74QYLgv%2ByoVX6RwT9KfkIB094TCs4bf%2BgA%2F4ZVwFn7OipSA17ompkkUc2SxGC7ZBZ4m%2BPj9pOM%2FdWdlLXMTdNd%2BtgAjj7f4QlGFZVifmb83JneBkZAJUjaJmZvs0Zg%2BbRrz%2FAV%2FtW7HIX4VzjKIg%2F76ZND7ClG8%2BlpPIOuFaVPnj%2F3VHWd6LjasXH1Ja1cGNdHzuDXR8Bcgwb%2BqsNU434gAYCfpQ%2BX6E%2BgjmvXr2O7AIWSZkJfelXwZWWtRuuWXXh%2F%2FNwvTqdUm8r4%2BwX7Vo3WWsWYoxrhq8lGBLRunvllBP4semPX9%2F1gPfRpufTi9N4AXNq4E5dBvHQ2X3T%2FTK%2B6Hlw1syjTJV1goZPEr%2FHyF%2FKoLRzV8n%2BWjh9LBKtVKwY2Jx7EEuSPxGq%2BJIc6llnCketeZ12XTBgZcQI465%2BXoOAtfQ%2BUHtjcPIAcVwD0UCktovAkeljlRW327g3afWz%2BpA5RfV8oD7%2BRnpqVSKl0ZZFELpsjnz4QCMYYu7UNeDcLmLmI9B6bAZ%2Fn3XBs5L7I%2BZOA%2FykAP4hQoEfOl%2FB0vSyR4UoFgZwFAEhNDP6nYJeRGFZpPlICkn%2BOezeghEIONkmNuuhS7Xl1Z8YKgi78kZKfioRfuwj%2BW5D7PHwDukAh8hhsIwe2ggVLkgPS88W2GWupQtIZ%2BYhJ6mkNSYDIJCAj9azmuZGkg%2B%2BLlZYjIsAAAJ31gh3aDrmgCglQP0ICntY7%2Fyy1XqFijdKi7L5ZYj9bXfU9R2lnGmD%2BqahQfNQosTqhz3yWCUrM5CYJ%2FhGyX2zwr%2Ft93hSaNm%2BWK3ghjc9snLW6IjXY%2BQb04s6RqFc9P%2BST2XNs2uZpQf%2Bp2OzerNxJrKVYoLtQA%2FjLfZMe7dQZPryrhCimzr%2F%2Bs1d6yZ0lgRmWXMiwljhD926uBbD8GZ34dqNzZFAchT6sXLvhf7ym4w%2FpgGa%2BT3WNJqapXmGxawWEw0Tps1OsLrl%2Ftyfqq9cDdTXfGEMOMC7n09qg16fOQMF%2F6qUI%2BJ9VHabA%2FUACS0sqDqPwHtG0tiPIQ%2BNg1FSSBaWWW99p7zS8Ui4jfVFo1srkSl6D%2FqHuWrn3QIYnO9BDvC%2BhAAF%2FDLHCWn2z2bxz97Nms7lZr4X03mUFuMS4h%2FrT9KO81Kk22%2B27Gy7n6bDdZBac4FdUYFnw6RlfbvrlY6kTe1D2N9vtdlNnDHGGpVDhpYAhJyxaOrCyuSjnlGPXQ7JFhbvnPutBUMiWRpSeDS4XQI6ZSwyV8hIKr2Cpf43Alu1W17H5CFE9ZH6xy8PT2bzF0Fd0Jf5psUB0%2BlxVAiHSxm9tA97ViUUejX20dI%2BR8Fyeh9wXOT8QZ09jGJRnC%2FCDCGIPeLpec5EMtnPtT2CWAFIB%2F5PI92GXLAZwNcTQbX867pEMsMn0b6RLNYYIMTJjs7RkC9uNJZa7CPpbLHlR6%2BLoQiRMiRFHrsCmJJmvlMYZgIRs27aFQtI5%2BYjJ6c5Pqw6phiRAZPEl09RgXVkF%2BL6huH0DmjzE2yEg6KAgD1O42oP6ERIwbJlAw5fUeoWKnbdYBk5shP5xgnVoB2AeftaFCslH7ZWg1pCTIvSdskGUI42w%2FvBE0uC%2FydH3xQb%2Fut9HKGAxwtUnwL9zk8MtbzUS3AF%2F%2BvMUenGL5C%2BNZqvd3tlu1ALaZkH%2FP47TRAN2T%2B7E1lJ1lw0m%2BADH%2B1W34HZqww6aDa%2Bcn50Y7g1SnKAEhqmEvDlvIUm33WBDLN%2BMEt9T38XM5yXOCpFFSvhbHR42PU6%2FEpazcwI0ayy77FrbrWaTlV7Ms7qQWHdNNeirP99WVxc0e6qNq%2FZFe7DrixrA%2F4Bme0%2F%2FSAN%2F1WEK3B%2BxfwUdhzPRDJZCULTLIaAQmFAQPol1%2FSz4W3sPdmoON5a8RhPRwjq%2Fxn0%2FTm3nwd6Wv4C%2Bn8QHeoj3nZrh1JGQf32r9flnZD81TgFau1%2B1W1v1UAEuMe7km79BC5wXL938%2BvDrxuqyNP0kXBJE975RCVv%2FerhLuZQE3u8%2F%2BzfwnIIdbB%2F8Z09nDMeFmzjohSpQCCurhzll6RGTrKq6uDerYmTECTz3WY9eh0ne0g8%2B4DAFILe6CiAnOAhyiBRM4ZWZiNBmn81RyF%2Bt3%2BbNLyJE9Rn9g5JGedgoMccvk5lwVBFoq6EE0qgkfmtbBLuhhhmM9OsR%2FxnZDYW9aDuQ8%2Ffa%2Bob046wGfgy5CrAHfrpeE5CBw84CEUUkgAap6DPpWceQQyO%2FLMZqo%2BdnEPfYJG99EkQ2OTMpXaoxuh5jZMYdOLgjCVmUNPB3jJhsrQv4xtHYn7JI%2BQ1ZEm8xk64C%2F%2F%2ByEbhcSBKq9U3G%2F%2FJpVfVJXPq2jxpF%2BDUgctSqtyRFMWSFwvfFCIpDKi1HREBdB5O9WAgKGTEAscGPg2%2BHBMzUJtHwJbVek%2F1M%2BABpaeK94DT771uknWUF5uFn3RNaRtkJ6ts79%2B7v7%2B%2Fttm6HK7bFEAv9BomC%2F%2F3H%2By8y%2BB%2FS%2BZYk3ELThn%2F1nwT%2F6%2Bqs1RWpgX36Eyj056oX1602Wv%2B4f%2Fjo8TcH93Y2wxXG7Wk00cTj4B250%2F7eV80Nj055huMv93Xad5zaqVfqX7ZCx8plBA73kktwApMrXJaTkpZspFe%2Fc5t3Db6CB3Qz88WixFkGnCb7zR3lYdkZgjodVPIPfiIpy7K30STXOjjcv09KrzplBkVdtYvvvSJTDfrqfx%2FI1S4pV4Ycvg3%2B2w8fD3I9bCcN%2FvE%2FxqWO1eLPH3vWwB8dplz5BxLICuZHHB4bpXUx%2FQ6uLFgqyYuIR7QdJNn1E7YOD7aD%2F3f9oO9HIc%2FDVtiHvh%2B0oxHvmzeX6f22Wru7rUboe47DpF%2FYaN3jsK4AFxm3lDxSfWr6ES998M9mtT9NP%2BjeZyd49IjtcO7oT0dgCzgs73zz3%2BNnDAA3rFtALMEfMr33zqWR0dEL0QjuRbKyMTnvBQJxAvbJGhfunu%2BsB%2BYBQUEPFSylgZzj%2BZ7vSgWgowLBNLvBD4zMntkpMgmvfrfVqCJEoZ7fv4UxQpSHLUFl6bSo6VJ6olMgoJKTcSh3tLYJAyO7Qb6OLRgdefutt94ekb%2BlZTcU9urI%2BY9GnEfbw3BaA78851psDxdGRy7wa2KNSdzhAoWyCGdlVYNU3WfS6zi1kgPIT2ZpR8QQIcCYinsQgHlytkkjzzZJRaAeyf%2FuzBhd5hoHdyUh5UXB%2F2QXV9D5daRvnAT2L5YMAVMXSau02WP8SIH%2FQa2mCklZ2gfG%2F%2FJpVfkkLn8dF0P6sBlVFgMj795a%2Bx977x8c13XdeZYTSqpV7GzsmjjltUtbri1nXE527N1xZM2Opla2plTlyCuaYoMNgogy4KxEW4w9BRNl1xRdxX9QmQmq0zVWQ2gQIJxEpD2MLXGYMJwo4Y%2BpmA6NUSzRI8qiMCMylFCUCFqE%2BAMRCZim5p5zP%2B%2F0O7ognpqNLkKkn%2F9owezX%2Ffq%2B%2B%2B79nnO%2B3%2B%2FJZoVp6952pgUOtc7BqCkv6ayzo6y3ggoVZQqWBBVbMgVbgv7kn2tDMpjCYFrVKXd%2BVajCBHgzuG33wR8FfCZgHvTvEQcKrcefPHj4%2BNSZC7OzM6dPTDy9f5dALMgciwz%2Bz7%2BDwT%2B6EeP71MckTfuM%2FaBcclb22m1Wkbp21p%2BgUH1%2Btu8dPzI5fWHu8puXLp45GW7zE1sqkGiaITeQ3QufNDtz6uihfdsVjmPd2j61b3Xrk08fnzgYgBVw%2BGoPrXat3%2FQIO%2BWaNfoIVeKeFANfUpbuLDLzAhtlne1ZJ6kEiRmeeVYioKqQHOBQWZwUQ5ZDR%2BXRmpu9cObkkYNPbh%2BMtYtb3xrgqKrhCd79U333%2BF4lT%2BAOaeD%2F9Oy1PE4vIvhfFhuifyDrwOt9l%2F3boPiL2TPAny0FIoYiAU18deoOSBIQcNC5JmwABHkkHo12sJisn%2BenJnKsH8f7mZiKyJPZu1gHdDTJ%2B27dsW%2F88LGjhw%2BGH7jZylOyuJ%2BafEEAl07uMtW%2B9pB%2BwlM6eahNpB%2F0vjrO0xJKyTwsrqMgupYnpzBiSBX%2Bn7WNPrIVugSAkO03O78YEJQi%2BWGgFkb9L%2F961%2FbcXt8c1%2BrdEfOQoBBw0QByUW703e9859vbEJVmJGNNpnd2YvkXkFKnZN9lTflxXKKsnt%2FGAxmhbDgjFRFRrQ5jEoepp9NdEKjELqjwXkBtgwEiqCt3NzjskZd%2FAHvVZJ%2FepzG%2FIc6r0j4zHzTOHh6JqegQawnsJ9XvbT512dEZoTRZuQDgP%2BCvNTm1Xkd9sALyW4XhARcQr6CLC4h58r27AlFXWKoSArWkAEkjY6W19OqvtsBYILELQoZHw9sC%2FN%2FyLQqRqbdMglBlKg0KQl%2BtBM%2Fo2Vbma6XSuYdUq04ItVZVS1xxx0WKoBC5VtFQTYaIWbH7e%2FvJ95m2rphsFTMtfboiEHKUSleeADIHKVPs2ytLgootcVpsCfqTfx4GZZpNoIyOXGBA%2Fz94%2FlAA84Og%2F3cniENQ4b6nJ07OXHpTjsuz08cPB4iVkTl%2BDv6zA91Inu%2BzS9K0Rx34B5%2B9HPbavVSkrq31JyhUpsL4i6cuXn4zHnPTxw%2Ftf3wYINoUuUGzeyf1ky6dPToucJzdtK1q3x0HXpg%2BeXifweGrHg6qXZW4Uyoy7Fkf96TnJfB1uCU9q3dtOEECbCm061n%2F49D%2BHX9ShUPl4yQNWc5eYtBnpybGd2%2BrAQ3dwIYAR1QN%2Bw7l3n3qxXEVOYAWbXK9dG2PxQL%2FsV37R7QRLx14rQGM79mrb4Ppo2bPAH8UYBAxGkjA%2B3z2RYu5zs4egjwSj6ZsWlTWz0nH%2BnG8n5OR90NRoOXD09GEuvnkgUNHXz0u6%2F1w1ZWnDh1%2FfXryyPg%2Bmdx9Uu1jv20H6WfiFU%2F6aYve9%2BCxsy%2BNN6X31fDrTBIxFG70AjfZ6AW%2BlqLHjPH8IZzrDBQguIosYxj1ffvY65uhFbDawHUY0gSFgguQpGSzkRiKqFVUAOotIrpSubUdPeiDFZiu6n5YF7bDL4YlaqumHQpEXos0Hx8S7C9P2CoMiCpK9OaCZM2UWaoX1ATogtqmOFMfaRkR723qHvmIvSj57f8bxYggziaRr58PIc4eRWla4hIg%2BTubT70GnRHAv13Af8DfzS3LqZVXJbT1VZ3e%2Bmggp2gtcwFhSgYK2G6ZkxICtaoASSNjKfKUXWBM6wtNxyAKCBLgkP0P9K%2FtIQFT4C1jCHVQpHJdStrvV6ZXGMKSgF80Tn%2F5F09EExM2AtprlSXsgJAk90tDNTLyfTE3%2FkPN96Gtk8soVOJopiWcnJGNWBHmnQD6hZQpJDVzQJeE%2Fo0yBZV02gL0J%2BZiHkowhE2gjk5ZQqZv7x7%2F74cP7gb9U4b1iCOgwqPTc29mx%2BWZVw%2Fvz8gct%2F4c%2FBvfB91Ig%2B9z4KnDx6Zef2k%2B8P%2Fa9OREyAjHp%2F2aWn8aCt198Mipn75px%2BVzx59%2B0oBoU0X3xwKgnYmfcmnq8D6to9%2FBVGmT2ldx8eTF88eAw4IrWqiD9A2o4CE43JKS6mKTPHb4oGcspGdJKmu9bvWrNWbYceDIsUN%2FswMOFWdlysThJ0LIctkGfe7UkYNGCkkGdiCoGo6ebbz7p6eOiMgBtGiTa%2FxaHy2DfxYxYfCETD5duSRfYw1gBPXfnPXs5W1Q%2FIE%2FNZVeDGR7LPsLSMB8Pk0QKAIcgf%2B5TKgpm9rH%2Bkl5P1sJDBYRa0FHC1v70y9Mng7Y%2FwnZX1x5KqD%2FmYunjulGMCDVPvbbdpB%2BTky4R6hNet%2BXzh5rWu87fvycjxiKN3oFN7bRhyzBOjxmMJRS2E3tCQf7MMtk1CUW%2Bx57vdEKmhA5Wb6zM%2BK6CCQkmx0zlwY1alVCkIDoOgMitGqY2vZ1PawRWViiDmjaAZFXWw4Ass7H%2FkGtrXVGqeZYGCaBKVyQJHKOy2R0BIOie0HKXT4HvIuxpPM25ZE3V8mOspb85HZ8H%2BqbeC7c2Zzu3c%2BHWoRcPQLsuQSUrXDKR%2BNFUJ3Iwb%2FdEf77%2BKN5eb%2FJqbWU0ZWzPmJSygXkfI5W6wXIGBxUlmq1X5L%2FtJxpyT3cImPCDB8Y9%2Bd6Hei%2FyjBI4CTJ%2F%2F%2F4H3k2%2FHX4xL8i1HoAryGKjKR9tfiU88od4WfjboaqlhJwjDsgHMlJ3K%2Busjw%2BMSokN37wsOT70NaxKBYocTTTAqOttLIx9HmfTyYArDDKFIF3%2Fbdh%2BFVT%2B5AjnTbtM8SEGmUedqL6FYs7HZ2Hu0pr%2B%2F4gpPUPTx4B%2FRtm8ogjoMKYbeSYOR7qtsDCn4N%2F4%2FugG2nwfV54eWp6%2BpWJH8wD%2Fl89c%2F7M1LHDT8lys%2FnaWn8aCj0yNZu%2Fy5enJxIgWpxCo%2Bh%2BOoOo52UPZqq0We179NzlSxkclh2jlTrII4Li1eGWlFR33CQn0CrCLJr%2FLMk6y1b%2FcNjJJKoaP%2Fbyocih4iyDfAIHJy%2FmBn02SwzfDunYD%2By%2Bw1P5J%2FHipKJF3s3k2nntD8B%2FqzZ1yuBZ0SUEHZRq1gBGUP9t1rM3vs0o%2FtX6o4%2Ba8pLqOuUAkIBsv%2B6oR61VRxeJx%2F8eITKZ0Laxfjzv54WpF9w%2FtnpgJ4tQPOxjx6dfP64zUT1r77sn1EkoT4VS3eyl8yfDRrA9VPsWnfv97hzpR3IKrnjWFr3viemr0fumEUPxRm%2FU9bJiDTxmnLOjzrmheo3%2BKZ2lqL4NyqiD7PV0Q2lG5ES%2Bs6MHcAGQEMazPjCQDPoi1tEIWLIRarAjUCSgAAEBGDAdm5S0g4m82nIAkHU%2B1rXEpDjJPDjlglgzw7J48ogRDH5t2du8F5vC5wLjoPSo3sffDkIBc1wtxZKfCrQi9S2s4s3p3v18GBlsQK4%2BvQQCDnyW8NtH46q%2BHx0G%2F%2F5SeCY%2B%2Fmg%2B446cenBAQ9LM8AdbHT0Ao%2BZtXJYpqWPww%2FF9oQgkyX9azlx10sFHxmXVvLjAeIyBgZOZkXVqW0ar%2FSH5v%2B0%2F4S3jriMlww6HnXWV8BrDDOIGZxKATjL7arS18%2FHvblNrVeIOpMYSB3O%2FJHPEtXRKblzQ%2F5HDaOtgxhQrccJv1hCyu4T2nKFPrT5paqHDL0Mlw39QSw3Nkk7BoeYz5KA%2FkgZ%2BeXjg5DkvP%2FzVAS3ERvQPZkoRx0lQIcflSOaI1dGfg%2F%2BM74NuxPg%2Bk9NnpqKS7q3g%2F69%2F8MwLk9NvnJsS9k9QlVxD60%2BPQt0xlwDRt22Zd2zG0KxmOsGCbVX7Ki4GDrNjNH8gw62G0LZbl5NRUlJru2WTDIMEYdkzi%2FxZAzUBlzXJbIVLk%2FD61cih4izPM34txkkcZwQcGvxIB%2Fa8j89eaLybyTW8FA7Af6s2dZqH6YWgIxjGGsAI6v%2BU9ezVt8H0qYf%2FsZtYwp9cKEjA7cPmekjiMUP%2FLwrtwDKhbWT9GO9na1oWaB1sqZ0sQvEjJ2cuTCr218zinbd%2FIigklBmsud%2BpuUA7OzIuyHwxud%2FQVIz0c%2BKwPAmWaHpH6n39Rl%2FXWAqLByk4oSx3xn5MMoLMcofA8OBsw14vQLgY%2FXvxf1WapJU0lS80f4AECtdOkxf2yFOAnlYw7pCqkjVIGZFCZafQJkJU%2BtrJw07k1YYDgCzzcUQmWTn8lw4fHpzhvwXsd8eC6OmTGcHAyJKF90JS3ZbpNJtFb7SZlUXiP0ayltQMtAL2d0J9U%2B5mM7UYPx9GuAaaaozgcNNn9mJ02tX1iBnxYGSpiNnRHsAf8cdVZdyRU0v%2BflXG%2F0DNaj47DMLIMOCDMYD1qAoQunxeZYEH93Cgf%2Bwgiq1PEhebv3%2BoQQhn5puD%2FV8P0PvPw1Ak15FQU4RR26OGP%2F04dASjPhQXKm%2FtjUZbdHTZbi33CAHjG7lfVa4ljJyg%2F5CuOKbaOmPGFLuOVsKFSCYp056P%2BKH3K8KIxUZhtHT4pdQwXGnW64oeF4gsDPqLEMJUv%2FoUiNWP8hpWR0RzYuoIpVho%2FFdGHJA5nt1jK%2BsNDv7zfB%2B0XPB9Tp84dnh8v6T2H%2FHgX0QoWhc498Z0ENpJoe0aWX%2BmKLQAiL7dFNqsmypgwTarfWeAwztsx7jqxL%2FkfNU%2FLOakhuVvYS0EWvBrRx3R3p2l7yKVVa0rB2itknWOTYd8p56lY8mMh2fsxvzCcSMeLDSw6bsp4WxaGodeUgsYAZs6XSLlDpC1sAYwdwvqt569vC2YHmLuZwx%2F4%2F%2FLR8C%2BsH2YA9fDmiUelar194ddJrRtrB%2FAZxIaLJ7MlnDm6KnZuakjB5R%2FJpziX7%2FtAx%2B67dfFE0Rzvwcnpi8HGUng5DRBtW6KpgLpR4ZVICYb6bXX%2B97SpN7Xb%2FQjyr0xiIWnond2JDrVRDQMg46A2qOzDbSCt4%2F%2Bb435zpGwXwt8zqfOmf4NQyu1mfn8imhuo1LYmBJVetLAoMQPq9bqzJw8i8irbdZsBpDB%2FiWigI3hetRWQaoAckFCQpULgmCgZMkC51DuhSasLdNJxwOMNt3NAA%2FK0CnQ0yCqIs4mPxKbu2p%2FM7UYflp6DQM1uswSkklMtlKyFRKTsTBhEiXKDeXIhDA9iT%2Baz7gjp15bhnOPJ9R677OD3dEIQgMbg8Oa%2FO93XT6bL%2FAQ2sXAYl0uAvGBMWu32pEqWhXCjQSmgv537drmryNdVgeGQlJN1jD5wfrz4rM4ZAp8JfP0usbbruSg2nfuF4fKHlZla9aL444ZU%2Bg6qiPf4WYAQ5%2BsCMxBGf7OtWgExWnROXA20eMCnyGD%2FqBSjFDlKRCrH9EmSsCkm8453RXwZFwIcXCQIQGi36Dgn1a%2BOb5PpWa4fvq0wXohV%2Bp%2BAj7LRwhnzk8TIlwr60%2BPQouAaDH41xRajpzizF%2Faqvb92dzs7KWLk%2BmO0XziP8D03%2BlVWqouTwODktN%2FSFWZU3mifXJWd1yENoaT4hPWvT6ydSRHP6wm7hJdA1OUZ3zBl1sALX680oFN363ckp51S%2BPokSinFYyAXV61HomS35IOvFk3HgUL%2BkuRsEm6phaBPanPckmBP%2Fz%2FWIlh21lv%2BzAHrockHo2q9YrLhLaL9cP0Sf95URLhKrNV7C9C8cvT0O2VT%2Fortyy76RZxA1fJ3LZY%2BZuTNNBie7m9B5pKRvqJjycl9Gus9%2BWkZvS%2BfqOvCjbpNGc%2FiU5RlnPgrBi9ZTQHF2tMHZmzjVr2Vjz6L66v1qT8GAk0A6TO6eJam6%2BVBTgjgBqlogeZoUDNQfkQIX3KjzeRVxu6sniQPlyFpC3YX4aiS4ZIwE9VLqibC1KCQYWMSYFzKPdCEraALr0ZSvvDWNMOnH7oOjUkQE%2FpUxuFiXXwuadF%2B9xMLYb5kF4DpJrIPARw92SXQElyo15rFG6XdUoEk5km44%2B0a7zuXaqf7jMjKhWX%2BkGAG6XvkPgjG4MfHzogcNfmZPONg6zAs5HISgApMFgwqEfBhEFDIFYdhlFF%2F7uT60iW1QBEyw%2Fh0KE%2BbrCHKrVY5cLqqIeOLhyIDUz2zf2i2XAtTtHIJz52Ks%2BMKXDgQsguv9lmAHIcZgAUVotJEEWI%2BB3J2ZGnhXTqPHgKYRw9LjRyMujPOGSq32j1qTNdqFJlKNoXwEw8%2BCni8MeMcCNvdPBvrXyN7%2FOY2mi%2FAN%2BnQegJWOiu4HUJPnsLN%2BgfzuubU%2BvP9rN%2FGPoUhabQsvhwZpNvthv8p2rff5g%2B8dLLUzPn2DGI0q8y8d%2F7QICAsgOEp1QW0EfCJz4QI%2BHzk06W6c76HRahB7vDcrKxInmsnj7OkrFEJM%2FCFWf8Wyh1r9l4FQxs8m4hV9y7fGkc95LYbSE%2FSCK1Yg2Mnggdk2mGE8vWCOnqQ97Sp9TRiYs3hdWG3DISgTrYiDlM4CXrdkLVIhPaBtZPcWGg9Yw7MtuA%2Fc9dFk4cdHt1kqA%2Br2Z5pjyfnVqAat2Cf5ZGVEL6YUwhUy0FvS8nid7XZTuKpigbfe9ag1ixQ%2BoqlOV20Foi85ONakCcbUxe7tB%2F4Rq1YWCkIjlyxVcaDWMa77htsNtM6RJ7jXcIDyIQTTrlB1QDBiCr8VMVebVu5FEM0nXQ4EdIBeAhGSwBP73ugmanZLbQ9q7YObQuHxtpIzX6pQbM5RUQZr5qAlN5s0KvksqQQb7N1WL8fEBWjYEM9924Pn12CXpxWAPKe5Wjo9L83d938UezND%2F5DD270zj3ymuJWnAOriCzmhyJQoNsDJ4XuDtcabrHPzOUAk%2BMjMuZ0sT8dErlfAwigZmFQTUly%2BswjID%2B%2FXWk3oJhV5VwUVIKpR75gVj9yLgOwSfShV87ujjDV5JE9t3yznCEUysjGheTunPMmAUduNhDSvqbbQZ0sSIQe0BhRQId8waS6e9wpFPPNCrW%2BdLjYmAwD%2F3xnO1D%2Fxy%2BN870aj08V2w6c4qZePAXQBwcs0D0Gxj8WyvfPN9nf7DRPnH69SmS%2BSblvVcEdMyQt6qCJ0%2BfP396MrH%2BbDv7xw89KDSFlksX%2FHu17%2BtTE8%2BMP3X4%2BFl2DKL0q3I%2BCrmEgPSHwsO3Wjz0Vq%2FV2uID62N6cNrJMt1ZoVwwJM9%2B55oufZAfaZx1WotlnGWIIx32002Af%2FduyT38hjDhl8Lxyd9IMhZNF9BjwgqCKlbY%2F%2FkvdspDgmDt0UfqNO83Sx82EgP%2Bubigh3820i0HAq9OVu6gHYOq5TKhbWD9FAcHrethkNkK9leFCHR7EAVtcu4XogWin1lHtV400o9W5468YqQfIotrrff1J6U8x2KsFxCbQqyRSN3tbHjM2EEmHj9ZbbCje30pLy%2Ff4hBO8RoloDhgnrpABE3ogjFz5jKjuLoYuVnlf5qGVaKJTPQh%2BRjq%2B3PilMwa1UZ7fwZNowBGIVyw6Kq4oO7sgmaOP520vUtnF86hmmSWpDGgS26G6X38%2Feg3gWns4VLndsjHgHypxbw98tu7%2FXwA%2BKE8puKDypdsBuREjQx6hIFVi0yTkmTtBf03G38wMaH5ZZIKr0aPZVAOriDzGjLWI2Nw5AhdPhE9NXWn5YFXbgm%2FaBOtnM1Px8cgWhkhDCIwlnA6ov%2Fte9x1pAIfeRACa280LFklEdxVotVPKRqYVuDdWJdliTY4VqqoDO7TUDXer1VSJZLIRWh1naTuZhwz5so%2F2rB%2F3L8q%2Bold9lTCOoLCypKAyDn87rzkDAdO1uoihUXU%2BdLjwqC%2FV%2F1GTZI%2BZ6XuGDOR87ignow8%2BD8H%2F2%2BP72OtfI3v83wg8kQTT%2Fg%2BmHh%2BEtcmwWfeDzSedP4Ns%2F50Z2H9ea3B%2F9Kk%2FXi176mwWu0MjuWBKvp005rfNJcQlpOq4EDx0Fu7%2BmH560GIwRcdgkvOUsOfDb2avqiG%2Fw9BxcyxcTvLhkrj7sUB%2F7oIiAfOkjg%2B9KtNexT7jRSbOqrkmhjqF8uG6Fw%2BGhdQ2A29cfso4fTZoPjD%2BbW8D%2F9sdhseFqnAqx7S0p3rYzmUTCgrfhtYPwVvaOlAGIpJ1fRlE8NDt3eAISNa4OXmiHOLRfqR6hzhlOkorrne158kT5NzOCjEesAlydwCscxjRu0r5RhTDF7L%2FGQ7YmWevR4HYdC%2FIZxid7ZIdqjicqgoKua5meTMcg935dsVmY4GYNLbLSZTlb4w31n%2Fz7s1anG3GbP3rys6Yviof%2BjDypMXbkB2QZdPF7W9exfNFbE%2BUrhrhj8C%2F1gMzGYR81UTmKq9L7cjXpXIX45Qiyk0d%2FdJX4XrZQV%2BOcMfJoS4LNrB4sQlRNRGnpxryHPBljWRNxGan0kqTI1uAmgCQhGIoxBHbaBglahMe%2F7Q5ZOuH02qDrp7tcBDLSMzvlyN%2BNbHIBjeY7pKYLw6TpCvS1%2FL%2Ba8D5FILaLEcWHthWRHtem0oJHwiiWplwGaY%2BFP7JeNuh1WHhygUaXVkHdbewwPh0SB1B5vYdyv1Maj%2BaMP%2B%2FbXR2HhMYxpWhNwEGB1jSTCnJaVI2YowaUyjwvjz5sDdROc7EL51fuhP29mh4aGarBiwpWA7Jg9%2B3pT%2BcsoGv6HBP3wfa%2BVrfJ%2FT01O074LvYzl8wUIEaa4TGOWCqcT6U9k%2FWH%2B%2Bk2g%2FJG3aD%2F692nf6aBDlbB4T7v%2FVa35J0Y4MbAj5%2BkcCiyc8xJVKeFhCRv8RqQZoYDM35dKz6VmSfwg3X876hpylGP8CZ4EskoerZfBPz6ulcdxUnC8rrJ7KuqiJIu1EiVtEPFjI4e%2FTuyuX9Rwx6SNWnwaJ8LoeJf%2BCMZzSsFXgVQ9rYok0%2FRtkQlnx28D6aSvv5z10hRYfzznV7yNW8XT7d4nkAKLFJfNyw5d2MUk%2F40cnDznSz1LR%2B9pJak5gg188RZGICKAV0kY581QcHTU%2FQRJ%2BsM%2FiTlyOPozs9djsO4RT7E00FhN39aq6HOJInC9vkV51RBdxPlRkKiYGkth8UOuVHSR%2FxJ2hIPpppeUsIJ38suGkXqWHBPCj8K2vUs9d0EzS9i6FuxrgagFklTPbUeRnPpv%2BqOFySSmkV3kyejUYvBzlfpQ%2FXUy6tqRvzr3UGf4I5nIOYzIp1JA4kzCJyBX4ZxEI8UcTmfdbCUrrXk7do%2BBSXWfqVS6jnznJlCxrCDQ4Ah9LI%2FW%2FP34I0RO0hebMhauN2zsSjS%2FB4vmmC8FLD8N7KjUWGK8lFfP18Hh831%2BHRy4SBZN661QljJB94LivpKW2LvpDZhrhbd7Egrfx9Rqa9EUHXJmQpO5%2BBjOGItT8MSg%2FmsgWMZCsCGxI%2BQkwkG1T5rRkkjNaISrTiPiziPFzFzpfkW4D%2FVPDn6j9UJ1PFxUT0pnJg58kJxMfmBsV%2FMP38QDe%2BD5PZez9Psfe9z0BfOAA%2Bd%2BsPy1ywPqTxr9LW%2FDru%2BVcaLvbj1f7no4OnLFh7lVrfsnAhr4EgfUTtlVRQo6NDQY8v27TN%2Fp7%2FxWBzRmXnvVnBbSv%2BYda1c6C3eM4Ba5I4qstLYD%2Fd%2FwBR4QkWndZDX%2FIDK3WEi0HJVzaMaJohO%2BMfRukVnP8sS2AfRjTiXhiLW44kU7RDVSf0YQIK34bWD9t5P2AuukKrUZYLPCK6d%2BVksiV6TRDYz7nS7topB%2FtkeFIP0tF78tJhbbEoJs7HfZXHA%2BI7BfkX3OdhGTOmu68Qe0mBZ5ZLf29Q1rF3kTD7OBRHwvCNUcXBKWOWU3f0ohMNwTEHX5piCKGG1i72N%2BttZazgHSY5YaTqkIPWR%2BIG%2BGC1rgL0vQTjUxuvjLcDc5Hiv0bZjvlDjgf87osZovBCAwJcVm0igQSGUW%2BA32QrgvRLm0XzL00MfxxDmO2XsX2Umr1YvDP0H8zmXfk%2FRQgCITg3Ou8NPaLXoZOSpiR5j6FfD2QZzRjcGgS0RO%2Bv02aCw%2Fb7Y3Gl1AkBPGiSM%2F1WhxBo0FgzO3UnyKsxf%2FKdbBuOOQiqH%2BNBMMyeQZCtj6iKpw%2Bu0rR6tOsfkQhZofaQlN%2FiVa4uC9Fws9wWKq7QcAwY3g0knlIDGo%2FmjhKY5n6yGaGngmggTn6HOC%2FxoysKBA1X9XVkmaIBYyf4NeM6ijKXuY1%2FFFQ%2BYUwv8NQdfXqSzegwj34Tgj1g9Tq0wKFGwz8e76Pp%2B6cbTB3oI%2BZb0%2FSDdhThpT8n1p%2F6rp0H41%2Ff7HtVp%2FA0Pld5N3l%2F%2FL75HjvrT696%2Fvkvw2f%2F2U3cyxrXe17WrP9X4sMoDNXq%2Fllxof5F5aTyoYHAqQPSbLBMNN7%2BuRvqtHwfjStmJzV1xMgf7W%2F387qZicjlEK95ookSbXlhgX%2FELlIomH4U6uQICtj2QHqF9hvRp95L8%2BNNO834a81AHBOnxI%2B6IeQdvuKCMfq4b6tIhPsVvw2sH7ayvuh6TRdoe1JBNInMXuuN59Qrc3NtkXYlyf9qEmuM09dUnrfl0TvS0PCAnRjBX7Sq0IZifSRUUxmZHKhZgyvxJ%2Fy78oPIvUdbfaxQTrkEE6RN1Fdi%2FY1yD%2BDA2Zc36DCZTO8x%2FCGJiEVmXaHpaySYG2X7llM7E%2FLWfgoeBTlcNLDArK%2BmVwQWxAN4gvgrqoIzNv%2BKzHT6VwW7aAMOBDFkJKgJQYJV4Q51qSQ3yBdL0y7Ae1W6%2Fl0e2L44x3GqFT24fSosWMsGeSZN880k3lH3s9glHoyzr0Gmhj%2B9MYJUaZzolkc4z4lsZMkzcq4Hb8S1oHmfH9p52cw2CxHNTJ27qtMSQJjHYac5tnQf22T7OlP6XVQMfSgkWlsk2e9On2q1Jdf3FWG8OnIcInyIlrhSkl488hA5MKFrcCEeee1CMX2nRIsYwxajT%2Ba3FWgLqn81iTHNgHC5oU%2BB8gub0Zy1kEn9JOTxJ8LwJhlMH5kuqM6UtnLFQx%2F5F%2Fjg1%2F6gr4AKpIHn2XGtRXlcBShGwr8%2F2Ke7%2BNEu6%2BbZhdpi9PsFomFx7Zh%2FXk%2BeNaYWlhrVzT%2BJYRoT5Mv8n4%2BxvP9Y22JCYWLj3xMjo9%2B%2BEO%2FykUt0DPgQrKh8rW3vvcDt3HAbGpB7YuN%2FpfiX2ec5rd5vWCYfwrbQ84%2B7CV9wvjplmBgDXuSb3NhZ8m79KxwQu9XkrMirOcsAFcqtZi1lGUx%2BPd1lXf%2B4fsXqYe5lYjJ5LB3s3NE%2BijNEnNeniz4CH8psDsHdNz%2FCCQk7ab73mphUSvvRwfbrfhtYP20k%2FeDBdWgLd8zrtd2YhyP8YNF%2FYuS%2BiclBumH9njwGJaG3pf1D72vIc3C1glVw%2F5qClhSprfuuGoy04WxiEFw1Z5G842qkTvCNDczcZAWCKdoNoFLUO3VK19dn1HLH310GBE8tS2k7TwotYoi08BITMG%2FSz0sNvZXeo%2BW14gCJLo3DcC94Uok89%2FTl0YjTNoCuLvqLd72MdOJEsJ8XvDaFAEQtQGcl%2FTyKrk%2BHyeFR5pN14LnDLT7UKkRC77F8KfkHMbow2aAU0jq4s0DYDfmjcu8F44y8v4YXwUC6nCmRo9yWxwvvdWniWxxmmQM8Oaammj4%2Fr6nqXZ%2BCoPB%2Fnx0hLnmvgoEtsAYI9reqFPmlkr33k2yp3MdpA3SzP%2FAqM5mkYurhCES3Gm6Yd67ngznPZdoyFYND46EHOtWhY%2BuywtT0W3fKcGSedjbvdITwPTeMvSarOKAjIrVj910lfDQDvEnGn%2F6XuhpL0wYPzVUR6vx%2BkwMf5DBSIiSZP7TB58didSRAyjOFeBGAf%2B08vV8Hxg7Z%2FNunfTqdXyfAptQPku4Q1h%2FKvsn%2FbDFP4ChaSPnuSlvaG%2BdJD4ZGquG4647PqkXlWykjinmNlQX%2FHz0E7d%2FSo%2FbpanxspbUvqD936UOgOYXZ66m9YJh%2FoWgt7KhZ0OlLv%2F5iDB%2BcjD%2BzRy0cGeFwOeKZ6Fe4yyKJPODf1KWheDf11Wuh8P3L9Jdy4yX894%2FgBmF%2FaOxYbv19oLpg%2FBXOZ3ofjF3i2mXhvvf%2Bijwqo7Cgwhgn8F2K34bWD%2Ft4%2F1gCqOom6CeScuT6EMuvh26HmE%2Fqf8WVTl3OdLPQJ%2BlUpeI3peEhdf73rzgLzJ0A%2BjDpAWxXbD51enHNDV1Sg%2F249URUBmolb0epAXCKfqNI5GR0CD%2FrMFUxvSt5ipi0nZEB70ibO2NXn%2Be9mOkQ5mhi23vr6l1Fdb0mhuNaQA%2Bq7YtgWKt9Em7oIIFLg93wf7mbT9EphN7mdzt6ONulEQVgNUPIYncmHIXsepJSNewRwtSUMMuFgyfZoY%2FzurTWcwb1USRG%2BjbMW%2BKM%2B8p80T6PnveDXLbUifESWf1mRPZchpux0o9wffXU0%2BKWZt1waylvCYewx9U6c7wXv4mDNIuCV1lQajyCWUtqMie%2FiO5DnqupJx%2FydLD%2Ba9GCUOmvhmCAmqJ95XlNY4Nl7MZ3TwS2dbrIh8%2BfHR%2BKrrte36CpSD3lTJ0dWZ3zMbLDGDoN%2BYmgJp%2FxeaAdBVgReiROS19V16nVGqjn6b978gYP6iO5vX65M%2By%2Bp%2F2Dw7z4Dc4%2F8mDT%2FdkSKPnL%2BdQ4akjzg%2F4xgD%2Fv0ArX8f3ca184fskyfriBmFUEUQ1jPUn7J%2B0jNA2wKUd%2Fmdzd%2Fn0xEHXyhbdlpgVafqgvPzecFHg9sQy%2B4JR2NMNdZnSnu66577legiz6SPvv7kVtS88n5IoAJzmtzhjkdoHfFvB%2F7DCeP3PevhPB%2F5ncqQCf1a9qbNS8M%2BbWGKKwf9LLjH2jj8IRIfpX6S7luwRJMjM9d%2FUYuD%2Bjexl5nayMTL8KQeg%2B12xcmVZE03WJQDxcJ9ud%2BSQRhrlULfit4H10zbeD4BePXyOnLpU0JWdb4eut0ipfygykpqF9ON3smuu902pisV6X3RGoBuwUkZVqCO2E8OffDNRpH5adFdKggkr%2FV5%2F8ohDOAtdbm1YtIhapcK4Y8Vvf76kc9%2FT4NC2N56T9RqDKBIXQ30v%2BFUaIcv1otv7A80FjebZP9q%2F9V%2FIbwLF6QsXlJQ2E8wF3AX7IzFVMKuZTrgt3A60v47mjdWPXA7IOWOpnZRotYg9Cq2t7mJB0u16DXi%2Feoexml1Dhr5HMp93x7x5riDznjJPNH5x2B%2FDn%2FBbmZeO8tLTRa7YxkAmRlaOmjp5uJB6ko4GQa3TxNeGIylFYDALsMXFioI1DIINJr9eE0DyWdWvS%2F752bTnClvosD0DJeHpZ0DXfLcsAKDq6%2BlfJImUmE%2B4uHZe8O%2B273kJltR%2BpChoRSDl%2BJVsSWgUsnkaHzSrH0asLre7h74rp8iXGATzWhNJ%2B2uFiRjDelwY9KfzIPNQCUBKLeLBX2WLfvrg%2F5LZRTwb%2BkNmTPCLUxPju83%2F%2BsYA%2F8h0PVLfm7TyFaDeDE0%2FiSe27zTrTwkoEBC00%2FoTqkWUnR05ef5S4y7%2FUNIOBgBMt1UWAQ3ZkxWC2%2BkXlKAIo7DbhmrFKmVOZUUwCZbu%2BMcffPe7WlL76hpJNGCaX5BGc7PwOw78858OxjtuTgtnqcxwpqh3tpcHp%2BCfbO51cEBBGw0h52pd%2F2XXisbLaLHkGBsFzeBgGNM6MPyR9lbrHviXVwZTZ4hAWC1oLnRYmgXUBoTmD%2BxwXEi34reB9dM23o9ReXDvJ4eKUCVFzZ6uZ6n%2FVsQOUGQU2kL68TXsa6%2F39SYF5wvLaJA8SPKtBmJlliaI7fBUHBvmAIGjaCx3RzcYMqM4FMYg7eRhQzjvKbhcdu4wm8h6Lu96UKteTgAvxwDaSp6TzpJiAGtnl7f6dE4e7bD3B41%2BU5GOaQDuv%2BcO%2FU3wN%2BQFNdSCoqZ3GeYCJY64VDc%2Bm6ha%2Fe1QfakiPWkwlpMiVCMGs22liD1qXlaapwa5d69y12AY1EyHanYN2DB671eKCLqT%2Fbg48%2B6ZJ9rqyioR9D8IMRdNr%2Bpe7Kpwl15gcQyY26uMT8tjyxgUkn6MtVnqcZr4esV1G2AQiIsVBZe0GRinWEwnslvJPz%2Bb9lxhC91M9SvegYFGvYWoC72XOUN74TdJIuyeCYUG4fvkjKcSQm5KsIxBG0NP7irvAVYLONyyV9Thst7SoP%2BHaL1L35XzLJpgsCSxImn%2FjVJxREfUq3%2BA9ddCMsTDFNwaRsc%2F%2BCRq3YPvjKL%2FbP%2Bho1PnZy%2B9eXnuwvRkMFQPV0QUdgOAf%2Fg%2Bn4Sj4%2Fg%2BrpUvFB0MeppmEtEpDOtPYf9gHdRW609ivGgwcPjYqTMXZmdnZ07LXZadiKgTMY%2FqttQ6i1yW4PbfuI3kf4oivJCECEKKVfJ72Z70AfjsnYiark7tS57%2FTnhAaH6Jmd%2B12ODfMeRaOIssZaLgJT9b4KGa9Nt4Zx%2FeyaS7J1Z%2Be1YJlAk7gy5e2LMNgGZwMLTibcPxxzl9lksrfQcAAf057z1d6zvmA%2F9uxW8D66ddvJ9UxLsQezql65H6b1HsAEVGSS2QfiyFuIT0vvZonW%2BMUCHJg15wgvXAm2Ks0k2yjdZyHFBxdLMP7xEZIJzoh4A40LNepw2Cg3rpPAEhR9pud%2FhLfHvCPp3pXTLrW5QxWIzw%2F8My1gQrjT6tyZfz8F4k7O%2Ft%2FcuYICr7B4rMik%2F%2F0%2F%2FzbipuYRJCviPR4cB%2FGllqZphfAsEE5r%2F656iecnjEOTyC95QQrmlZE5hqyh8Ur9jr9aKOMeZlNUTMoK4B0F24BiB3DUN7ICeYM8r6FH1j9GmZY3YyMu9F%2B5gxT%2FT7SSBDq1JBs6o%2BNQduo4AERFPGGc2%2BlFHX2VuhnrgxKCD9EI7JBwDkTQNtkTEHqRxQcHeJu4fljd4KddyU6Xkk6bnCxvuYmd4qzT5treyd3txRIwoTpY4rw8SgWrwfivUwWCXL0K%2Fk1xPESb8CloShKpkqZoDuU2i9qRIw6nU1noip%2F3Nx9GFfpP3coFNJjLHaZBWNgBJ7gW5%2BFyLoeR%2F8N5IHnxaRj4w9IXT0l6dOv3bieJC1hobLMh%2BpTl7n4N%2F4Pvcm6tzXk1a%2ByvcBnzevIdbFylt%2FIiJup%2FUnFUNB%2F%2BGLn5s4%2FtJLL0lEo221rSOQ%2BVtLJwnptTQ2zOr5ubsCaeemeVFEYiGF%2ButzXblVIIrdETVdpdqXNfqf6P%2BH5peYGQJt0%2BC%2F1oDxjw54GO%2F8OP1Z9bd5FtzdhMlj7wF0pR6q1zP4p3Akzs1C%2FgEjSHhId3qY%2ButBMwZzXGuvnNMnmVDXAQBgZp4%2FYSEE%2FCe0H7fit4H10ybeT2rf6cU3C8HmWRP7W2%2FV1kg%2FyFkT0s8S0vuCNYv1vuiMqM3D2llpzn5lDH80pYvfjhntCA5VGhsujHmIkwmztascUG8hyj%2FaWKP8q0H%2BAE5XNE1teGJ1NgxmhD8X04ECAb4gxTXJM2L2ButwccA%2FRV5n74%2BfIZynapRLLL%2F3rt%2B6p8FBhtDEwujBv9%2B1NLIk586Axq8S%2FnwZMr0iO9%2FbyZgeBr36ckQVmaRgr%2BKOMbdCc6lGtD6Yqg%2FUX6mqmTLuCnqjqHEVaUJ8p3KVoNsrhCdqPlSwj%2FkqiLrFMDE7wifUKbJgBKnLIgedbeuZ2NiuXnF0J1V1qCeMQbEKb%2F4UOO3LFAbjyMYBFwbDy4685U1dRlUdN4VL8ELY0H3qn4332%2Bp4BQFvtfNYkg3AWj8a98v6vWmrSKrD4hFBAnZUr7tHlbHdtiy67TtN%2FOvVruTXg%2F0lrNLfrIEmmSpmgOxIaL1VH4CKqCfGbatJ%2Fb8RRj%2FlX5KIlekvwhKtOGqbNs3zm8nsIMbCJZ4FTDMk1Esf%2FLTkh5x%2BU2VLAKQHn3r2ueeeGZc2VIP9uowzHa9f8O%2F5PuucL%2Bd8rXzh%2Byy7OvfQ9CvO0fi3vdaf1hwkfPHuvQfGw3FwP3e5yzoCmZinuiWQk%2Fbu2bVTLkpWz%2FvvoQW5s4edAcu65hE4P8QgNQRRO8PxxFbZBBA1XaXal%2Brs%2F9GoBpw9JmgDAm2z4B%2B3n54NA4%2BqdDc4%2BDsYz5aUgH8Ev8VngVTo8lXg9OmJyYlC4PoB%2F8yerP4f%2BxdlJhGyPK%2BKIMasenpwzAbYe6dPddjw9QBwf5%2FBo%2FLy5Z3rYU%2BQ8neCX7fit4H10ybeD3JfZ%2BB7ZTUrb3ckNMQORO0tkH4wrU6MK6613jdlPJ3OyZMKzKjqMPXr5ItxqyQPF9OOYvPJoQGoMFBEF2DUanw%2BBWmtjpasx86Kk4aV%2BQso%2F%2BFFyT%2F2sgUiBaEtsa23lu%2BPzQYiXNgYpQvW3tmxDlu%2BHRR5nb2%2F6h1QO%2FNfPet6Vnz6PtMv1Hnhgq78%2FFGvHoIcYqWUOj5Cyn7GXkbzBHY7Smg8%2BytKh6ep7iA6W%2BnrWjLaRdIxJq2vQfrJ3D5XWatfSbcDuaLCGLkpy1dPjMSG0NoSF4W5AHkHKcj%2FKN7HrApi53Eh4f6SQMEIUn1vGAVRiGOJjxYD%2FTm9bR9eYAyKrNp0JL0mHs97zfIzM21WNiKxvOVNtU7qv7pJruTFcUv9%2B%2B1ausBRZ8DuJuuuAKovlVY6s0%2FXKlKuRdvBQL0eDaCGuJzYmlSmj0PTxL84%2FVAA6LTIx2nPV3WU9P6XV3bErQmnJXLxkPFl9C31f8FZL6SNBmX2UHEcwPCnYTJLS8Hcn6oxgOjmHvyE84%2BRrkA1paPv2rN375OC1SSOo%2FH1dQz%2B8eQxvo9Py5%2BZt5XvVWblsf6kuOCtP89Mtdv6E0SuprSPRUAegD132XznLK7fuiPIkp979ikNECRwlXeB%2FkERsA085d99U0WYUxpohGjy8S3VKGr6pRbUvqLL%2BjV0AGQsnjACbXPgH8d%2BGvYGGM%2Ff3UXgvzs9a37w71voFTh9OkuS06lC4HoC%2F3fTrwUSZ49sBVVlKgqk91hGl3JSR0N1cD9OnyVN%2BFh3f4f7AWYrl9%2F325%2F%2B55%2BzZi4D1vXIrD7dit8G1k%2FbeD98Gku7gX%2BexAWlshZWtmpyelOD9DNxwusGl4re16uU3FrlDy%2BCI2tWMYVfTtZYU4otAhQOhVwlySua1lWwShgPQ1rRbm3q3LFGmb%2BA8g%2FXnxd1%2FyTGpWmqayhqD8oIduqSkiQvDNK96FmHrd8PirzO3n%2FLKOyfBg8oQN8Vy9Ev4K2OZ0SaDEmVapIMzug6pQzuBvMu2M%2FRXmaV2tp7m03ZaQWYZb6rdfLVVXk12sXCza6prw1zJy3vXo94Tm43BlCd1nWZmEwyzcrB0jlDBIL3Kxl8ZJ%2ByjxWQrKmCKOzu4EIMzSOxjrhQjdAYhXKpM9Of097cCD9NjEFedsDTQfcKr4lXeBH9S0Sb4hseKB29bpcBMiX1H0hVsi6%2B6NutW3vS726t6mChKQb%2B91eo%2BuD0U14pEQBVF98qMt6bXr0G67mF8nm1USf9VuBLh3atAY1DCAT7N7Tnq5P7v4oEvUSKVvBh9En9n5jz1gteY5wJOqTiyFQLEgOn%2BqUIYH%2BuwnDMP%2FjO7ccnhT8Hk2ps27Ztj23W0RGRDsv4dQv%2BPSR3hPzXr9zKt9UwI7X%2BfKPt1p%2BWj%2B9DKSmPDXdZbfnwfsKx%2B8Choydem3pZL%2BrxMVk9Qf8e68wBIcCyfE9WY3g8BDfPCsXo%2BAtP798hoiae6qtS%2B5KZ%2BF9iTIDm9xlHoG0K%2FGvOvq9HaTwNGE%2Bv3gLw3%2B3OojVYclbKtDBmNmTlZIWhTlCgEHinHoB%2FUu%2F0L1onSayNKlwyuqphGeNsOtwf9jRdzAH%2BEH0GcrjfjOYe7LoHAKFMA33B%2FgQg7O5ZG1g%2F7eH9kARH7lvcESIhoYG6WuD9UDWG9HNiwukWl4re1%2FuTnSs4CcCJGRXkH6fQjK6RSrGl4MShhOKujrIBbketrilrR9m3rsy%2FMOUfrr8FreL%2B2WC3DY8GWoOWAlJ29QZI3kCAtViLXPasw0XbVJy9v%2BVDGzyg%2FxDGPIwq%2BoURfWEDSZIhSRw2JHlWl3Onu61SoQV247LI7XA2m%2BF2aAyC%2BgLh8FBOcfkGVWUXESZJXw1AYJ2Tgn4oOj3CwFapBS2miMkUk4LU4liUsstfDfG7I17EsWec1PWKQSl0HV67fP8DpYXjfcQoyCCIJb6KjXkjn5COgc3JAtkBPLZUE08HtshAZ%2F3NohCMaLiMgJxH4aSQ%2Bq9XdF3MtVt3GbEnIj9Uy27A%2F1hVMSUvW4P4vXWUPh%2BcHzgwHYWDVR2Sx4PwAdclo066rcCP%2FacynVqZsAnhNWoHFVUEVJfef6j5VvCpsxJo6h%2F%2BhLNeSDTG1lIiMH7wGkP166D%2FkEUC9BWougc%2FCbJd5S6EFnhVyUgK1oXnfT2B%2F2IyDlY8Zwpa%2BbZAMLpG1p8kacLmZEtkn7%2FLwHrF289Pnpu7fElEwS88vX%2BXKANA%2Fz6BOZOQB%2FRbUBfsfzrQmkRcfGGaTuo81Vel9oWTmGMDeQLtu5qZhd8dGxDuzjcijafviwbje9iU5gf%2Fm9XXPySukrNQ1bizgCqexg%2F1LiUrp3WCVCFwHRyAfy38Wz5z4xesL7zHMsLZrFU87i%2BVlWFhwN8pf8nHmtFcyK4LgCD1iv0BL1BgWgD%2F4MWChH47eD%2BwQ8hZFXeEAFSislwU3g8m7JB%2BELKaY%2BES0ft6ncC5wpMwRcaMqgpAA%2FvbRr9KqcPebh9vGbV%2FB5LFAkJHbv5R5re9vpjyj9%2BnvRiS8caSXIT5qnSR8DVz8W0EiQ4DtG7vT5HX2ftn%2BdAGD0h6sxLJmIyBNEfitpXEYTqEjusODhyuRfazuSxyO1gyuB0ITGGnkMAfyjEiaHYtT22adweCDWm%2BHaj6sJ8Peg1AUbkfEpSNMiViIk%2FgHxFIZpAP8TuTHkw4qesCQSlY2eD3SMMD1YyoSO%2BRDwlIosyNYS7LKfyWLPVf0PDbG166Mojxsco5y1E8eDgg3ENGsdjHUv8PljQfI0%2FoS77dumXE%2FmIbEZ%2BktMn%2Bd3XpoEddoRPDhG2Cg%2F7wxMsR%2Bcu1aOWAITHqZJo%2BcX74dXUaJRiVWxBecx3fNHmc3H%2FF43p%2FGPVRWQmIIFi%2Bf9awXiD2s6gTVyUqjkLlw%2BIH1a9B%2FypfhQJeIyT34Psg22t2xIwydqmIdmEB634ch5frFfwvS2W4IPFp%2BD5tAOK%2FcE2sP0H%2F2ifaioIhM%2BLvMmBV8faFy9iBTh8%2FfDCQdnLo3%2FN%2BfPoQ7I%2Bv0PHpi5fix5w7fsg%2F1c2rfXEjcP9y5mSTml%2BbheER%2F931At5D%2Fr%2B26Us5GM%2BmNB%2F43%2FEYzX2TswBV7ixICo7GvxAzO60TJHv1O%2F4AidF2qC5qKxUArJXHwRll071ogDSelXUV2ec9%2Fp3y961OnyG6W15uZF6Hov0BL6nVYIuOmx7St5f3AzuEAKa4I0RqJ%2BWLds0fuP5B%2BsHCElnPktH7ep2AO6moC0UOcNYztvkIxiq6dDNJ9ahZKbWM%2BSLpapCCcPYftDJ%2FstenQV0dyr%2F5ffJy3%2F%2B3MrLJaSnlDiLkmP6DCBIgU68uxxPTl5Obvjj2%2FrVhs%2FcHCXke0LexakTGECn%2FRkDzNyVN%2FOfyrQZ345eqsVL02Wz4e9kKgjdfzos%2BB5pzWsifyv2ok3e%2FcuKfbLmhXfuRMLD7M0VS3uoRhkkn2mcmkUhAwqtJDwC9ySUkg4FIqgG%2FR2MaH3GFSk8hQBIJRT1oLMmQqa7mGDdlqCezjnpS1FGc0UATn9kn9cFQAdnEu8CdgM6gl0Hsk329jLyuybr1NSanX7R2K%2FrvFBcROPuC4QX%2Fa%2BDHaCOG2Qjlh1oQe4Ehf%2BPJUAyBOpmmT3xOlACeYNRuwYiFJZXa6NhmGXqbADBx8jynYRk8Wvhl%2FAmsF2iq5aPOrKcDLb5MVkHMCfRXVrr9LoojEfv%2F%2Bfee%2F8nP3lwgyL7pHyn3ZXk59kRbIZLTX8eV%2FfoE%2F%2FB9UgPOE9Nnje%2FTNAVnyVp%2FEuS9%2F8Mfv%2FMzWeMtGnhxl52U9%2Bi5y5Z5njk58XRI2xv697wfjD4hDjvsf%2BTkTONTzh61p%2Fqq1b4oBqgJNKv59bNQkJd26FUwrzAeAXDKBG%2BcJfybt3vWvDR%2BT71btqAiM1UIXAcHSIyEZsQ0Nd1BV%2BtC7pumWtMWzffT24uMq7k4WGv3nACgPhQW4eqYZNNWuHXbep88SL6nVcEveDEl87SV9wMOBssXdYTw0QLBZSLXae4gPo9tSiH9yHOIodeS0vuaTqDgJLZculDkAKdjm2OsMiSQxoz9rEN1X45engElIGy%2BzM9e%2F0tXvE3Q4xt%2Bn7zc3yOZTUx%2B4FZwZOxmlRmSHIxM7EDkDO0d55Jyz6Lb%2B%2F8RA5TrglsZ3fqn9ZxqmZ9mC91ld1PSXDdwd4i8NSJqZ7aTs5fpYwVR8Gn5z8RepqJ5Z%2FgeFxXyufuRJv4tXZupD6zVr7hXmvyUCWFWj6PDiFx7s3IBHvndiBmYFMec1LWIjTaYkX%2BsAGDS0zp10ExkG%2FPFpj%2BHu2SMG77%2BfHHXD4uELHltmvhY5voDSj1Y4eZbHoyO5nj2I42vR4YF70dmhFuReBqkYvZfBP3Ls6U3XIbVkLwaXGFrOjrmAjD6w4dEfM0abqkxDiY8aPlJjoOPWZWTVZsoxYJRunc0ClEjNvS2JFQF%2FlME1JBPR49y94MZf4Jnku91dg6OWkSLr2DxE8F9Bv1p7uyhf4cmIUY3b4NK4IJsv5ArHf2Ou%2B6W4zN33h7MJgGc1yP4N75Pmn8%2F69LvzYlvl7715y%2B%2B54Mf%2Bdgnbv9UPD6JgqGAeDIXSTuG%2Fh3vxxl9euw%2FVZDAbl7tS1LxVwo1v8WzUK5ZuDuAeYHx4fkuAv%2Fba9j9PFB8VkLjT0eiSJFpiI7xvQ4Oeh%2BMRQ5zWE%2FRjUl9bU0neMaQjFkZGpOnH2RPz1%2BYPvCAfAeAr%2FVvlgW1yyX%2BBUPB%2BqEi01JthZsMjHDp%2FDbzfsDBFJyKTWFJKTvwnxh1NU36oVOqkX6owC01vS9B9bnCk9hySfyTmq0MGdvcjFXwmGkY%2ByntA3P9klEiLO7U3D2Xzl6PrnH%2BoG6kYe%2BPRWb20kuCX79aVZUcSF7lQgwDSK5U5Fc7DrAcO4PXRbf3H63FAcL9BR5QdVR%2FfD6SyYWtc%2B6mJASsIYO7jRqMwd2OtSSCsZfRRAGqS%2BIfySs4exnWAIlAUHr%2BdMrrTDk8BCsLToX8w2dJLr0XTgbGk9wVs3rEaDMLiCpmF9qYX3FSnHCp%2FwUS%2F%2BBmz7knrMDwR%2BugiGxlJlS9%2FhzSE0HAuihD%2F%2BmC5Sive2U1pVWVkx7r78xFIERBRGLEPgQdBIHK%2B5EM0L8fDOPw6nO2hDILPhXzZ38b0L%2F6u%2BJnH2XtG5F2WFqIggfd4V3zbW1%2Fl3l9jhCU9awPIIOqGPiY9Il7IkHrHTFzVOLe%2BUIUhhU0GCZTpfUFvIFw%2BAkfQMWjK%2BNPzEjsx27gvnSIFcioRTrVpJcIWhJEFt7rk1Zr2k4NKsGV279DR%2F%2FQhz%2F6MT0%2Bchu55usR%2FHvs7Zn3r3vifVO2m%2B23%2Fly2KGWH933gNo4P%2FSoRzZWJAZB2HPpfxnbKwvms4YcrY3%2BXXm1B7XszkUGR5rd4Fko2PUD2Gug9wvh6AfjnLEj%2FRWf5aKo4lZ8qMi0ZQbx%2BHRyM5DbkjLK2yco5VB2AtN%2Fw6%2BvMkTaNyTNUV9xPwj%2FH9KGtT8MI9MuSZMEZg4W6kfXrQn15sfXaim1Pz550S3gbeT%2Be8j%2FtlORuXU2G3itQXOR%2BdaQfbV119BUj%2FWActgT1vrLxFJ3E%2Fak3Ev%2FIQwWzASBp7Ro9ZgRxy2G9tYxejpLRCD8a5xKszThdY7oKeHt%2FLDJzL1UcDL3TJ5LXTASZJQc3qvzqEKpw19ptse39sZSB4mJdcDdZ4QLVsmvx5XpEpgU14K7juhvcfUiIRnBAqIZYwgDmk7aeytEuBvlA7oeuzef9%2FfByHrIFJcg%2FVA8yk02Bj3AyehWGrrEjpDIEX2D1w5xA7UroUWtcRCP1f2tB4h%2B9spJ%2BEhbSQGTDI3VVpFsZSfTnjEFcCCl%2FpNQTjlT3aoY1Xan0uFdGwyIQoiAiMXocZIFwvaFn0akuW5%2BriLrUysHd27dgqiPDqgoxuivg4%2FkgOwXHgGwUPCdqwyqPKPEQ%2FYs6JWMfQAZVMYeP3RMJT8cXgVbDu1pNx7c%2BmYSNI0wGKVNAt%2BIUMgtUPLIJeGnK7wb2pXVkIQ3FQz06C3XkAwGD%2FkO4RUbtR0VSEWR7rtz%2BnZXvplvf%2Bz49fvkWNq%2FrD%2Fx71o333DmbWO40k3Vvv%2FXnIkVky27muIlJUNBnyqN%2F2d5zCcyZXAbz3VfC%2Fl5K04raV48ran6bmIWSbOoR7s76tYG307fpD2EBCQ80dX9Pz%2FrdDcVnpTT%2BBah3XpF5fTp9%2Bq4t2QZSijVT7HrM7BMBEqRNWns5Sx%2BkvTB9hurO9YHerGazTsILPJElvC75G3LVrB8tI0y54m17eT8p5R8oXwD%2BnQIlBV7Nk35k63zVSD%2B0CF06el%2FgQ5He11dmbHsG82EQOUKKE1ljqVOze8jkBPmZuLQMyizxYQoaLN998dKU0zUmQR28%2BITyz8tY4DdDbhjw5lj2nGTpPzUJUfkVRE5H71h0e3%2BY%2F%2FCAwERfs%2FpF2uLLB6DpbbNineO659t9jTp7mfUNe0e5HVqjoQQTYVoM%2Fbkfmd%2Boux9pwp2KCxVD69mWUx5rFrmrC88hOQCcytOQMWJO0NFWcS%2BAkmSAqNdYPIoS%2F%2BZUahcSXiP2x%2FAHt8lIb6e5cTYGDRIaPwjVqaOeLEA9qsdoFvvaVHpcJRedC4Qe6LbAOBd4NSystPfKSHVQriMHUR2pct%2BPxvc9ARtawC1WP%2Bb1z46A3StToZcKMlafyIOH%2BJSy8PdqY09YZByDQL48fSIJVawI1LgFkNCEucoE0C9XYTEFH4oFvuJhhrdn%2FG5gXyplhgc1i5VRi3Sq6W2lu0AIBMqJ6ldz2uHvvj7f2LuJDee6A%2F%2Bp3hbIDd%2BnBcTdXutP4hB0B2060j5TKfqXwv57fjHAVObtdGPW3vJBj%2F3dcdFJaZpQ%2B76uu5XvPZ5qfr1UqZh2sv0vI%2Bn%2FUUx%2FNgmTRxL5%2FHxHBlnorO4FzkrtfhLqXVHhxTNir4PDfJMofCtKiGopacLuevQPQNo0%2Fw4j%2BqS9vSR0ML%2Fn5fd9js05t1mj1nP06%2FPJDbkq1g%2Fi4RMud9Ze3o%2BfLMU9vrwCpVU1uSf9TCakn6Wi9%2FU%2Fu1jvS2zWKMyXyfXR0z%2FLIW%2FUHRfXTTn68ZbJGblXIJhkec7wYlyz867DwpUp%2F3VP%2Beelan1Mx0a9OdZY5jFj7irquNyQX11yPqNtsPfvtP5XXURCX3L1C23urS9p66Fb0jQzJAsdSy81xYF1JGcvw5pBWQR0F%2Bs1qyM67SGNLzQTIqnkfqQ2L1a8UfIVAQg%2BLD2qPNYscg%2BeQxzYDZW19lLXOYHPJjgQKglksJ8kZUN3HS7xT38ugYRqSQX5Z8Q0sbhNCnehU2oyFnSMgNiNwtIof0A98TMjjUCMx6bn5sMx4hvuCIFQBoMfeEAJYo0fkAhaNm%2FbvjtUIHzy3dhfwVTg%2BUP7MzZ0VIiB5b3NM5Xj0ufLWpBTNhwGWVYTo36wTmJDqYoRGRMDgo%2BTJ9ICcGV%2BaRbfbsFInPsakcQD08y3FgHLLozoYgICjxKtg4wQY70aapE2SVavImoA5Y75VL%2BBSr5ZBopao2%2F%2FfmOA%2F2KnTWvlC9%2BnBa5NW60%2FuaJWHYeK90kYDLPzon%2FN7n38tvc02uacNI7ee94fEPn82J9NhyChObUvuxVqX45U84sk4G1Tpf9KriZKTsX0Z1Nm4wNUd2SQ9KxgT8NZD8jr%2FGd5u59i3%2F608JIwYt%2Fxh%2FkmbaXwLRkTrWH24VBnZp8iE4uo31v%2BlEqJtDe8AQK2eBXcfdf%2F85kysjrLFpIvs7o%2FxitJrbcV1g8IAtZse3k%2FvkxU3OPLKVBOF4jPmyT9TB5ypJ%2BlpPf1GY2iO83dAZRk%2B3zWYwqag8oaJWCNzn6bH9PWOFj9mK%2BHnW%2B0BoG%2BxF481e5KUso%2FtlSkzN1LL83vGt42yCv7iYDN8GdYHJcnpmbNd8F1GGvR3h%2B8mdr7a%2F8rOFAaTKm3l9Mw0%2BKLx48pmNorVhoOK5oBJdsMjXok0sDlp5IEkEZFhEAbe2mrhb3MMLQL4gmFYKj%2B85Z1yXwbGAGCGWHILP%2FLmfpAML4S%2FMN04BiDW6JRkG%2BsCwXEk49gfmA4mqQMfOK%2FU%2F7k1Qw3c9yQMfn%2B2OstjEGjK9cwjPVHyV83Kg8zUE%2BSmlAaCQH6%2BSE%2BHKvagm6BUJRnxbiZX8CEQACOImTn%2FvEjpy75Sjf1hmgn%2FOJh2NCxyV7ZrH7M9o3KMel%2B6%2FdFkA5PqAGRAyvssT87QFWMBCXUqyTNMhpDFApGpO2HGQyb%2B5UaE4B2WbT2oggIlw%2Fem7yQlbh8Kceedl8qRRGdgMRVfQ%2Brey1gP8z9kqf%2Bd2Zq5s1%2FUtv0xW6IoV7fdfMNBv7h%2B6SJdmvlS569BZVtG60%2F0R4302ugJe3iwSOn5lL0r1v82hUB%2Ff%2Bvlk2bNHW%2B6L%2B6exPs7zYdoE4Tat%2FXU2ifan7T8KA4eSiB9toNA48Kcv9G%2Fybh7cv%2BbHYoTmhrUIuzvtE4Sz9i%2FrPSZKttdh7NpzDlujT78YJroJQkikjkQPGxo%2BHfsZ6enQtZ%2FEPA7gqdK%2B5cwX5XbmQL0U55e%2BvLtuRzQ1pn%2FXDv28z7SQUihZalbCjJKVe1Iyx7f4P0c%2BJI4OU50s%2BS0fv6kPp8wZ0GZLFHw9exeZP3Nlm5cu1XtGy8fefOJ%2FdKU3z6pSv6z6NEENYagDzhGpJfl4ZLKP9G8k9fJJkJyR93LB6UXusrG50kgpGcOC7PNRbxtEza%2FJ5lPdz5yYm9%2F1rcCQUWryN%2FmWvxtcaEUM5dMR0HBg1HGJdtBu72aYlBGOV6M3bu2rN3z66dO5%2FYJrdDqorOZ0VZ27XwmZmWmtqZs0BKCB%2BbuYgG7kss%2F%2BUalEYg00EOuQqdEjChzJcn5%2FTIZ7oaOqrj1GUnXMcWzzoXLiyfmOPc01l%2FT%2Fh%2BNQ0MF6dXiVaZRlWP8hk5GbqkhhdQgzjDyzQGqBOONUq5BELA4AGpmmX3Mwu8hmMNqB5CAUWGL56ahYTJk0EmkEaCh15SbgZ4SJhFsbub7QZUjiH682xQJtO6Mg5BqH5FhKxUI6uKOctXnzMZbVhUsDboXbRbEOf%2BY9uZALImhAvNFZvJKviXbh4ET36ztfqblTxfbrQijJ%2By%2BLkC9oP5UUL9R%2ByvH78S98DE2e2GAv%2BA7JRib6184fu04K%2FZbuvPjU11GW7FtXDb7vGJBL%2Bfk%2BL%2BIOj%2Ff8t4tEczbPoB1X%2BpdD7N%2B59l02HqNaH2TUk9qebXEYPeLm14j2Q51gth%2F18H0v%2FX%2Fx3gn90AGA9FoEGy2NvMWSwcLj%2FrNrtiXkbaDvgXEOZc%2B%2BO9tzYPlo1A9edj0vIQiiiJHMS9duDfERV8mu93Fv%2F1qrP4h4Ddu3bF%2FytBKObTDdBWdT531vTc0y1bZ%2F2QPWwr74dxZNduAfw7mUAzqd%2FwiBrpJ8b1DxvpZ6npfY0fdb7Bei1i%2FXQZ2YPEP%2FMGAq8kc8WjYc%2F%2Bg%2BPPPPfcc8%2BMHxRQkjXUd%2BwGo%2FDkTG5ST8GU8l%2F2XH9v9r%2Bii1jX3LH0QUEII3iIjeTAMxNQfqx86wRSTR74gtPDHUuf%2Be39iQcQ%2BhraTlp8uZHw4%2BDU0mm2eXBY%2BC5iLyM%2FVW%2FG%2BFPPPvfsU%2BPjB%2FYKRhQgSg0QsrWIfVynPwqtM5734%2BPGev4iYCCZCsHUB9GzQ6aDHOEqdEoEP0mcgVLCD8RvyEevk3emGpS67Gy2yoUl%2FlXJ5Aw3rbN%2BGAUxDVSqboZPueyOBp0qL0NH8usuIIlAPOi3P127rxIRiOBgYPA2uY5uGXTy504EIuCfpJdvVkLq%2F677w%2B9UcZGyoRUPVfpjT%2B1VpS6rA8u2MGZNYqiK8TfV4awmBkTexG4L43%2B3NXtLduW66w3vCDyVISKfLdt37%2F8BEyCsCQee1IKo3WaT8OjZ%2BmIlMOeY7sC%2FBUkS%2BirjR03FMPzpbVD%2FyzGpra1%2FN35VHzcTHPos4g0E%2Fj29xpvruFa%2B%2FS101mq%2F9WddOV30G2tHUQKCnayq24Umen7uskP%2FQVq7O0P%2F%2F3umvJvIJHSK%2FfURTbS%2B56eOuk2nGbVvIuedT%2FObSoKLAcR%2FkSzHQ8Lg%2BdcbBir%2F9vcFxoeFEaTurVPYBpo9K2VmL6i78c6gaTtgdl4sua798dEP%2F6Obrjpj%2FaTMB7NNHMCyAbsOO8qljo6VavBPV1Ms%2FqH4m8U%2Fwl8JC8L69ttdedIPzhhDFgv4xL83Wmid9cPy3VbeD6spaZ0WwL%2Bbr8386tvCI5qRfojrPwvpZwnqfYm%2FC1ivfD4ZuXxTaApGYD4oLdtkiX7%2B2EsnXjv92omXBJSE1ZE3kRwGKdTlBdI%2FYDOx3kgJxp7r71%2FuX9urgTHuIhxIXmFCaAk5MEin5xLLZrVGa8HiM7SKVHEDlj7e3h%2FuCe6EnwPjeeciwtbUXdGPg%2BF0Z45jLosqwFZf0W07A96Vm%2FHSy1Onp15%2B6fjEcwEjamtKNUsBNgM2UVHWcpjT87B8YD%2FqYq%2BaN8kfNPWBzoeJ42E6yBGuQnHq42PiftodFyTgMoISRsPIYKiOGYlU%2FjCm5A9L%2FAuuBM07w00660%2B9fFyAjd7vrD9ZmTGAUAYKz2ToaTkqjUD04Si5GCBpgFAiAtFACBi854kt4ZtMaRHDwcoYiW29H8Bwnxzzi40UsU5PCh5S9o%2Baq1rmBytoh%2FlrsI5MLabtoNV6SD0x%2B%2BjvBePfJShduRFDUosYKy6CIw7c8sS%2B8R8fYwK8duL4Cz8MUijnaMRNbwQ95fkmoAP%2FMmhER%2BFros9%2F7O67ykH%2F1SS1R7%2B1OfxjQCQCMqyw4GwtbiDw74W1HlufSaB1C61822n96cOT9sgRiLKlmq8GEcdOnJ7J4%2F%2B5qSMN9P%2BPIf0%2FC0Pvo2B%2FpPN2XL6o1kX73KbTjNo3NfJM3%2BXMQN8udUCetf9fGTzrN%2F3h139%2Fg0D6DWsBRy4naokoO6tSKz5rvsZKBbob5wya8DL42bffdffSOO66HSbWVfWm2ru90TBpeATLBgdnMPpkVSffD7kTin%2BW6ET4G4iOsq7en%2B8FRFF8KHNcqPjEv5NatYH10y7ejzftbx78F%2FQFK%2BTlkYyD9KPhuZgAcyxJve%2FpIo4Tnw8Xt9HTJ8uYirKPelIlrpBT0zOzYYm8PDc7c3oyrI5bHeHHOALs%2FDmwmQpNUpd%2FSP7pi17QAOSG%2FIHkVQgX23dG8dj0xcvZQjzVaNYoTVFasfcvO0uf1N7%2FK%2FhL3n%2BPjH3iXFTY4gvcnWf9dMuoeJdFPCarWx5%2F8m%2FDVik3Y3b20puXZmcvnHlt8gX5tch9RvkADesgvFfyrkMAXyaUD%2By%2F6djevBi1i6RvuAaZD2cuZDvmpTAl5Bp2yY7ZQ5iQMUZgfHM3iU3PuRpIKn8Ib11jcwsBgA9Kw6t11r8UBsGSbpSjunKDGH7USsAsMvSkCJNmOfgUiQFc4t81QLAIJARCwOCJ%2F6qAnocggn%2BwbWz3%2FnnESN4W0JcZVZt79NR5wUPC%2Fgl0IrYNdgIJfh0Tjk4Dvdb%2BTnThG7UmNiZi2S%2ByD5jVj%2BUZ02xhRYlnVsSSF7hbkHqkDBouD8gU1oQLmrmMbyENT8VjzLF5kgnoOf%2B5sLm%2FD%2BdY7e4b2zkPGvRX04xadSwMJ2FlKZMUeFuLGwX8p5aasGrg%2BySkmhZa%2BbbT%2BtMTk9piRESULTo%2ByWvJ3vG84P%2FZS4YU8uifLfWZuHT%2FVob9kc6zAF488xpNC2zTaVbtm7bwSusDr7s2YEWpZ3gX%2Biwog2fdpv%2Bw6fc3qGE%2Fnp0J6raWSnqW8kaLzwKjkaAtZFmnzqBeDkdp5rPlNUvjKH8WYdRVWVR%2BL86kslIYKzWS%2BQ7OYPRJPXeo7qw%2BxUYbx58oFRbO73e2kP%2BqW2%2FWnCl19mqJf3zP28D6aTPvh2FcJPDf1K9nN4aGC%2BnHxfVLWu%2FLs1TQfbqLVN%2BDdINutCOlnhSwntRGWRoB17pY8TaAIhgBjGNJXrcXL%2BDyz3fP97IFcoM7kLwGwsX%2Bg2HrOKHQH8pPCE6efBy7ZlkmW8D%2BIm10lj6Jvb8gFNkm%2FoWkiK6ixdctcC34ySRMCQUgzmQs%2Bq07gqQ5%2FFRuRnY7ppVq6vtJ1QIuEsK7ITgw5%2FyJUQJ7pfxbJMcLgpBG0jdcA%2FPBXcPhsGOqV4sj%2FOSJ35Z6n0mqQYncdw1VJcj7FpSiQIB1qzwvT7fN4XUIP%2FnpDUScXWhBYjAIOQbDmKQ8rCHaKBOBEAhdnvsHVhl5COYH%2F8tZmNwq5gRGWk4IqfUjk9Pnzyj7Z28QaQr%2BpwaMoycVMKPCRc%2BfVV0kiUSUPbJ57Fu1Tb%2FX8wD7gLP6YSFLy4HMGUPjvACzZUkPZdCz%2BRkwR203qx%2FGEIJ7j%2FrFSMG5Cci3rv43Ok4EGVpXEfO76DO8KtJ%2FYg1AHZ40hxbGYrghry%2Bx8CW2FjcG%2BE8z6tbKl4R6G%2BS07bD%2BdJLk9ll%2Fvksc%2FGC0hh1E8L9kVOQp9uj%2F0%2F8sMlT%2BLi7ddzrsT%2BQb6ioTz9GueMA2nabVviIldBKcVPM7JU2GnOa3mHfxvZ2bYfAEP6z%2Bf7dBDft5WhIfFEtYH5CzvrCppmcJ%2BJet5ApnpdRs%2F44FOM0zqULAluCHNyyN42Eg41U2p9KZFM0LsPqJ8N4dGH3i9GlWn%2BUu6rxZojPgnV179kXuOe2YaO9FT0v%2BxrqdhI%2F5nreB9dNG3o%2Fnk7UA%2Ft38apL0Ew04jhvph%2FB86et909%2Ba8swBqXniiRmtlKPWAQsdjvxU6jRfQAfwSGOnYLNJl3%2FQxOM7RdbqDySvwjyXdRveZgaFAy1p2Nq0t9jaa8BZ%2Bsxr7y%2FY%2F%2F8GN3XbKBS3%2BLKVMPnJOcJMFFuqwWVYkw8dn57Vn%2BpFauwekLNRmEI6sSwuV5JSom3NtxAMtje3xmJCtC%2FIqv01zJw8orzVnuz60XOY1Q2QXGDRGw6f%2BbFA7ovkIN8nFstkOPeedevHwCoPonem%2FMGkTFtNzZ%2FlMNFzJSyr85N%2FdGGwCMR3qQf8Xznzn4J%2FEn0IzAOpXplsb4SqSoAWP9gfENG2MdRfZgyBxyd9Iml7nSWJRPfbXx3FLTVJ%2FJNn9KsmRTiqRfBw%2FPOp69KPTxn2tyq%2F1wqwLoS%2FIA%2FZIu4moGX%2BWUDoKkfzvkDvj%2FSfEW3ijen%2F8B9LEeDf5OX15h3oW3zdGOB%2FWcKlt1a%2BUMfaYKTZJuvPNxpmpO26Yngld9xzv3pZhNqxZJCES3nitTMXZi%2Fl0X%2F5s%2F9SK%2FB%2FqzM2iJVz2F%2BBvxT7nn3qwF4KK31sOlep9vVSwjRKOP7029b8Zjalf6PNbpT3s2EgLFvq2cnTkjiggyE464t98axqPGv9fGclycrLBc7qHt3MqxBgTfiDylI4%2FqAAMhZVXn4oM2lAA1msfvpzvdnHtDe7d%2FqMxVuIPii8SHQGvPPU38XJooR%2FUlD1qhFe7e%2ByS%2FzT8LQNrJ828n6YCACXFsC%2FK7I3S%2FoJpmATr0L6oea25PS%2BILhiva%2F31qYmv8YTT%2BBbo3UA68XV7rQcP4lFpE6P3g3g1QXqMP4J2Ewo%2F94H3b%2FoDzoosta3HEheJ45TsTW2vxBQdgRBcovYn9ZeyHrLOO2n9v4aD6z49G%2F9E8NNxvwvbvFF4hOKDT8Zwkr4ywkANOd%2BeLJRbBYK1uzMtNyOMz%2FRUoy5K3IN4bbgg5KrQbgKhF%2Bp%2Fng%2Bo9JhFxPqfDh72S6A778QSEizsodB%2FOZavMxVPh2naCd%2FSLIF0RYeyYGi1yzxD%2BwmCFEwS939tFnhKUS3tDPljzIKXKrNqfdByvohgFiA%2FKMLg0QgsH5lKJjs84J%2Fz%2FmffxXT9qHarkw07AL%2FLwjCOPZ8wP9ia6SGQtlGAdPH%2BkTS9lqTRKMqFPi6iqZBGS7xj9VPqhnKRYCAd%2F984pdqk1CnwGsvRcSNrgG%2FX4IHPobyrZuAtlb%2FMfHicJRSKNNPzWOx%2BNGOB2r6P%2FzNb22rfHV9UCKO5JlJBS2%2BrlfwD48mddGxVr7A0uby6NfW%2BhOrqzbVKqjrfuT%2FkgdNW2Iod3SPKNgnjr88FZazN0D%2FAcvfS%2F5cQvoVgbsB9v%2FpbAT%2BIvPZu0st16IWnU3n6tS%2BSAlb1PyCsGEs6UKnvB%2FF%2FerZydPiN2cWv6bP8jTluQLrzjRUSBUCrAl%2Fsu3aH3%2FSHGT0e5nC78PSsL0a7YlLdMfcaM1K8WxzTp%2BC%2ByH6gPu3k%2Bh8bgJ6qzlrQPoxfz3%2BpjjuEv%2F4nreJ9VPM%2BymUqhQD%2BRT8t35OMenn8CsJ6WeJ6X15pN6u3he%2BPQ4bJWPemDzTMENwJLekuqx2ckwcjXu94%2B2wyRvi4el2SQD3cOApzv7t2eG8xB90XL7WH0hejXkO%2Fjo5ofLXalDggv0Xp7XXQvb%2BXSuW33fPP7%2BXIXTM%2F%2BIWXyybSCdAy3kHVvTYcaM4rklm8G4QXwf1td6O48dkjA2goTANH8H9EDgP9nLaA1%2BF%2BWMyqek90b9wD8jmw6WZ0yfs%2B8O9OHNWM8pEL%2BZ1Cpz0Vjfzc%2B5ZL8bC1VpjYiTMjcR%2FLijNKu8zoe4eJsSxuMCtxnKGcIMIiFw01eakE2cSlfIRVvdIyT8sDCdns6gzztEf6mQ38C%2BVgweifSZPCUPgVqRk5qk%2BDPh%2FeuanczOnA%2F4XWyM1FNIGDzU6C%2BT7RNI%2FplYZfKy2aUPvFwjiQRlJ4v%2BX5tMMJRGgY%2F7Lr2CPZ0kIU0COQ0o0JImwxkXAFgPMOwFZq2MvTEyUhM1E12DI%2Fg9LHzvBtvLjdJa5r%2BgpaPF1nYJ%2F4%2FukIPpsgqGbYNBfa%2BtPopZ2Wn8u%2BxV50IQmpfhfuNSSWSWj9Noriv4HhNuppjkypSTvU1XsPz099bIAf57HsRCPa5kiRFe3s%2Bm0pvZtXfNrgO378rR%2FUXg%2FXwz0%2FXWq4nW2PcCLJs5yNv8pjb9AdJ%2BECqlCgDXhr%2FZe6%2BOvWKCvLn%2F7kBZsfjy%2Bb8fW4ai01%2BZd9GbHwbwX1maE%2FWb0CdEn4n4pTDEtQ%2FSHyLcOxk9IP8bY3pEk%2Fpk27Wb9pLwf2uq8U8C%2FJ%2F0c96Sfpab39cW0BfW%2BvsCP%2Bbj1p%2FLMGzCDJdWfIQV%2FYPzvtIwCygTqNDb5nMG9o%2F8loYqBIrgq5gvjzXKk4OAPJK%2FxAA4LvfVgNL7sDQpcsH9Lrb2Ga1j6XNnevytsIA92fXb51bX4YhxICcOT4Zd798%2BxXZpzx1ZOeabjwXc13o6nfiTTRM4yor3dFm6xieZzzaV8FWabNyr190ReyCWAuMMGbd8f9syJyVeM%2BG0FHVNze6ub%2BTl4VAoFBjZS72NxGC3x74JSbF2DTFDWxx%2FF8gfncu0xAlqJApf55O7GlVg%2FOfnAW75dDS9ZGGagCYeo0%2FaLvPBlULSrVSuTWfHDrUhJzUn0YcB%2FQXJnLv5sbqYBOLTBw3Y6C1BA3qIF5D%2F61qBUBb5WkYa8vxOCpJpNHmKluZMu8Z8sIDnOftZ7y%2Fx0QPI0DJChF47G%2FliK25Mj%2FVuTCx%2F1QPP1ExDvD43bZCdTi%2F%2BOlSs7OgXtV4YD4yfT%2BQ6ozf%2FXnJsWT11Bi6%2FrD%2Fx770xPn4Hv49kzTXjnXGvrTyW7tdP6kwdNhcdZA23tWveEpVj%2F%2FohkbGUnkbup6EXyPkF2dejYy7lAXFt70GY9QP%2FfwBiyVbVv65pfo2ro4y68n9CBXhB8RUB9Yttzy5XO%2BmJyFtCes1Iaf6Ho3ocKfm90%2BO2%2FPXdtj%2F%2FWLGT0d41b%2FOKhA09iYhW5%2FCtL2pl9%2BYquXG92YL8ZfUL0Udwv1Gapr4sNrRL%2BcbyOLp%2B0EjDSjzG2AW8%2B8d9%2B1o%2Fn%2Few7%2FKprq%2FPOAP835Ug%2FJw7j4MtDt8T0vv75O1%2Bk9yW4GDa0WMr3p0LAS4E%2FYgbgTUw76qz8a7msPDxQgGXg34y3XVifUP6BEyTJHbPYmeUsdJAIx85um7a86g4N8D4C9m%2BltRcC302VBez9A0QJFSFoVM22%2BEIqhT8SwJ0ctXP%2FlKdoCrg7I7YYsvcAAcOWte%2FATsa%2BHu%2Bq45nkEq9u6fayGlLWDWhF3JATI0AiFMQtaUX7%2Fp3i2DcB8ZtowwUinvA%2BPwePPUGbT1j4mVRBXCKblg6h7i6mTwe1%2FEG5gpfwiY%2BoAhcBM%2FWotA6Tsn7yGX%2BjY5UiIalDEfXBienLSARD1IkaRR8M86qqi3Z1uGIxUYn74FckrzYRh9kAdoH%2F%2BwUPiR3hJagG0lqBsCv4SFcl4T%2B2bVCKAP2btwx8dcP6L2uYUqZU0Zg82Jj7xH9q9rOGe9Zt2L1usalBeIZe1JnxZ%2B96wjOFfG5ApwUA3Xc3467%2F6TC1a2nuG7ZIUbpFtB%2FwFzrfLVvCv305%2F7TwmJQKWnxdl%2BDfp84RzhrfJ9XNNgGdr7X1Z5jubbX%2B5EFT4fHdgv%2FVP70%2Fh7mCn7I6d4bI88sK%2FisbxKt92%2B4Dh45IY5MGBa8%2FttPr0sJKuDzgQYtq39Y1v5au%2FYHsO8p%2B3DCw6ffEs5PiY5JyT85S3s%2BGij8rTR%2BlNP7TKWxJVxpyIH5v9Pjt1OlreZxqDjKm3WJghh4PyERNrMzFB%2FNyM2zoxbmNDi7bLAqNuH9aqM00oIPwH7AJnhMQYfWVoMAVx33iv%2B2sH1%2FH17Mm3VlLHfxTbjPSzwnZMZ2D79LS%2B%2FpwukjvS3ABUvfWfkBWgBLI1eDNVlntlFO8dcd2t8k7ixP2Y0COMwX2waSnFHtmsSOqLwj8ZyUpOvEsdnbaD%2FSzd378tl9Z1nprLwS%2BtdG8vT%2F%2FZfHAQM1Mda6yxReo0Cg7OQclgKfkbo%2Bdt1S37Iqa9a1FrsfY9t2A%2F3p88YA7B%2F7Toq11dd9Mht5Bq%2FDib8ZFQ9zBgYbvl%2FUqdFh%2BPs47izaSQGQFTyUPIwjNc87HYJqQeifnbhJon8imnVvID9ZkDPbKpPQzaeU6Jf3beKZ9Zq%2FE%2BiHjj4LYTJjUAK%2B7HBH1ybmGPciwWjgo42bdGvlyKcYKfhUA%2BzAxhJyYgv90AgYzFOD%2FY4qHsCNEdjP1shKuDocduiLy303Dw%2F1hU5Hhkv7CSWcyJg9JoG1J4j8x%2B8kIaID2OD2ZEma8NhOGfodsaXLUxv6Um84LT7ErAKACcsZrIIEdW1GtBbwvW6QkY6sjIfoWp4yo8%2F3mVnEuMhabfUNBi6%2FrEfynpHmzzDyrjvP7W3DMvMbWn1S72m39ifD4I78p%2BH95eU1UY5qtyq6A%2F38o6rGBjRH8f62%2FGlT4Bw%2BFrMsuE9%2FjvhXqKp%2FRyARZcutq32LNL89vMWQbF3y%2FfmO1uvHLmzZ9SWn8AO805Z6eVenr7fdnOd6eRxQgLj7XwZYU3xBKeJnO9QL%2BKdjgCfGq1LGiZUPNdWbvy5H%2Fgf3bcTKB6DONpJH1VpopvoXwD9Y35x8cMSiOJ4n%2F9rN%2BvG%2B3rxe8Q8C%2FuIEZ6edp3THNwXeJ6n2BNvPbqKfpZrHJ9qjfKBpQJKzAPwe8kdVOlSjVse86lDmqyMpR%2F0EJaXs1rhaPj2LK%2F9SFWXc429Ez2mRKDBews%2FtK2CQC5eeD735X6629zNKn%2BhZ7%2F14qAB1q%2Fba5YZBydS2%2BzHCJdGs%2BAKtnumEU7wBv5ZmqUki3rMFtT%2FC93ALnLZmAf%2BaUX7md1NOFYLC94XyCuCWtyPcLUJN%2BEEL8hjPkcKBNLZ5Kn3HyEjXuOz%2BbvgWYhwI%2FLZHNlYSEcBwDiYBULEwNCdAqMQC%2FCJSYei%2BlrB8ikET0TM%2FgBqK%2BdCrKA3U5%2F6oGUdKwKqZodHnvs97DZVIoHvwnpacPBjMU4H9F8RB2hGeizesllXq%2FEgk83b8bY6RuCY6ISwRIp4l%2FSwJ9hcT%2FAmY%2FMoDUfZiefgBVORyGXtKyuotVt8kEtJtO%2BcoLnufrbnYLaFmUjLHKJqoF2QpHpYinjB%2F9P6tVLIGcKIVpVdDi6zoD%2F6ldjm%2FlC9%2BnhYT5tbP%2BpNrVdutPYqhfVvx%2Fx11SAGjoLMOICv7%2F3t%2BIWLM6tmv%2F9sFKoPzs%2B76qe8dc69UV991z16c%2B8bGPuMJKq2rfYs2vQZFCsoamfaUAGsD%2Fl1W%2ByxKUptzTs74hZ33JnZVaRrCfsz%2B4zy3oSJTofa8X2g8hnrpBj0%2BcVBqe1Iu2w9TE7ZMmjSHcBPaLlYnifq9olEE9KestDv%2BO8A%2F5x5x%2BGo4YbE8u8d9%2B1g%2BztiBmWJrgnydU%2BoAY6edx3TFx8F2qel8SzQ5nLrBBhfc0eDvecN9Tbqzn%2BUZZ7dSDalPt26mdiYE%2BDzbdJtg85f%2FHL%2FkjlsHmIvskyCy1CitLMnZ2999zZ6D83Lw4rb34L0H8zt6%2FamqA4MrIFXvxRHGLLy%2B9RivZoKq7dsmNNMlMBN7KM1WlkGxZfWGNGfn3JN0LwL9TYNt04IaCmH1rWk%2Fb4BKEgtHL9wtFQz3v5RFL54F9lAHAtBpEyGs2oXC%2F6sh9Xc%2BBwEazRHZs5bw%2BjsH2P0eGzjSGriK%2FiI%2Bk2pxuYD4CcU3reDasp4VD1DIJj46rMeBDoZD7QPiBocS5Fu1q0KyqnKtTgkTcl4njmBLchyQfavBf8VBmRzjxMt32cspd7ebumzEM%2BRjAJ%2F4dySAF%2F6bO9rwt0LaD2co%2F7lWx2toADWTswzleZ%2BLIgUl3s5xH%2BJPbB3miRH%2Bp26MW8TrXYvjz9XxVIuk9UNDi6%2FoB%2F%2FB9PFpOWvnWKi1Q5a%2Bx9Sdepep022brT%2FD%2Fhz780VAA%2BMw99y0vW5cM8P%2BeHdu27dg%2Fvnv7tu279%2B2N28yAtV5dISn%2F2z%2Fx0Q9%2F4H1mRtS62rdY88sZhQlblWmNP7lVk%2FgDoZy2YUAsPEHpSco9Oev3Nn1jIAxGb%2F8f2llp9ojFo9hxy2dY%2BLiEfHRdCH7xitQk4nbplHRWrBEEqihbF%2FNyBfx6PBkdDJXfH51MnKKR%2FKustzj8Q%2FgfoV46mHf%2BKRvph31ityX%2B2836af28dE9ibW87%2BPfPW%2BxpBOlHd8xfA7ktMb0v%2FBHgWYFOgA2Kfdlge96ar24sj8jKm5HSh8KbsNrdfc99K4QS1Dz4v%2BWKlH%2B8IL3k%2BOF1vxc%2B48C4P3hApCn7z4R0vFfCaV2SsbO7K%2Bx2UH5abu2l%2FzWiiD%2B19ydPufmPuGJH1S9o8ZWmW7kHEHcMq%2BYJNwg2I%2FBWnuny5ffeLVtWuKTNcTDrReA%2FBZ1Mh%2B%2FYmeTJua8WURDJkPKtbJS0Yvz%2B5WLHLuh%2FTwr%2B58v%2BJtUgZr0xdszrB%2FSJ7gHyz1bgZ0hq4H7QJWMQUO6f5Qn3JlSt5xS%2FhFFpMJa2XaCAYC9WivFUmouyHWuX5%2FBoyHMrZfwHlJUpE1L1XCoZR4g1LBdQ5IVt8L9L8RB2hEJFlrkvxeBZLDvlWkZ8E%2BTBqjZ5jw1508S%2FJxmkTp88i16xDXE%2FgdnrgxXL3Xf%2FSwTjUvEwnUmqAEg8TvOO2BpAKb2fYriMnmhBMfxxHQFdkF1i4UuC7OsP%2FMP3SVrkJq18%2B1owybnW1p90KZNSRputP%2Fn2m259bygAfOwTt99xl%2BxuWX9srajs2bs38PzH9%2B%2F9K5C%2FcPzFt2W5Av%2BQ8r%2FtA%2B%2B91fab1tW%2BxZrf4lqBPdCaKdFnXsS7Xw4E%2FsqGL%2FC0pCn39Ky%2BECz0bnRnLdAmEl6Q%2B9zC3k3eEuS6sPoE5Ih0UJLysRPkP8xMC0khWDbIccAsy%2FV4Rh0MSWyC%2B52pt4p9lX6Sd%2Fgf1PIymL%2BE048n%2FcxBLCPx317WT%2BsVg3SikG5qAfynkKeY9EPxxEg%2F7JhLUe%2FLSCs8O1egE2CDWhC2U19H33lJZUYKb8JqF9ZI7NiTtG5C%2B0k45v5qffsnaxLwrx4UEPi1sP9XxnYmRyyNKQt6MpCOt1GFDUsydna3Xf1ud%2FP739raawDEn9QCUAMMV5L2BKRJi1p8%2BXTrym4%2Feia9dp%2BDYFO%2BXXmmn%2FrUJ38zbFmfvr9x62oF4N8%2FPURiHvyv8WRtIgo%2BgJSvDEVIK%2Br3f%2BqOu%2B65X3Mc%2F%2Fmxt5f599WgtOUzCFs7vsqLI%2F8wLS2pIS0d%2Ftkdn1Eavqwxa5wFPEaq3mU%2FEa35CISx960OsgjEUY8UUNMB5K5%2F%2BnGt2O2QPAv6kI29qufqi5Jx126rgJ0O%2FL9b8BB2hJKK3CNzX6NfEv%2BdLP0k%2FsuO%2FCN%2FVtLEvwGHtBY%2FX8LezIDNVifXSfdzd37yNz%2BGVaxWXbzOhJcE%2FLNA5XuR0gtTmuEgiaPF12Ob%2BwPo66ukPUWMMef0vnz2dQb%2BfY7cK2Rf9q184fu0gJGvofUnQc3mrRLUFFh%2Fco8XpwDwvg%2Fc9uGPht1NSgBl8H9tLFh7TkyeOvYjVRaxzZRDzuOuOxT4h5T%2FLcv%2BJ3vvH2Rned15LkTAjiBe%2F%2FaycZj17GK7jLO2dzNAMmQLQ5ZZDQQs6NZttdrONjaSR0pmSqiL1Jao6qqprtqd3t6uXd%2B2bv%2BgAUsdR2MjrSYKMRlAm7EGoSEGHMCANobIYGFEkAxS25YUjWqfc57PPe979HTfR1e3b9KI%2B%2FzBlUTfH%2F3e533f7znn%2B8O9Uotq37zmN6sSMMkpfit%2F8dAWIfz%2F3xL1%2B38OrSepw7fck2ft%2Bp4966sDI8MbeJZV%2FWk3r4GOOAUrpn1KuiDnRMgXflLCHpGZ%2BM5dT7746lvH%2FjawNYNDd1iYl8uFXNeBNw8Z7HcrujwEvoOgUG4h0lYywr%2Fkf4L5Le6rIP0AGCgW%2F7M2sn5arxoyvlAtgP9kh%2BVJPwxPXjPSz%2BXcMRen3tcivrI6AQP%2FfQUm831jWqzgFNDe6ltDU%2F2ySz9w6X%2BrkgRHDxl3yUZkS6Uc85TybzjTuC%2FijTg4ev%2BYDP%2BnNgtDzi1EMcqClr7vqEro9ZKMnd3Ss%2F2WzrvkVz7hor2w9yfQy88CertjFXA3StKmI748%2BKdZWrIvQXrtXscEm72B%2FCr3nss%2B%2BqFLL%2FtH4esEZoGJnOA3A%2F45uw38pzYtfpRz6lBs%2BYYghU9fru9%2FWXDskx7HyMxpCVf8Qm6LJODf73oAHggbi0wEt4UMHTZj%2FT4YIh3%2B0ZVyd1QlSi%2BQUB6Q%2BloN4IOnfXPKVyD%2BAR2ARf9CPeLComLVm66%2F7pr%2FUbU626RQVk14gP9Rz1UVmph3X86z07UdKngIO0JpRere1%2Br3GWv8Y%2FRs5J9S458Wo2%2F80wRKLwrzkL5A%2Fd7sp0jS%2FdUPxaN2rys4c%2BDfWhrmCfeYOKsrjagnhhZrFzjg2z%2BS8YEx4KwkSyO%2BfJF9joF%2Fz%2Ffx3phvJ1G%2BoTBvgh2zmKw%2F7dczOlNq%2Fdme32%2FJhUvfFyqAMAK46lrF%2FxIqJzvr57rZR0D%2BgeN%2F9a9%2F%2BpMfywH%2F1tW%2BvmKgcfB2UjHk%2FFb2WhP%2F94Jp%2F1dppXq9b5rO9D2eFa3%2B1%2Fln2emb0vh9K39%2BmgJXkgQgcEdau2FxrLVnHxd4nrSQBTpUpx94aPfTYSMfOxnb%2BAHRm2W5LJicKe4%2FhL%2Fz3ieeFBQK10cHAJ7wr5G%2BNgiYMdLPMU8saz%2Frp%2FVnpurX1sB%2FusPypB%2BGJz8pkX6WLEiPIVxhGq4PzKH3%2FdD7M%2Bu%2FMhrdUQMVH3y%2FX%2B9ber7doCD0uhYvw3q81o2hoKU%2Bo4%2F3XrTkvIv11AVfeSuX4la%2FfF6OuWEswxaGsVavkQfRW01tJscIbbwt7LBiKPvjocFw9x%2FoFFYuya3Y2VGpX7MstfMk0KuYBdSsHgh%2Fsi51rcmILw%2F%2BoUnzhVjLv5wL5QSbV18hPNOLLrzg%2FCX%2Fhe4Xxihev01V0Rj8Uzd%2BO8fjcgmtA6KA%2Bch7Lgrvf2G4Z1722d%2FW1%2FAzjOIXsvFGCv79eY7EgdY7f2MmREWADB3WezTg%2FfCHo7fAv5HTxfnXyoOrARLLmZQ8V3yHFZe34CuQAz8%2FHtbP9RxV9UNgQSmM%2FdOZMUX%2FavWja7IGTcx6MtRQNNAawD3BQ9gRSitS975WAP%2Bexr9ljlnjnzsAf92iaQSw97ztQ4pa%2FVltsQkm4WUTeF7vEq3lE%2FDvzaf6OPTeKtBhlJiFKZU8ocXC%2F57Z%2BdBMkj7niuyKTcZckX2ugX%2FH93GpWHNE%2BTbRGV9s1p%2FFYGO01sD6k8kGSuaFo%2F8o%2F%2F9qA%2F%2Fadvz5MTnJtero%2BcKyz%2F%2Fmr3%2F64%2F%2FwVz74vksudO%2FdBrWv5woRsui4Qlm%2FFdfEv2tI%2Ffph7jldbppNy7NGBzcEyv%2B65FnWkTSg1yjXMz1JGtCIlobftrJqcazKsivPLi4Qx8gbblVy8JbtD0caG839ZHmej%2BF%2BAiV27Px3JvYdGzNjH%2Fr8As5U%2BoUVUBCqQvo56TZLG1g%2FbeT90BFEptcq%2BGeHNUX6eXUBST8Y%2BYXZYuP1a4ne99Ofyi6rvO3WmvzIJ0kg4QZVK6PFKYC4IxGjTaRTx%2BiD79RQZsbn3xGuPMaaAFvU5QZitDD2jYno9jFM6PX6NW4RhAEL%2Bk%2BDC4PeCio3Xfcbn%2Fn4RyH8tBDtFU08EzvPkZrNAlw9sPH3wUbeDzEX8ZUSrUFXRc%2B95sx7eB3azFqJctdLyPIG2xyDOwf%2BQ9d%2BHvC%2FwtN%2BBPVxDSgUMOexJ7aaI7wwvf0vRCGSgn%2FvNGkxsX3R9LQv%2Fk23mvXcZ2n8F9q3ureA3HSK4IRqImPgBuVufMk82reYi9KDB4To%2B6P%2B%2FK%2FlcAxi4Nz%2F5VAXfOdB0H9k6ygrDZrYGD0ZamIaaBk8hB2hoBHd%2B1r9btk%2BY43%2Fucg%2FIzT%2BjSQFe4%2FGfwMuoM9mZkt7tyTP62UHOfDv6052QhISdGEZozz6fcnCVDdsqvwYc6bfk6H%2BNOLLdpUvss8d8A%2F0d3yfXJTv4uf75EucjQ2sP9E0LJj155KL3vP%2BOvDXcw3az8TMQ98LtJ%2BXAgrQqgPSj9BfpfcfGmoXgITaovb1z1Mqwstv559nFcNNrok%2FOhhYP7hHJPbTaTYtzxq%2Be3R4A89K1bwpO9s1WnPE5lOeRmS%2F7ZXXXr841rVX4vJydhLCy8NMXJ2K70Gb88pBTHwawP7A86njfgIlxqe%2FbWLfSTg%2BkuZlbp9d5vhjyfOYUWTGRC0g%2BPbzfi50prCtgX92WDOkn1efXiDSTzP7%2BobT9L5ntEvrRwmdwO%2FMs485pClPBE%2FHAVxjA%2Fpimm7gnxIYhxpvvYHTTZLw68G%2Fx1gE2o5u%2FKpIe6dHQ8d%2FU60Gj0faf%2F0k4JUWEdiRBT2x5dtbN%2ButgGh1Ufq2hP3VzhNjTzcBsD%2F5emC1%2Bfp4P8TxTMSXn5a69qjruXu2PcCbObGf02KUSmPa2XbyFTcB%2Fp0JlC9B5m6uMsidKbTP%2BhqmF%2FUzDAf%2BXRnEdmKKUnSeu4yFwzG1xj%2Budzx%2F8wzEc6BnamDE8ynH0q4XVYZ3oHWsnzVrBALvNv359x6a2fS1r1VHovPpAPT1sDe%2BGNk6kZUmoyJ1RKInc%2FSMr4dqR0g3Uve%2BVgCj0%2BMEDc9P%2Fimoe3a8RlzjP22ypF%2F7XFva83oT8H8b1H83A7K6y3%2F7YBTNTHv%2Badyw4fcp8ItQo0D9acQXuyopss8N8A8hEfk3fJ9slO%2Bi5%2FvkyU19dzSw%2FsTNCOvPJa0Cf2X7APzlJDPB747vPBwFvw%2F%2FqVQdyH3F5kdY%2F1IBfPRDFADtUfv6xNgxCRfJTwxoHHzYNfF%2Ff%2BPI10c3rsE9wttP%2B3dC8vtUfNb%2FMfp%2FD67jWamaN2Vnu1Z%2BztLkhNPouw7pIlh0TFvYWu8NqOImySjElStYtol9v9j5GMO%2FoAIB%2B4XnA%2B6vB0qM3mdiXzg%2BOgCok3%2B66gOAXpc8jxkFgKENrJ92PTdlk7UA%2Fl23KfeZP1yQfg4IrXxBSD9NTbRuj2VxRN1fXnVGqy%2Bq7WfjzO1LDSZYDvzXqi5dlrw4hxeh%2FVDrc%2BYapMMJxdK9fIvV03485Z%2B3HLlrQKS9f3hv2OZqn6w8nlU9lnrtV3%2BoB1YoC1p5oQ9s3zoN%2FF%2BGx2cL2F%2FtPM3Ys2rRXhh7Fvb%2B%2FGllpKhQDDUZ8WWVbZ5w49utXPWdQgtefJUqzCMk40VnwT%2BVQsL6NhKTb67a0Yvgf3rYtM997smANgoIB%2F%2FcaV41yj828xXnvVMx1g%2BN%2FyKvirvPjBc7MIhIBlJOdTof5R%2BwaQ%2BRFyexBqNbtpf05382Mxq24sjo174uFYC8gRrjih2SileFxd4TNk%2FE%2FgeP29jC9VHydoSfvUqwyfJeOScG1Nu%2Fu9T4x0xo0wjkn6Txz%2FHqpfE%2FN73SD3xSFQhb2vF62UEu66OaUP%2Frd%2FsE%2FP%2BSUrb0nvVD3LA5skL5CDw3xkkw6dKILyZsSZF97oD%2FSy4j9s34Pos%2Byrd1WfMNN2esP%2FWif7M6Oy85e3i29H0C%2FEXna8C%2Frq8JYO2RktXnd3ZsxehTLK%2FV7%2Bd6of9LAcCcpSW1b1a%2Be3uMFc9pBdIm%2Fve0zPj9wZGh9TbPT1B3IhT%2BPl7%2F1eGB1Rh98iyv5vXZRLOulZ8XcqYafbjRi2HBlW6JT3DF1eHUXUseh1i2ibfPvv1qWh6XiYCB%2FYHnY7hfEdFdQ2OIfUn3CntIBwCQfyqluK8RkufNDc%2FKxDawftrM%2B6Gll4J%2F2y558O95prmvK0hyjPTzEnYirZN%2BmtOyREKc%2Fp53bTjDdVdJ73tXA%2B2KgX%2BIJYbNKgTEVTxTJAp%2Bh7nR02kG0jk%2BsHeK4fj7IaCn%2FCtEvG9MaAyTE9WYlC6X1R5R%2B91hqdd%2BDcRslYrgfyUF%2F9t%2FG%2BH%2F2rNL96JCB%2Fs7Y8%2FBerSXGXtOYkZOPbAcigpwv6mIr7Tznwf%2FKfCmUWPkFOec5Hq2XL2z4L863wAA1meazouvQXg%2FBaD24zwUrVqLfU7BP3YR7nOjStlURG2VWT%2FHFOgNxLwqM%2BmU%2FgIaFFcDJMHTTnU6H%2BUfsBkf%2Fvm6DYO16VEJNJ76xkRJfz7zh2MjouwVRv7k%2BMTMdx7%2FvkTiRT9WUa%2F2RO3gONi%2FGFu4XkiWj3ypsBKuEpDSZdT%2BcuNfiKCjWr1TA6SN%2F%2BHI3pv3fjx%2BZlatvqRnB%2FmU79rp4N%2Fu9u7bpx1KlvrTf%2F1jccM2T999rx4MXxPfQBLxtcpHfPki%2BxwB%2F5zjQkhcnfB9FnGUb%2BvWnx%2F%2F7FXzW3%2Fya0NzYkefZcDwJwX4i8OnAX%2BctR7ZvfuhB4qQr5mdjz5KxNeQtqhiBXCjFgBkfLVD7Wt7gBI5q%2Fn1TXxtACh3%2BffXb1j%2FZePvJKg7FQo%2FpV7%2Fdw5uXLuOexnP4vo%2Ft0uJu7RmhJw0ggwfnHvrvKUfufxz1ywjiVs3lrj6744XOJbZfwL7N0%2BA%2B3WbrVZkj9gXI3%2FF%2FCvr5B%2BL%2B8KdXpPnjfSzFoJYG1g%2FbaocPJIHubDc7srXC%2FmneHvWIMkx0g92Iq2TfppzsRoVf75ZwYxjI2e8xsR%2B8BeCiUYbulZxg5r2ibpgCfmr14jKMN0wJyeuz7LyKJNX5Ph7tYWn%2FIdLkdC0mWxpP6XStcKSFi31uryqI6Sq9%2FesqNuB7Nwp8F8igZZd85nLfvm8s%2BPmuVhf7DyJ9jJjz9EhqgCtB5Yvo7FNDdVkxJft1Abg39H1E1YDfRqBglp7UIkAjXhw30cD8M9vkLDBIML0gbHs6R84r8D%2BOBoTYyU9ete47zIpaQL%2B3UXm6%2BXPjcMnLj3Qb8B5aJ9rNP6LeK77w3sbKPQ69GrpWLpuQIbyz9a%2BS4gAU5snTIdu%2BnMpBybjHsYc%2FNG9jz30gMovlb6Ga%2BADDwn2J67RxhZnfjVcInrE0KX8H24oUfvHvep3E18BNYBr%2FPOO6QyTXZBY9iYh3n1zlfQ2C3RwX64Xie9TCv5p%2FV97a%2FhVwm3r6f2Hgxu2pfm99XOgBhcXwqaL%2FDUX8eWK7NaYJ2ffKZwD%2FJ%2F1a0lyFFhJCIllvs%2FsLw7uowW%2ByKN8W4Dlc1p%2Fzh4%2FWh94IHDuPVuWVywxrhXgr9leBvxjpsb3du2cCdf%2B8G2GK94fDInt555gObQjUE1L0KxfCwC4Vm1R%2ByJEpERuQvPLzSGgr%2B%2Frm32lT%2B4R8HfmdsbyIhztG69ec8eXY67JrH%2FWPDT%2Bv4VR2QDoXVRwuR1J6FxbNBZ%2FJVC9obHJDULyfLfF0SbLgr%2BA%2FXInsfJyFcgesS9FQD3Jt0T4N5fP00k%2Fy9gmbWD9tOvZaSJEgzZ%2Bhil00m3IzGRO70RG%2BsFOpOVranP5FdvFn2%2F2ZZk3nvHaGtRAR0XWt71xXgXgf6aMbrCIxYLHu0N6mjctQnPl7%2FMNYkgDHH%2BvtvAYa3xwbUDR0vIHzQudh4DFwWEgFZ4%2Ftgj%2FVJmvGYHP7PyznWIUsjE0%2F6%2F9zGVQQJvB%2FqLKB%2FFj5GNVgPsTjKCq1gPLryuYKrX44A5LLuKL7dAI%2FAfM%2BRXrVqesBpo7QEHvTOMQkn0fdiqk4H9iLvlGIXOt%2B1smnf%2Fz64ypMZgnAkCLxj2ov1biHqXgHybY193nZoqCppO%2FgfPQPgeEeZU2%2Fq3iDy%2Fry1AvR%2BdYOh5gA8o%2FlZPOp0ZrAHx06OjPpUxV0CBCdcX%2FVYH%2Fe3aFijRiBEqCYPa8L2B%2F5rF7bGzRnCHJRR%2Bg2oPar6A%2FJf%2Bg3XGN%2F0bvmFB3gOwFA4zjn5b0xpayo4w8%2BJ%2FlM79dvyVccwP6f%2Ft4fZXSRH2wr23P6kJHfEGwv7wFknAC%2Flt4rct1jsklt8R%2BP3ZKdpDA3zTK95xZS%2Ba0%2Fnx2%2F5FTJ2eROqj1JxSUZhbXrV%2BJ5CLuOUMjAH8J0whpepqkPhT8bhT8bwj3qntC%2Bf50SGl9qEzKGFARACrri89faLUvixI5q%2FlNqw1FX3ufiTCwQuZfQ2csE%2BHsBTz2ZJ7lafw%2F83epDEJzJKFzdF0YJAy606KYZEj6RQyNZQnkB9YA%2B%2BX2ArHsn2pXH2RPsi%2FpXkr%2BcYR%2FXD7fPp30c9aa5Yszvft2zg18fNVsAwJ%2FRiPsYFOO9MMM2kg%2FnGItruaSq3dL%2BXbyDYkWPOO1a6%2BICWcl9rZhUjVOW5shUaMMnAw1%2Fv9Cg8%2BBf1ftcz2hD0unmSeRBuSiVN2t3pVz91QHQ9t%2Bk%2FStjMfDRXi0xqkwHHk%2BrEgC4v%2FjahcoOAPSk3kkGIUoW3%2F5tYECesFZxPpi5Y%2BRTxrtlUT93nTtby03NoJzH%2BewZCO%2BPPiXl2jY%2BU%2F9KbmfAAXBfOtcQi0Iie%2FDToUU%2FP8JAV0g78LcnWqil2QrAf8RdC%2BtX9nA%2FvUYq2qR0GXo2R2S9AQGP9bKhQf0mxqaztPMU2fjxYgipPg1wJ4Q0ObNOsvkjDkCV7%2FOp6Zixs9606GjPxeCmvGEJ8VyReH%2Fg7v3PLpTMYJe5iNuOXwiCrzeDleWGdMrNO0V6AK9guorJf%2FwV0IFEoVEslLqDpuPyt7%2BzXl%2BcMvmelLsGI78snznv8S0lFuZRCq9dHD2pJNqcVVpc8SXJ9hf14I%2FyGngv4VXui7MMS8pOkZ13xsxC5G%2B0MxEG6J8F7v15y7ta546Juwftf78OjvpLGz3PhNlxdxz1EIX4P%2Fy%2Fhf2PipJ6sHSAfAfptRK3Hv%2Bh88%2FVZJjVrUAwF%2F1CtShC6z2tRJ5Ts1vFjzpqCFCmdUWTe7m%2BUmZQev%2FmfyzUhr%2FkcIOqFFLmJvB37qC%2FRxcSBiUxqY2UsJm3sjQmMUgOaB%2BYH%2Fv8igoufrzMlG3UC9J9u2SPUC6lyf8dzuXz5ZJPwyBMui9vbwfSCLm7p3gybw7qCeD5kk%2FKKZbm5o01iL%2F5XON175Xj4gvxhshD%2FpMFnFxbxyXL%2F3Vfen%2F%2B8s0UX%2BGVi%2FAUYwrBwZHvcVkatWPiAh9KdjQGXEg1%2BT4%2By%2FLznwBuXeLYY70rXp7BUGJM8qQOv6o06eeCutULsmK8l8KhOq45r3c3hNw%2BaAwBr4r%2FEyJIQ7Ef9B%2FE9jfrPwx8hkuTQCI9vJVQMi4%2BkydJW3i1rIMOhvxxXZojLXGLVnpKIcSVkP5fmJQ0CCgS6gFIfF9JBUEW%2FJPZ0yybDWAS7iKzaCX3tRfxuTfvxxmmuEKZV2Jogldc1uEhzRf1%2Bp1F%2BPU5YIo5MGbp2KTr9pnNyF0URPNgX%2BfM2ZShd8PdP2p6Srpnr0rMJySxe4MGhVzCBmfqgr8H9uy%2FdHH%2F6NihLCERCCMhVMR%2Bx%2FZr1eWO5tu%2FPtqrwH5h79qqAB3ggaNf7cTb3Fjp6QaLSf4c%2Fi43hazItg5y%2FKc%2F8JjQXRWch5LjST41s14u9sf8eUJ9r2rWlgO%2FLfyQr3Lr5X7tjFfnxS%2Bz0k7MGNDbYjyXcTWnyTukqx94qhYf37XdlLT095w3eJVBfgrFTsC%2F8A3%2B8kLEjoh492V6xT8y7Zbi2T%2FtQMlI8atWgCo05LAf249C6v2pURONL%2FY9jb2F0Fk8Kw6l4TfgBY%2BminHIU1b%2F89ln5XS%2BA87O6AcneNnrmA%2FVxc0NrVsWy5oh6Exi0FyQP3A%2FhDeL1ZSvxa7ahbqNVIW%2B0L%2BKRH%2BzeVzgUg%2FyD8yvJ028n6AqnB9ZXkQlM8FSxWXedKPnGA%2FaW1qkjEieuNQw%2FXWsdiwmz186IzX4dlY8h17K%2Flfb5R53ozoZuTLUMIP4RGh1y58FlXXcSdPrPqxD6u3Y2GFVBsYgtMjtAu0sbPHRtU2s089lQH043RS4LupWtLfD6EGiQlcsAUNaF2a%2F8oX%2Fo%2B7tm%2BRFwywHJZWM9jfW%2FlTBcRZANFeVAH8W7AW%2BjU5il7cCsTNRHylkCtlWVA%2F0E6Vbs%2BJBDVxP3GNf2FBVKH7uIRaEJI7eRz4T7KU%2BpzL%2FeqVoEku%2F3Lb0bb%2FNcuoiOhKUIFMOWN8HjgkXoFjFb4pDID75hSaUv5PJBcTJoQF%2BL%2BlOfDvc8Z4EAAsWV1oC3sQpJRk6ANaokpR0KNNxCGB%2F0N3B2PnrQ%2FueVYwgkq79gWtIg3tE4f3B0aBXlmadV%2F21V5D8k8PtVo96PHppPGfB%2F9Uoyn4906fHLdi%2B%2FTFEcI%2Fzbv92EkoDmt6HofebqiTDrypXngnaAs69UlRZLcj4guC%2FYZWVgn8t%2FQ6YY4J05Kbxo8Px9sCx39w4znW9s9bf46U%2BL8nA%2Fx3O6nZjk9FhRQ11WCqCYsA%2FxC6euxgwP4zepn%2FHcWosc9gZr0HZy2CaY%2BYU4nwAsM5Gk8LpPbNa34bgROa%2BEQDyzVnNPhjCDfYOlK%2BH5q2%2Fp%2FNPiul8R8sLg1ZOsfe%2FUfOab2vp7GJZZvaSt1w8y233FJxZX74B0H9wH4J77%2F00k8oCcVCvTTZtxD7Qv7pKkf8Fi6fJw62Cl%2B5FoI%2Bks59%2B3k%2FQFVr%2BclyzcuckZSuNJI6T%2Fp59jU%2FNWk%2F%2BM%2Bj%2BHy9wJMagn%2F7EIIGVoIgupTJPl4jSWJea3hpCgAoFW1yR7YWMzlTdqd3PcLyjqo9sPU%2BQduq2o0Uf7j8OH2uSApkSuR%2B%2BX%2FRBG5yLMh8xX9f0f9f7BaHRQHmTp%2BdE%2BOD%2FZ2VP1VATasAF%2B01rPMBrc%2F%2FCUwVXBFLEDcX8ZVCrhUueAHmkDGphqN9l6Gm%2F3ppabvKuU%2FjH8I3ENDrADB4Syk37Ibv0GL1aVY8W%2FdIf7S%2F%2FXEY%2FJITG9v%2BfVREenyMiCIKcqYQ7A07JBSTdHu83hdkt8p5%2FqeU%2F9nkYkT90AL4dzljk6hZRmWX6Z29p8cEKWhPtFZlSiXUtfATqxVOhEDfu4cFJ4RQl6hdfesY0P%2FUsYP7ngx31BG9sjRx63c38zFv5l9LLP%2F7C54u6mi5E1jjPw%2F%2B02rUFbQl5YcdN8sHi1XwLbxgzuff%2Bu03he0jumjRtIoXniSoxbagl2C4cdJCR3zx24y0skYFoc7ivNDCipjIztB%2Fp3aXx04CwrYL4f2cJPyn3B9z%2Find1pX5%2F%2FjZgX86PgNRSaDAX%2BzXD8%2Bq0ESxv17ml%2F22jlziFTPKwrDsOhlDWF9%2BXgoA0pXlCaD%2FBVH75jW%2F2te9%2BIyigX%2Fw9K7tkpwBLQT%2BjtE3bfnojRdyz0pp%2FAcyWRtcrCkVDp3jel%2Bv2Iq%2BssFY9qqrQqaELYH8YQnqV9gfpP4X%2FQPZojB6YqiXanud2Jf%2Fw2hA9CACE%2BIVf9%2Be1uAr0Bup3%2BupM3X7eT%2BARe46OQZ%2FmjYXVxpJnSf97PdTk%2FbTfvL8nTxTiCc1pP3Y0G1bOCRACOW3D4YlYyQf8uXBPz0BLyylD8cD%2F6h3et8jdLXZ9pm4dxUtTQVGdV33qyyKhBrHGkJhFXHWsPrvGPp%2FUh0W1ZnVPH%2FyNrxgf2J9kyqgx0d7URncseaO3mUlpkoVnJSL%2BEq3AzDXKD68VM3UA331bs8xUBOz4mK7RmsXc3pRe5ykd8%2F54yg37nTZUbIpLUdrGcxciQfWPrntaNcqtv3XUxExmoxElCkrPYotwiFJox%2FYkV%2BHcsY7F57%2FKeX%2FsGskwBxqFvwzAPGatUmX1KBWVEMK%2Ffvr5ODapvHympoaZ%2FNGCbraskjzf2xGGMpvHbM4F%2BUqvxqUmg8I9u%2BVK0t2l6Z35bkDvbrTxr%2FydBkBqzp6rWv85zn%2FPJxu93rIXRGY7ZaPW6wgbwb8%2B4Tf%2BVibl8QTMfR2A7NbGrE6Mdn7mN4xTgv2deOkBY744kDcP5NZWbuGE%2Bq80Mq631upFnaXJ3WUsysQ3s9Rq59U9Wue%2FzNER57A82db8%2BAfmpl2ctRDSHOXCF417C%2BX%2BWX%2FJFrY0GsUEgbon%2Frj%2BGwwp5LP8Ug0nFvL2Ll1tW9e88spjXtXPhr4%2FxMt4O6nMB2Yl7%2Fjozee%2BmHmWSmNf39GXulLhZ%2Bc83rfNFEuRMpddpmLMRPIf5mgfoH9Fy4xHVRi9JOIfaUIQGynJjUHT8AsDe6uLcFXWD%2BQbvDV9qyd9vN%2BoIlY59Iblsz7hoDPuI6eGeX%2FghLp58CzjOaZmrRf8JtX7uY1wjypseDXhm4zdcawqlv7lXbWW5Hako4ix7y41X8I8OGFpUZ2Met%2F58BhPULnC%2FDtcTbzaEz13Yh%2FP8SKQhQ%2Fde%2B9U8Cse6cjLwirH4EKBVQXYqPiKqFSRqVcHvtrAB8xXsT6uiogjfbi7UKZVFluTJWp2K6HL5%2BP%2BEoNFgu3UPASJjmjRHaLZ%2BMxGZGiEjOOGoTvtdb4l2%2FFRJ%2BO9XMscUQpD8r0ku0Uun29vBo4k%2FSLl%2BS2Iwf5c7HtTxxaJWJ%2FRkf0puHvUy3SuHfWzonlac2Cylw9lQ5TuJS0AP75UrzelwokquH%2FcMuYKkt6%2BiVuFEEKPp%2Fe7LM2qhJ0hf%2FKErtbhOiqT7QgR3Up2U2FGmBCk1cWuynzTdP4N8v%2FgAXma%2Fy7NmHO7cePonzeWwr%2B6e4UEo9K3L03OBfbvsbgnxFcgHjC7FYKdlhBMLHNatE04ouHTMRXG67QLV2K88tfsTlDy3aXbx37T0f2P%2FvE7nPS5D%2F1%2B3Rpv9LbVL0vbv9fax78G7AK1Dwtpwz4O%2By%2F%2FPNXYl7PvvrvE%2FSvBUA4q%2Fc9E8THIhJg7Ny62jev%2BWWYZ7kd2Wjg%2FfukQ6imAzglzwuJLi5mDJlnpTT%2Bv8rofT1Ge83djt4la8mFF17oYswE8oe1pIRMcEAzRo%2F5%2BjixL7P2usM%2FEi%2FtDTwgAAv42gLrR5HcQdheOFO3n%2FfjNwpGs7Lc0Dnr9InVRYbyT5VspJ8DMpgbSacm7bf6xLNzFs%2FOlttNqdWnDd0UELDD1vWrgUlP5HCA3MqkdX36Rz9j4EPwIT8GUcTpAJwDB2%2FtHIGnR5AaTEowvWopK97pc9qMPocNZsm%2Fm9XPSgHmNeC4djeef5I9L0q5M8P%2BQjUmxotYX1cFJNFelBq1cDeA44TdkffWzEd8sR2QVPqcsMLFUM9s0ppEHGUdI%2BOoYdKKy77BdAKzPOvHO6J4iYyi6TLNH9RvQHPtSjJEBErKQb7uJm37SxwaR8XlD65khMRQwsYPyEDsOuDzfU3v6%2BopoGcyTOG3aB78e6To9b5UIGE7TIiGXDeaeI1PycbTlDkWZp9MBGRGoA5Ucg7JQREBqwiwYOO9eSD2KqWecASBphv%2FWu0lql%2BmRNQASeO%2FAUHY7UQ3igK5Jwm%2FBfg%2Fj%2Bt70YzntLje59dlwD8SzJt6BeZh%2BDUxPT5xn3vdtkZ85WezrQ9h8yud1eoZWra7fCaAsV%2FMHnzlxTnifQP5%2F1wQTvqkL8S%2BgX4iPehjOH0ScnBn08gRa1mVl78AkSrB%2FnIP%2BSSxtfWJ0mdK6B9WAfzcID5WeyACQVtX%2B%2BY1v8h4LLE7Gw38wutwg%2B2SAH%2Bn0Yxhz76%2FyT7L0%2Fj37UkEmQ3YGX9duh11lkMm2tgzjW%2Fd16dWdvrvIpe1u%2B7wf6Rw%2BaQLyuZokfVjbK%2BL25AQnK8ezO%2FHU0ka8cmgCTGsorxsSKlbZqSfJxVm9WamJu0J%2BRoT2KjoZLR1omka8mXl0Z%2FI3BCyhhhuKpRRDkcBOOkWcycKM8RSmBO4cko9HcO%2FAoedx33S5cXY5Q8DqIzENUnnCuZWEfgDo0jzMqPPdXWYpZVBHWcpJSeWwl10pX%2Bo0647LZohj%2F0F3RPjRawvVYAQitJoL6YC98BGoN%2Fp3cdzEV8p5FKcO%2BlijGpq3OILscNwRRU2XwLpR6eAaTuY2K9xB7u9I4o3x9L62Gj%2Bxh7iy9bx48qYHv78U3GkeGtAJEqJD0ePWQnV5CQAdNLbEDF%2BKGQgFzm1WOHkYjZK1FMuYzjBeXnwn%2Fr8%2B%2BlhqvcdGVhdT3bQEdOw2ksNDoggBZ9PM%2FuMOxcJujyhQhl5txwt6RKeOCxA8KnHpVc5LvUE2P%2BsG%2F92cD35R%2FQhOrKZs%2FEPTMiDf0ZRHLAS7gZpl8G%2FIKkyycyC2T4vX2kW%2FHvzxSuuFoKHHs2whoYH6e7rQxLxNZ6J%2BGqDKqtF%2BVV%2BpSotBBGF3WXgqEvOVwi7LTBwtJu5%2BYZA%2Fv%2FVDxE29Y5ev3Txh37148b3Kf3eh98m48tCDoJuvgk84UPlXnoDXMs6Ucb%2B%2F7AuHqzDjf%2FG0L9yq1mIj18ScewImL5ltW9e8%2FtTMfAaoaTPP8UM4P0lwfdP%2FYwBBemR3LM87HomCWFqpMv8q%2BJ21Fm2lhKdUysAmv1Be6aIffkR5%2FCPlbRgOylEYUC0zvpJ2V7t5%2F3gV6UfgqEG6MFd5pMSlFkwP54dWnCWrDXSzwM6mGt%2BNJ8vZNZuaLzu0rukoLQm3CLuwmO3wZPWgpWKb2S76g4j7QUyw7B68OiAyeJBrVt8hY4ux7ywVK1GCgEADzhwpF1ehJmbBWRJ91IMe7or%2FSXgrywgOqwYffYAswRnrTOcNYAdJ7F3KkfdJ9duC2XOY39F90msrwV6pdFeOhW4Z6tnI9S8%2B3g%2B4ssTjGG4FJ33VYBuef8SBesY9w0pn%2F%2FzX5HeAJxA7fuqJ4BBQTj3HnZzLqRkecGKOwqgHYs5Y5D3louMcOd7LoqJNGFtUr%2BHbjkqsUpaTRFQf06fmUOBR6UacrU7uNsncwH3zT2%2BoPxj9OlxXgr%2BK6ZVtdeQh1TEPo%2Fel9yHPsQlOm1a048QnYVBm7oARYyCAxWjIzlaQSt3LMSx7pYgx4jT1js%2F2iYFfwWtJ1H9xsY%2Fc4C08Y8tag78Y%2FBD4cWxpwYwjk2R86zcMyf%2FiTOcW36LryML%2Fm2df%2FFHLhc3bA1cVVPfAc%2Bks0%2Fk8iAWLOLLg%2F9Dx896nTgFz%2BvsX8JtzyCIwO6SDjiO%2Fz%2BD%2FSIVZfSjwvfznU7%2B9xY%2Fw8XE49BPD%2FIbFyEH1zanmzdOywMSKVfq%2BqOTNOx%2F2X8lt0nBHXbN5I7hMTHw%2F%2B39gWoBm2dp62rfvOb3oIAUyHz5p9AYxvp8%2F5MNLwnMGOJBAnVlLiRGuHgqcxa6cfOefQU86Kwy%2F3x5HeELJsXTkyKgTv65rb%2F4ERz%2B%2BXbRqwKCFor1A378O%2BX9YC9pWBREOfeHgVNu0MtL1C%2FOSGPgNUD6kSL%2BIwtHRaOQWVZZ1XB9eUBvPaC0VWe2vhR7cg2fVFnGVcm%2BkYdV1tClLhuT6BdrUUJbF5m6bvF%2Fr6PLyYJj3pMKAHjgjpx2eanNJKCpblRTjPonkU5Kq187rCt6FfGDsqKnOjhrUg1mVP7OCSDEnx%2B%2BoMCU6Wse%2B88X5kugl%2F8T%2F3f0nm2yn%2BA4EWbr3cfzEV9pMlWtag908vW3U3IVG%2FpomBhTPut2rZN%2BwiPigE0jrh1MPQLsTkJaXDK7FvfQ%2FMveMeLhafQi7XuZ%2F7NgYp3ArJZWd71KGmd0RGEC%2BYeEYKohx9or%2FGJIiiUrgWNCP94qel7B3WFS8J%2B4VMpXNh%2F4T%2FW%2Bd1nug%2By18RHFVpJEhxCdZSH%2FZvUjoyxEI9VBPVov%2Fc2%2BPQ9tkyBHGBok0Z1l24%2FvhVEM3zSOvWwXyMUnmQG7xn8G%2FPdZ0WRktnKBW4tXYSNe%2FqMr4J6ZOVQlznBu%2FCeY%2F%2BfAv4%2FCv1RA33Xqhbe893eZ%2FJj62%2B0G9vbCRXx58P%2Bjs18HlCJ94vCBFl7DtqcKIhIsTNbvz6LuFbsZrD%2Ff4eT%2F8xNz%2Fxm0Dj%2BN7Hr4PhZygLtDc8lF1QTAo5M07P%2FeOmXhuf17YSx8RO4ZYOK5n1wFlrSs9s1rfn8a3i%2Bn%2BeUpABs%2B86ljr1M3zH9JuJDekjTUXp89BSMqvZCkNP6%2FyJyFzHqRUzxTwIPOMgJk5J%2FT1QTgYPRD3JfgNvMCArbi8H%2F8dfSq0B8WkPUDfvy79vsxFkrOvYdhBdCLZPvc0ALSD9wRI%2F0AIBdocRm48trGAZEg5zq16fozWb%2FD9Lvhk669kjFG8Y08uhUbG1UzRjVtHbpEe8lyt%2Fi39CICpcOFOcE2gPXDloHzYl1eJwyyKCU1qRJWxaRoJtH9CsYn0guuDwF4mqW%2BIlr9ELtFYVxB1vRj6G5u%2BprF%2FpUE%2B1vIV%2Fp%2Ft2x%2FaAY9LnxozM2dMUk%2B4ssOxgRdbjhEEHb0ndfBIoqg9eQbP6hnW7Fdyz32ijn%2FOPIPgpmjqV2DT2Z%2FBAE4XVxHLYf4I9heTxH1f1ZPS5IWQkxEUSXxgzoTKhUkW4Qy4quh1PSoKmQOm6mUgsp8mlNyHUnAv9Ovwl2%2FbT7wn%2Bp95dDi9TQushQ1%2FJGACYToLAv5D0hEycnQxJA%2F361HKxBbZ8ZHA48NbeY1AVk0e1WGvcvXMh%2F5xwZFW8zxWQpG69flwL8WSOgtrHZyu1OuwkdP1i80v3F1oOkrE9WSJvqg%2FMvXIS90Wx78ezfsX71cvfCu%2Bi10IDT5gfue%2Bd%2BAYNgi%2BN%2FbwgrE9OBpFcY9rbxIaXumLJjxzVt3PqrWnz8%2FKgx4tZvB%2BhPy%2FzvU%2BpPf9HrHc1JZbjDW4RetjpjHqdCcljaB%2FTnRcU9O4Ls078H%2Bv1w0LYtew38BFxsknYwNEqCRqH2FOuPVvm3U%2FPIUoTTwmQ%2F%2FIniUvvqCNDcbXhKUVYp9ZIgmP%2Fa3x4%2B%2Brn01njU%2Fjf%2BxzFnoO05PFfCgs8o%2BtEbvT41%2BTOzr7sliMkCzx%2BlV28n6aT%2FvB8U6rf%2Bcb38xrDhckvtSkGfaangZvmakn%2FzUpPlUcTye5l6fZhr28tG6b93nPpVfV9UrhoZP%2BqSFj9s3gjO%2BKBojwh4Q5e1KIS1oKXnCTU6uE7BscNOHOVUj4xjWD9TgpMvrUAZRSpJfUdOygwzVrq7Kqn6ilARqAbZqAT0pzpLLfld0mYEJxzkQ2S0I3b2nedpiBPv7CF8f67uRPxXRXpXI%2BPz3Wnrixi%2BIsemIL09RkyMEb7ovxib06BnOIbWU39m6v72Iz4j3KvXYQYaO%2FONsm1xIS8K%2F%2FPNtGP0YvCy0vhB%2FCluBPX%2B69d5xxcTS9h8U3XX56PXQuDDikJ2%2FaTVE%2BUF3l2axKTxNB5FJc0rAv3Ou5N%2F090zBf6r3nR4dq5nXk8pSesXwR5PopqfCbmWp4f%2Bk7t4BtfoJx4KQONC%2FkNGeF1i6UVIqpFcppuyXcF1p9ipIiFpj8s9p18pMGKjbBDWPtaFAaWkrA7%2F4yqEH%2BzfxG7gtZNVEwXxRNiIXuVYOJ%2FSrLPj3jd%2F3qBfex9Xhme6%2BU8XMHfE1uzCO4YD%2FHa0ssaT5TwEKPtTSq7A959S%2Fhn1o1p9C%2FteGONafQv7H%2BvMdB%2F%2BN79OrZ5vn%2B4i%2FEY76lm7WrMAZ3im5iQn2h7Yv2P%2BCAraUWIa4sMyJ%2Fk%2FQIfVQ1qt9ade73lSbNb%2FnqZgRN%2BwX9%2F9o%2F76nw32%2F8fOwRFLa%2F87wrFd%2B8srLz8Kodc9KafyP5M5CLvmYav2ZWbd0VuFD6%2Bn98LARY0L%2BqZS9gE4j%2FDu9attYP%2B3n%2FdDzstZ%2FLrGXPUjn2SfbL21M%2BoE2fuCFgvSz8FvyfO%2Fx5NeHLJ%2FsqLmRfOj9mfXBy%2BsVw9sNn%2FS%2BpeefrqF%2B9DHxHVRoo9waTdBSXH2PuRRat3hZxP5swE0gO2OIaysc1g%2FqbN%2BOc%2BDfcIUil7Fhte%2FXDFUF%2FgP1KKVNNFlZYrUY729iNIMOxhrfSkr4G%2BY2ztQ8Ka4v%2F1zE%2FjVw%2FrDFVPFvMeSLfzMj%2BwFVe%2B3Z4dkIZxnxZQKImSJYy1j2WOWEV%2FpaQW2WYgq%2FBZ3CoPRXfF4xZJiSfyhEXEhLwr%2F8D1KYnx4WVfgJUPfRQwr7ZnQITEy3e7XVS4wmXUHC6euZR77pbt3dLjxm3DAlk%2BaUgP9E6evSFxLBL0eBlOpvbZmKl16gfF8lGv4IMY0Mal3Up1UZmunh6O5fx17Chu1u6Sc8oa2YL%2FYuv1F6lWcXx8pFcNI1%2Fuey%2FK%2FYsabxbxTjPAnXMhZKeW%2BQ2qQq05cWNPa8CvXuFBm%2B%2BO3avIl9LDsM8A%2F9KgP%2BUy88qGBJxBdnXRrxdXhhHMOZQrWyJsSM%2FudizTXR0uuwPVPnywD%2FB5z151Gxm8H6U8n%2FWH9%2B%2BD3vqIZqme%2FDL%2Bj5Pogb4Pvw%2B50VGtEG29zYn5yYgrBwsOQvYDahKfpPAy1Tte9hiPpO7dtOzS%2Fghs%2F8wEOSn7H7Yc3CZ2LQAIQqsTTE7oUv4ftP7Hl0pzCi%2FIUkvYIEY8E8j8dm3uGnFbB09L6u6DKNr5l8licBtcgIhhzAeEYI%2F%2Bxi5XOgV20366f9vB%2Ff%2Bm%2Fg6saP2i0%2BTbbPk35epXJqgfTTygEHn8wmsoa8ch69L0%2FKa6iFDSLO%2BAHFScd9hYpqZdg6HJgtXNoKc98ebXtjN2vBQlPm54I3jGP98EWlXd57PaNAYpSE6qO%2BKQr8q%2FT6cflkqTJgk4YpiqMiuLT%2BcSAloKhyrf90sBbzGuvBvaVubS39tyL0V3Nbo59Bt3GQm4%2F48oi19kfWMS1Y9n3xlcL19GsKYRU68WWInFJJgWUxLoMA67WnUNCzflL%2BpfxaIEqv9eWqwwxA7yJbxwTrErZgPHehyBS%2BBK4gsbN31rPwOArxYAIUOYow%2F5H9ZtKcAP%2BQzJ3SF%2FDvvCqTrwWwiXX8v7mHS6%2BWNSpqiIY%2Fw3WOvyyYabJjsfpZ19%2BtFWIpgEUuKt%2BDhHndP5ZeJcjgbBr%2FZuzqpzOu2ksb%2F1mKsXk%2BTaC2Zj%2Bir41J4OS9VQMP4%2BFde%2FYIOVotAvQQQRCjESDfjb5eQb%2FqawL8c51Iir%2BC%2Bd89d8RX63pfTPVbWrF7o22P1l6IpkmSeZU0xoX9U1h%2FEjhxU6YzvgijfI3vY6MNz%2FepYWsE36f5yQawE7JYItjdVlj1l1qWbx0vXTZpzCboH3Gc29mJ2tfgulP7tl3ze4E1k7dIfsa2mXtGBcXP39zkc2OGJ7vs4Z2ysxq4aHMFUWfuPI%2BHozsiC8DSWc7g35t8nj4J6L%2Btnuxbqad7Ha%2FDXe416FXbyPppP%2B%2FHt%2F4hsnI22gQq%2BUlu8WmyfZ708yqV0wKRfpqlI8Led4ZG2aNLueOelDUN1OvRU0%2Fu2r5lfCRAGqw%2B5Z4i4Sdc2ApzX%2FF11KZ4xeAmj9JqNvdPx%2FoxW5arfJfXwP%2FgV0UfGB56e7Tjv5E%2BKjQgXD5tYam4SWSmVg33d%2Fse909ff7ZRuce1EJ8gH9zLn9J%2FsySxraHGjq4izp%2Bn6Ygvb5GgWcv4JwG2%2B9ZBmhDw%2FwWgU6F1%2F2fwcPq7If3cRtVArx0w5qGgD2nxu07YmjunfVvZtfyZAYDs7xu5a93vVnDCKTvcDNcrp%2Fr8AvIP%2BnG2BJ%2FBbhvww5OyENSPAKBBmhPgH5K5A%2F8NLGfsU1jeGpXbdOnSu17ZPypuFmIaihRW7wqdVWH1MzIY9k6FCzT1khJ%2FnrRrygeahf7%2BwlZzpDv7pqn2qAHSxn%2BWYszh20ynXfajOWtOQkfTqIc7VYG5dceO7%2Byksa0no2473l2%2F3U9dXYB%2FsHsz4J9N6U21KLIJopgr4qtVvS%2Bm%2BmtaWWtVV3JUf8u1Lb1SvzVNEojcwPozg5EX40rLGhM1eL5P61UNJzp3KFvH38Cqk5DeMmg55oaVFyTovyH492rflKizIJpfbnVZ9D8EgVbO2OVZl6RLiMGRXTYzLZe%2FqIa4ZP4zdn30FewVoJhtP%2FLT6yMpo7MKg39un1YEuEmAoANL9u2ydC%2BsalXyKDuCb7fNrJ%2F2836s9f8AkmbOxlR7okQ9eA5MQbKnBxMuI%2F1osZDWxe1foCD0vgl9MBuV%2FWbmSV6CxCTyB0%2FvfuiBaXHZIUgrDFu3S%2FjJkVMaSnpY6L0BignrgUa5keyxHKEBaegV1k9qy1J0ee%2F3EC8QCNbRP4VBDQ0oeBR9oavbVheWiuLCDw9OYY9ntx8pAM%2FFDa6EkOk8uifgN%2F1Tl8XCvKIyBmMjJO7j2Yiv1CKhLrWlSV4LI4cNcpDl5Ye%2FXqI3GMap2JcA6QdE2FumhTsoyNdhIS3pgG%2BP3Ji8kwyXl8nT%2FYbjzETtbcqGP35WIrCUD2kCO7YELLzU6RORbmr2Y3T9uc2%2BYFAxLPHgvzYf%2BOdrsW%2FCOs332aUXFbNON5RPIYEUUiSzQsksQzOsfjZVh%2Bqq8MLx6G75AvY6lm0LjX9CuYfnImhRA6SNfwrhPPinquWA14vb8KYrSW5bIdhMBnMhhVf8i2QWopUfp6I0AvTU%2B9S13muVHr0H%2F1lmdmGq5Yts9DaG4vymyK5Mv%2FPGW1pYt64pgf81t7byUjdalzUhxzSw%2FkzYMYvf%2BjMlNGFndMjxfVrmM3le8FGX7UVIFwkc0BVQSzmRkUf%2Fh09kaD9O7ZtIdBdE85uv7el3ra9bZ6ztU03zeWcSgK%2B7LObq97tnJS5K1y7vxVdQfr9sCcNP9y5X%2FUNnlWxIavXbJ1le5fxM4QUUyb5m4ormHLNDIfzzPbWX9dN%2B3g99L8xMOc3MdcrR634jvBNwhylIbjCGtgXSD%2FkILVROrVVbXu%2Bbq6B9qJl7Ur71D1nsxSd37dw2szm28aZnZNgaw080Rf35574fvvu7B%2BWSLMTuVREToelMwUfF0pgTWxYHMkpaQrGy0rKjtglGtRIrKl1dX6hg9MnqXwXO0iQy2o0k0Ya3oVPzcxCPC3ZIZ6C1uRG%2FD%2FhV%2B3qkn8TC8DsB95OIL%2FBqJuLLz6C%2FhXICBnf4aEHlPGkBCgadCsqL%2FubwaiD9YPXvyT%2FGt9E2MHJhNkhS5EvN5GSkDBZd%2FwFdrwyBorNlYfgzGSkydhzLHxKBnXwGtoRe8L3Tp8k4wYugTxcw5WI%2BEirviAUvQ12Hx5%2BznKGEDv%2FEtIJLL7%2BtTjcw%2FFFp%2FDCC36FBHZph9SNHxdC%2F%2BTCpSDbrr5HX%2BZWo%2FY6f5WvvtUnjv%2FHc0xXlm6uWiaApEY7woxau3eI3M4ASX315VfPt9N1y5unGnizAP4Mb3x%2FNMrOdqRay77kivvymaGGpqf6vX3X26zdvceD%2Flt9s4bWCi%2BUleRt8b%2F3pdLGL3vqTYUYqZdZq5rAzMtrglMwttzQflT4idP9ZcbLZWsb%2BZdaPv4959P%2FkvtePnqxXEF7wm6p9M%2BacLWh%2BM6w%2BmK7LzTS7suwaUHwGi16hz1oXffYqNznsn7oKXXMdvoLOYzLz09eFj9Jp%2FJfCvbzJJ1le8ock7qvLi32xqhW4C%2BG%2F%2Fayf9vN%2BjDfHL%2BoT65Mfq9XhznGmIPxcw7hvSD%2FkI7RUObXalEDvm1fC%2BFCz%2FJN8P4IIv7%2FeH24Xj%2BBMEei8Mmw9clKgv4yRdz3y8M5vjonJydaJIcE54n9SIoOfDj66zFwGmkkSKeUkrtpTHJGQAdVMwqhWYgUd1rKr%2BgA4S2jVEaCRRIujPVdrII%2FbZQn2p5%2BfIn4f8Gv29YOx0%2FM2KGMF1jAu4gubROtSZ93H%2BfK2b0Hryyk%2BVI2BC%2F2ymZ3HPS41XwkXCII%2F6AA49a%2BRf4xvU2oDrwGBpif6X1jrf5LXMEV1vd8wUkpEG42ZVmb4U4Miw3G0bjDnlnba%2BAxsCc%2B4IVYWp09kFCTOGl0%2FCfh2ZRTSUsjqgE60GA3AP0M3%2FSoZfNilFxWzTDcw%2FJHZ%2BdS9uqZVmTJkVj84UBG9SMrxoKDxnLN2vtvnPH1ka7jGfzeDozjPo9o7kTDgcozDUqKyEX4Q9kCJ6xMzLjx41ZdXDoscIhsGaq1h7q2Af0xWfX80Q86wJr%2BrteeP%2BGrdNFBN9T%2F00cvOen3sKgP%2FbLCPnf2LfXQuF8vG1p%2BHjh5xjpiL3frT%2BD7pb3L49AgD94u0CGuGNXv7mGafHDu8X51shgvs71g%2FyQRb7yEoaPcEPfLREzIlPxbSgT1MStW%2BaSeydc1vPjIMjws5yrfIuvmGAM9xHMucCx%2FRZ1WknX%2BLlJENKobzLvmVy0u%2BgqzMT8u6XD5KZxHuZdg%2F%2BcNKvf0yCfBiX9K9zKr2GtnFi4L10zrvh3PIRhwkTRtItw0OvU5PWcX%2BTEHmu%2BdSmyvNypF%2BKBYWud7XC5iOJk%2FKZZoRV%2FKTV%2FY9hyf1E888HxpIoe1%2F8sirUUAW9Pg6EZiZuW9cyUEjU%2BBuJCi%2B8W%2BkK6OZwJV04L%2BekDse0VWg%2B4xKxz96%2FPfEIF86rCVX9SpW6UqrrpUrDjru0J%2F%2B1qHcBtjfIVVhsMQ%2FAfZ8yFd1WrD%2FW8eAngL3vRuKNZ1N7%2BsjvhqNbbbVYpe%2BRqtZh7PrsVVabx73Bv4t39vkwV79y997nKF1UhMlIz5a%2FxB%2B5HEyVhQwDT36v2%2FzmMTVVnqgxA9BkSlhf1UlcG7JFSr5DOxg%2BD6i%2FzA1J1ie%2F4XkGZyXDrioIObn%2B8DoScG%2FN%2FtZHY4g3klccXF9CtMNDH9w%2BjSvz0msfkT2UL4826GUM%2BL5TKZmnudL438e8g98mx6UhceYAnvte957T4PePOGHIp%2BTRn7P3q7uFYzsK73afdbKz%2FTdleuu%2BuyvycvRnXfg39VuGSGTZ9LVSqZac0Z8LZBp4PkXXHi26x9cloD%2Fy%2F7BWb%2FaBec3jMKap19%2BBOtPsrAWtfUnfB83w4Dvk4YXX9vqCMOHfAXQ9MrBt2aDnFhm3zPKWAT7e9aPjxT3CtqZnY%2FKx33zrdlDrwawYSFfjdW%2BBi5a1%2Fzi5Ju3D1oi%2B%2BXKq2Rd%2BdkAz%2B045p911bXSzr9aCGSuGk0nUomvYOandb2n4%2FHvw728wb%2BbBESjn3CtB%2Fsj9rV0L6xqmQO1ifXTOu8nT%2FPyCN3l1GnrH3qOFaNLxNLK0i3B%2FjP1nONGpB%2FiviH9JPkIi13vi9t19klphB%2FExUM%2FfZM0yuCtMHviVBRAReu4oN6H5iCEfKkDNo%2F8wfo1q2GCx2ChtQbDyxzz2ZRmAvj%2FluwBeooBUgacvzHmd60QMKG4f1jer7ZJW6usmEM2BLiCI0O%2FM4I7ULfjtzTA%2FuplMFog%2FkH%2BlMb6qt%2Fx039l2Zu%2F%2B0WF%2B78rpCXnSknQgWMjUOw2EGz88bTy84GO3f1xOLtSaxwFUNiZA%2F4HzIHHDQBQ%2F8LXpztshtYnEzZUMgl%2FKvwAugEe3YUI9G%2Fl0NTo4J1f7lHDH8SuUGTcNctS4pPP4HCnAL0SYCc9zQSjNHkN5zHg8uDft5otCdZUBPOrTo16tCaWWxplTS8bJYMZ%2FuD0idenKlUm1fgUw6MRL8Goxdb%2Fi5mc3axE505v5p86%2F1DtibLwyCm0%2Bt71Nt9D0LoWwg%2Fv1I%2B5nJpdKf9ChQ5qdoQEXys%2FKKnhw9x88803XA34p0nvwX%2BWnHiRnhc%2B4suKbMqTFiK%2B2gdmHfhng%2F3dMuWx%2FgQ6L1brT1%2B%2FePUCfJ%2FHKV8c36flyo6TSfNadj%2FxzL6Xn3%2FmCVG9Sd%2BnYtjfsX68bYPXjVWndVDx3D6ZUgjYuBM1U3vUvqnm9zAZfgQHZPYLI6VLHTzP77JPajv%2Fox%2B6uEPNb3e4F1N2FL1Ie4nN9EY%2FCoKc2Jd0r7DBoAsuAtZPyvvJuO5nc%2BpmT9VdfG4vJCgXfvhyCbPAFMiwP1OQJQ1JP8R9G%2BkH%2Fczfm973zbPQ%2Bx7KPymN8IO4ePAXJ47HdbIQQG2PoTFCxAl4HEQe%2BD%2FfGBN%2BDr1nEIJr%2FMM6oF9CA97dHbeHPXA7PcXVfSv77oge%2F%2BFRwYTCfG2wDqk%2BiSVeQNXJkrk%2FmVToBwq%2BjRs5NMD%2BglTLPf51%2FQ7x86fbYrTXdx8vsjfv2rDhroA071r%2FVak6pBQyYxLHRnCW9A1OjD%2FWcTBnfuDRdIclqNqY1O4FR%2B42xh8DAG%2F5X0p%2BHdFw3wz%2F2ybhT2hrygg%2FUnyYp0BBkyqIUDIqWYPhT%2FjYgn3LU5NaXZVNlL4L3bjY17wG2MmY9XFOFnPmcV5SA9NqLioIxgdZ1akNDkINyxHA3aaI%2Bg3VjvhimdMn8HddhL81og5i%2BdVlaQsy3pIWyl89lWn95825ammgV8WRf2j8a%2BsD1p3Lu8uzB7dK8QrhR85l3mqqHnYnTC8VOlD6RBYUlZ9VPnfc0bvstznm1qRPs5VzU%2BdawaRb5YtsHjIRX%2Bcg%2BM975GD9eURIM4vY%2BtMzl5xv0WH76EzUFpK4hNZUk9q3hTfcs%2BthkROPiJPN568E%2B9OQgPWTeklxJ9F%2BgI5cwutIqaVgAxTeHrVvqvl944VMZLDPz9C1pLldtvR92s4Pg6jOai%2F29yafch%2FRP9i92Bv9QNwwsW%2BcPGFVu0hYPynvJ%2FNiuZy6Z4MVzTEF6kRxv%2F89%2F%2Fl73v8rQdKC62kAn6eOKfbnJ%2FKkH2FHvOZJP39%2Fet8jDLGb0%2FumT8qnSUBcfOHVQPVx5gcigIpx8auwNlQuzoApc8fGhzasli0pGKfL7D6duUwq8MDZfttWQe6CC5U5EugDAH8o1Qh%2FhVRMlzF%2BAOlwWYQsoKIeLVRS2nqxQRqeB%2FZPe%2Fw9%2FIkwX6WB3tgr2ohtO4oVNBBhjU0LDBoamxAsFLgid%2F%2FemrV8GICqt6RvqNgIwBAN9eRIaNVF29XQaaX7jIYa96Axso0h%2FN92uuV%2F%2FdGmYBnjFybhYRN9X0mpvu%2BN6LcQSTAsgTKF4Y%2FkfQnrpVazI6odjKjUgXmUhm6wJRxB37w6nc0%2F4BHc7r5bJ9jtjiYxXjHQ51SnHvx7sx8scyir5BGTG%2FnVYiIGTp9YfUo6hSCv6lT0wkIvjAg9Uub%2FlSByWv9shaZ7lbg3efJPV9r4p9qj8e%2BbgvnryLeU9wPqXxMJP3IQODuUYEIEB6Qn9QCk8jNPivDfm128GkgqC%2F69Bhwm3TwRXysyEV%2FnIPjPu%2BMDoV85eOToocVk%2FZnXLBPla3yfCSTLxvdZYFmlOlhuC7xWPT7qZANX3TqflJZJioRlxUQm4MTm8DoypQCOLF1AtW9e8yvjPTS%2FHf7MO3SRxJZ4e1acyadVA8AX66qZ2Jd0L1rdi4H143k%2FLuOn%2BaMjMH23OGyFJmId23%2FuU5dfdvmnPndNKMXrrqenjrwK9seaNk%2F6efYAPknZ06j9et%2B0uZnX%2Bx5xT2omR3rmQe24zErbnwGSCqCU36tBRlICiNOOxe%2BGC%2BeE8EkNdhpTOjGXwSPBDyp2bh5hkiWa0Q3rv2rAX4kVCH%2FlPctIqyIdLuCY0gFQAAIRrefu7BmScgfsn%2FT4ifCt2Z8iDVROAwE8fk3fe%2F9m0XuO33effOTR6TFhRwleWf27AJ1MxJcLm39Yq06UBySbDY%2BqbT5mOWD42TDm3XrfqMl%2BwNfOWdPIP0zBGjX%2BQZdXYZIlNyje0l6yCEFOrVFrY2b4o8nQUg1gB2SW%2F6qtOyG30NCl8qEbPpu3x%2Bx6vEekB%2F80ecF5vqisupa%2F85OtJRUE2MzVDoVlziRHcDKS2VXJQBa2DMJY6%2BXUEBOgqHjmKs0MjEowkNVlQ7xkPqsXn03jHxqRb%2Fxz3jVo%2FGfpwP7ExHXWEX76irmYEkyGBPU7Gc66O2LlV1dIj4zo%2FKbqItdAUgn4z0Z81ZqL%2BDq3wX8%2BF3d6hlzcRWv9eX7qVmpRviW%2BD58Yvs%2BCGyrKO4%2FW1Fhazmt1sjnf9eEYt6aOzZYSf1PFPAB0SgERoW1q31TzS6glmt%2BOcPYduuht0z4xgz37Fx%2F3VY%2BQ1K4a2B%2BxL%2Blei4T143k%2Fe7OlRJ4TtWW7OGwdeaOO7m%2B94bprrrrmutBFWLsRSXAQ8D8dKXicjg3JL5B%2B8EnKkn7ar%2Fc9kg6x83rftzNPamB4vyVyLV85eOjwbKD%2B6ABJkG%2BfEPAHos8OQKc3VAMwHSRql5gthKlF4z81dvEShe9sBYALXhQAYR3%2FISVWEKVknurmLcL4CzMSawmiDkQW6uwZXHheQ%2BwPwrU%2FRRqoCKPTFM8Rt%2BSzf%2F1rtfGJ%2B0bDnQSgk4n48glbj3JAlEQT16SmZzmzHIZ7sktN9mOW%2F5B1eoz8w20n7%2Fi%2BxOIxnlV0Toq4zxkZmCsYIch%2BJ9TwpyKffGyyzn2hcoqjOtI5Tkm9noZu4NBfBPwm3H3qAnA792FglX8ReCLW8lfDT6cTLbICPPjH7AcJCaSfUsSB%2BD8JQ61%2FXaS%2FsYbk1BCeVnS8UcZQMQQzDo2iVBLWkDs03fjH08erflEoUAPM2fh3oCCbFSgAxV6e8tIUMav7QvktRj8D3oBLfZDqFlnCRKXScl%2BHnJjgdMB%2FCxFf45mIr3cR%2BLc2Ouwf2uiL1PoTvk%2BaU2ZRvsb3WcOsAr7PQqN%2FjYzRHayaiKtxsrE%2BnAXVp6R%2FtLCXXXFlECzg%2FqtHF7DRTrVvqvl93TS%2FHcvMd95iR8Jqx9sTnz37l3QkEFEBXTWSfRH7sgsWC%2BuHBnVrL2dq6FF12Np%2F6HXQf2hPL79lea90EUbGxQz0reBUI8m1OeyP7BXSz4FnKZ04Pf8e9b5uiH2met%2FMkxpF3UaXhT1PPPPc8y8HSevLUgWJ00lANErzH69GoIPX5gplOqjObxRwAPmn7Co%2FWzJ2SQMWoziqK4LdaYG6WH2qe2C3d%2FwxpEWW6GQRrWttYikFrMHoo4XBhxqel2D%2Fiv1pjoDf5aGsvPo6Ij991LBbGykIRoUQNTQIGyET8WUDNoHdfx5LVemfa0NqnFaSnOWY5dhwzxlpdhVu%2Bgn5x4xfPNu%2BQYT2U%2BRbd5fdxOrHCfRPZYS%2Bd0z54AL%2BdFCB2WctxiObSIcLlElqLvaXhgjqAOzeJoa6wNNGqOsa2PxTQXjDTyQhqd8ktcPo3WaZoxgY8o8JHYpvh0UWNXanyKORvyCBVw6N7ogfPeHOh6Yb%2F3j6zE3%2B2cQ37hr%2FzUiMwTviOuvsRGumjqkqAbtHjH76y9EblYg5C7HH%2BBaUG%2B7r4JzIDsPyEV88ZCK%2B3jXg3wNqCPQ5688M%2Bb%2BtMoWiUBkyvo9F%2BZb4PjeiUmgL1hK1Qd8duoNVTnz5R3CysT6c7a60usQIM%2FwqMr%2Fo1dfRKQVgox1q37zmtxOW9Q5dzKIQ1pmPh0nt%2BpzJZ2r0g6c9Yl924CJh%2FRDn3OogAR9Uhfg7dz354quvRfQvgFFtJ2JZ8MLrB1%2BS2Np7RrPYH8NLSD%2BilcYnqXlTuCULrfcF3%2BSe5PS%2BTU6%2BIS6GI6pasWDy%2F8iuPeL3GaugmGw6aUSX%2BpBf8H93JdIdpyYCXfJ2YGel7CoP%2FqbTmXCbvivilN%2FrVzilbfS61SfkInP8iTajM%2BSJSkmiQGhNxQJgXQ0ARnQCQGeiW%2BP8Spk%2Bqfl%2FN1Gbt3WXVtcXbrmFcEIWQWTrkSRvGp%2FeLmyEXMSXFdkajfBYLGR7e2JvmVaSMqmR9NtwD9mP0%2F6jAPDkH4xfErb9PAGyaklJFq2FCcL4ZkKiH5EpQGlqsu5OAX%2BjMixaiRKY44g9F6SfRFJDOehb%2Ft4mhrogoY1wG0594XFcouU%2FXt8kDi16v0mrHf5Xnou1PcoHrrh9zGVUkGIDoOD9KWClFO3l%2FWcVSA%2FKG%2F%2FITcKaa%2FJB62lA%2FvH6bt%2F4P9Nuj7rO1lv%2FFjdtl4LIHRe8b6nbK2QQqGwTEX4g9pgRmcsXOOb2dZjPkuH0FiK%2BeMhEfL1rwL9Racw6J2P9Cfn%2F78XaE74PBkXG97Eo3yFjKLXDnwiXeXWwVN%2F7G6%2B%2FVouhJWkfjt01L6%2Fsl2Ilcx2vEw4qlvVtU%2FvmNb%2Bd9U5bYH%2Fv7cls35LiMfnEDdwZ%2FcitFU97xL6Lh%2FVDpdp6MYFUp08dth54KEwK%2F1rQv7rPq%2B3EuBKCXnn5WXWqGUkoeOl9lagrSD%2BCes7YJ%2Bn84FNbioO5FDn8wul9wTf5Jzm9bzOTb4iLy3GKFpS9VZO%2BtAqi3ScH1%2Fra9OcFluqoH4%2FHgEHwhMFVHvCBr9PFc02UpNQaVLBLGz2gClMVgPunZ4KSSmoSXQ%2Ft2LZFTgp8PaH5O3hXgR3iLGGo8zDR9difLnaC%2FYN6c8M%2FX5Mu0x%2Bnq%2B9LJkmekXnc8WzEF7AbQlwsZCVGliBGKbGk1AU%2FK%2FZnuEe%2BtxUB1qo3n5oehCzWBnZs%2B%2Flb%2F0%2F%2BIPqFVUo%2Bnx79o4smzDY6Jg3KTpG2%2F8pQzOk%2FyBDDYf9Tb8%2Fto8ss6N605Q%2FFw9NGUs546gtP6UBQGKWhDwrzfpNWgKAVpvGPm6Z5Xa5GkaGCFAZAUrrq706jBkzu%2FWcnh5Wg4jQwzdF7vafP2pT84%2FTdlFrNNP6tjfAntP6tgrREjCEzOl3PqeCOgBVAUxP3xVOxZt%2BpiXEA%2F%2BD0dkR8vTvBP%2BwfM83PWX9moHV7o3wRJ1OfwPexKF%2F4Pm0tT3CwVN%2F7X%2F%2F0J6FBJX04KP%2BJotyPXC7%2FFK%2FDlCJV%2B%2F5QhukZtW8Lmt8fvdTR%2FL6T1yUJ9k%2F%2BUMPfx8oCM%2Frh1oqnPWLfRcD6WeAXZFynDlsj47Fn8IM9gc%2B4eSI0pic2i2ro6f%2FveREMqVPNWih4je%2Bryp2C9CPVM6VTFvnLSf9pCYInN0ONcLmYtlnvmz6peb2vERfDEcUpenAYId%2F0HwrWqVvPyJ2evjZWP9URdY%2FQaE%2BNxgqwkywoXOWNdWCJDmmc7K5t01V1T6nENnrgExjwryruF9i%2FW4LHntP11N7dgh7vUNs%2F2oA%2ByXUVd97jDnZbG8ZYDA2ZPuoYtWV0cO6Fy2G6FBDe8cVVQoAB%2FbsSJEeIe%2FRJKWRHtOu1Qpuqmp80NAp%2BNmKfy%2FfuNV8eegJGVUHIMkv2Hzcf3%2Fj3NQjgUZJCzFfY8s8M%2FddwRLV%2Fk5NxXNwepe2vzP%2BxYfkRV7do4eJ9dNN4LnC7U4ryZQP%2BAXqA%2F0SuWnPPdkFheMXMXUHwGe4fG92EQY%2Frq5ueWn57xU6renzfGwZZAco3nRaWpcl3P06FKPnFTd55%2BqTOP3xep%2B9%2B0Br%2FTcmytGQw7pidIHLVDXwSxn8sZh8C%2FaWjHKlPI1ppAdtXpU6thorbEvH17gT%2FQFGLy81Yf2ZINW2O8uWzwUwyvs%2BM%2F2jtJCbhYHlpzFF%2B39Il8%2FThoPx7L9m0Ccjr2N3fq33%2FfG9YGbVvK5pfsaD%2Brml%2B%2F7POeictuOfLnTX2GH9wBv%2F8ITX64daaSfZtJ%2Bun%2FaMExnXRYWsjbME9TzyxO7SEwxKz3e99%2F4k9u%2FQCp96Dy6DgNST9qCryhdeM9HMGpbki%2F0%2BHcd%2F1N97CuvmGEIEntX9GnJRX3Hm9bxtEwukAVJyiFXgj5BudEq4ypvMGReten0QdQXQWsDc%2BJbAzmjomrAM%2BT0Jy3y2xiuKbLlwfAoMM%2BG9V3C%2Bwf9%2F%2BEDx2SNabB%2FY%2Fr8N9msFEv7o%2B8W2Af0e4MTfLtU6%2FODfTZ%2FkN4dPVNm%2BeGp9n4XLoF7wlvXWt1FNTQ7cLV8r3Zghxsgmf3SNhM8OUW%2BQnjW3ZrvjZEfv4TfgDIl%2Fo6RQDCFlQ%2B2atJmj9qzOPXEn8tcaCa1F%2Bun8LJ%2BPoNyZkZiFtfykGRerbLeWBYX8Kl4T0w4ZICPpguwS3%2B4yvxOwHqnmhCfWyX5p5ierUlDNbN8PT8arXQk8dRzOK%2BVn9fV%2BKYlecfmp4ZFpYlkLW8SFh5v0kowBpUJWR19yI%2FKO0LafvHqPx35wd83fktO1G88wpIr926NdikDI9bgutjkL%2Frr4o9L6bgsulLswttc5HfHEIW434OvfBv%2B%2BuZ6w%2FM3LaNkf5MpUgyrfg%2B%2FydDyWWkKM8fx8uUqr9Fsu%2FDtcUVft%2Bc4eu7Quo9vWa3wfq%2FtN1H%2BHOeqcs2BcBhjprbEUkEX9xa2fIX5QFGP3Q2ePWiqd9e1g%2Fi6GcuFAdtnpX4xOgIPGx78p6bK8EduzYunlCR9Ai4P%2BEUPCypB9RRZZIP0vz1mqC%2FK%2B%2FcTkYAC5IRVh%2FakuWOb8zaV1O79sGkXD6%2Bwj8D3VMJQr51pLvCbjr4XfEf6d%2FTezbTNHsE7ynUa%2B3Ax3faMA6oKsCweQZAbuij91YDwwy4L9rj%2BL%2BAPvf%2BkU9eOzUiZ9F3EBP2HFFYP8YyPCeMGxoCyWeE%2FuPV1UjIp9ueCRdTEXSNXVvXKFc0LsqhXkQnh85FhEAMpIGes5o6PP8k7tUl2dEK9nhD%2B427A%2BxD35J%2BQ820%2BBbW4mQhSnMkYzVBCCTacGe4CXq0X%2BfC%2FYdr9q%2FSXHYtWp9xL592vavSW0Qe8DULU6RxGg62cIQ9F3Lfxyat8Pt7i7s5vSQxG1gAOqnqijaz1516oOWUegK%2FJVJQkF%2F15IuFMWRp0aVjFfIl8IvPjpJL55SBaI7ZJUI%2Fv8m4%2F3UgI81eVrjHzsh3%2FjHaYvGf7O9wKX4vX5H%2BcPqdspJQn5zX0UNUiAAksKHVkeg%2F%2Br1UegtRXmZ70OzPpVan3HEF6jfNCGZiK%2BMSgukdi6Cf8PZGevPjJFm2yoSr0cgytf4PhsWTo4AIF9ytkN4r%2Ff1PYdm7uf%2Fx9fHWV9zat8F1PxaV%2Br%2FVN5bh%2FfzTlq4rjhI8rVyln4vRUDB9CU6x4x%2Bjr8eZvXcWmGst4H1swheEoetq2%2FAIRh6CEsCO6wPtSwI%2BD98YWZuBup66bUzJv0sASov7y1jAHzpe2MgyQczJ2AurSuVibYuEs6XM1dfe71MMko06Sj8HCh%2Bw6jHlZ4S8F84%2B3WBJ3DzeCPWgSeY7AtgN9BQ6aVXA3OrDvyff1lxP7C%2F6L40BP8lO3jwADdfMJRAQJrjc2B%2FQh7%2Fh%2F8h2IFumGtxHJJVqhRkJAJq1pJS%2BVs5A6mLixr0h3Jr3qosNohsYWr%2FQoi0s%2FAFEwK5PxQzDejpCFmggBw7E6uJIvAivMsolmNzB%2Fv6g2ZTgH8Z2%2F4W9TtD3eIKF0f6STK%2BmN7w9YKcE9pIAvS4uID6p%2BCEgfqpKpxdqFedWvSc%2FBv5tio1BVOXk64qvapQpxLEJfz2L4X%2Fq9MCkqaxuLH65d4J0YD%2FtElDSs4WtAeu8Y%2BbEAXH2JyN%2FyZZwPi9TuzQNogrkUPZU9VmsepRlABI5YNWp6tHdUNq9vkVr73wPkteat18xBfDhOYjvmBooNIKHI33vwdWyTkF%2FmHYZKw%2FMxFa7eMieScionwLvs%2BCGBGRSXtpXYm35CzBf1nvC9uwefA%2FWKw7ndp3wTS%2Fg8XqgP932gL7GyQxF3%2Fv7emYvhadY0Y%2FQlrh1gp4bUObfnEME85b%2BpHLP0c2IMLQ%2BqpaH%2BqmENVtAv4s6efAC470k31vRf5lDEAiLSnqn8gwKTNpXbOer966SDi%2F5K74sU%2BKhqGutFMIpNrC4WrxG25Uq88Kd%2FqpiPSIejW42Yh14AkmeiPasW1GlmiNH6oD%2F8MWOHaW4N9Ti83IHhoHZ1MhZqSJ3R2GN9f%2F9o2VVenC3jBZGkPAkpEIZl1Y7IcvZcbMLTMbUTgyL4suT1hsENmkY%2FfGsVNm8O8a8rcV%2BmV8gS2bCyELSBCbHW4%2Buajr%2Fye8C9EiDYJ9kUmUpwCD0vaXerBbqwFpTrxaYH9TJFEGpRlf3SbabpDxxRcL0EvhIkQfC4UaL2S%2FxhNJVKcXgdkEQZb665tcX90uzxrpudXaDVrv6QjGkqYrsW9d1NET23YGa4afNxlFxclCh38O1S8gfVPkeaWNf%2Fw%2FmngvDZzTe8lKI8ep0FmsfpSVEZw9o7sV0X86D4ywbpNqvhPlRuqzBD3%2FrCO%2BqhbxlTfV8tpMVFpBnfmpy%2Bkvn3PgP2%2F9aWb6HnG3WYXsCxGL8jW%2Bz8LUIWh5gwgXJR4v2Dz4p7RkHWoK%2FEP70fOE1b88QReta36dC%2FUdvR3azztsgf1TF3%2FuwMn%2F8tE59AS1W8OttU2sn0VSUNB911YClpC2BrQPJYKhXP%2F9vDLpR8TSRvrJTx3IuSwwgOBXnTno5HIZll9NLJfW5fS%2BCyYSzs7DQ7fkQ%2F8wKu3Q0RJ3NMaYfzJUAFh9rozwX%2BkAEOYnJsp5cy851kFKMGFy9eNwI9q7%2BxFZ4jL6VAr8Wwf%2FF5USXIktLcjM2BjKefUvgDPzLdU%2BpKunXB7ElFPQdzh7DhMarX6nmRGUnNLP7P9JaIbtZT313L5XDh49WUrvdoogp182e07o6WoCfMKmMBmrCQKfb%2FzSvxwc3xxe3CUMJtFeZYOkmv3fifEp5YZ3B7CI6e7BYw77myKpIfindz93xpcf6fiTB7ioD7FmWOFlv%2FBE0hehht4uclwlDGHUSXS01QBcegNpIXriKtFQLai%2BFA49MFXeHsY6brRanj8bhiCuQ91c43%2B1Vnhzk3%2FCX8nWziS65a%2F6GhP2aKH4nsTiVE52NTqKUX%2BcDrdJmawqfdECRM23HLhaotywPmoKovIRX90NI74yplqs82M3HJVWKPKvi1m355974D9v%2FWkxugnXps0fAgoSfJ%2FkM7TKQAIciIvn9TfcrEo8bDz%2FjsE%2Fo1T5DLZuJH5pYZWi7GeEh1df3hH8ZtYixv6Vkp0%2F4V6Jwb%2BLzrGeoJJWWhX7%2Bh6Qp%2BgsEioRxb2SCIWn3ueqa2Xec1nPuYYa6UfDhxzpJ6c3UORfYICAX1VtMD6K2iAojZu54Pi0rqPt1fvmdQeOQ18NUa1SYOFpDq0K%2BD82VRi6%2F5s%2FLefNedZBSjBBFPv6oQP79z0nS%2FLFDhw6DfifPH78F28dstUY%2FDthoWeHwKmqaVNWbUw4v0L%2FPMCm6vTEkBEZkmX5wuny5UJPV59AZLCYQJNZpbrnkp3q0d7T%2Fzac1G%2B%2BeeBHrANvvnUsHg4M%2Fk0IxGTQXJbM7dPUv8R7CTTSBMic1cR54VtZZv39lBpVKf7kohFKhcjMhMwDYtatmu4ymDTsjyIpC%2F5TLQdlcRrw63vFgHUj%2BsAVZxpgouHkRaihvyXVMzKB3mjWTyu%2FFx%2BfWKOFHqrs1rBefv6ZJ6IFVZ8OzPr6cKLynCUd6B09dcbcdB8TZNT%2BsYT8Y1FiVJsNEt1yC1G8Gk8Vim%2BSuxj1TUr1z0mynrEX9lza%2BpDOh3yZCK%2BdcqNBwG8u4gvUb8ZPacRXtvFx4QfJY%2Bq3bDJrEZ1z4D9v%2FXmYrnuqsm3v%2BAHxMXyfZPrQuvaY0fzNggtEp0aAF7Co7eDfd1Mul%2BmDrV8nQnhBPSKvYJKF5eDlH%2B40%2Fhf%2FSrG%2FKfjw1SBeZaX9L%2Fi8WgRgo%2BF7gjJWahn7GxBNmvSLaZyArEl46r66Vs%2Bd3EAXkoORfggfcmO5jNOQIP9djz%2F5F7Std%2F%2FHJ8VnSNmLGzXmmwvOWeh9D7VL75tfcJ8d%2Fzo83N53B47e0uAL%2BH8Y%2BB86vEVfmF6z8Uwc6yA99qD%2Fgz%2Bro%2FvQ8T9xqoT7BfYffOVHsTZgKXZaMRdIBHI48A8gME6VOYZgjaknjRz1b3x7ZgLe2PyL8sAtXy4E7ANpr78LUgJl0Jr5hZdkEIgP6demtwlk%2Ftmx47rscHiDfyaD%2FKEk9uUCge2SxnvRGxAkiPCgEYGUyxCS5funRoru%2FoBFIgy4UOTVZWMyKU6iD6%2FS%2FQ%2BfSLE%2FiqQUL9XmA%2F9pxpenePhecbe1%2FC0y2CjjJhpOXgSB37cpDqsQywVbb1CoLQ%2BiqYCd9dKBN8NuDWs2OJQ%2Fr52MvnUOpzq1MnuhaVca5CA%2B0Csl%2F%2Bhf4ZllEt2yb3eTtv53x2ZSRP%2BjkqG%2BwrJA6ifJkAleqhJrrQzy3ps%2B%2F08K4XXNKTfSgN8mIr6oqJjtzBnx5Wuq9NIt%2FWcla3LWQg7FE%2BLcAv95689ZrD%2Fn8NdcsNIjFR7oe8P3WWjdAfP8OJq%2FQxkBqlO7Q50%2FiO9tO%2BffzyAuJQQImUn6GVouddCwsC59bwf7v3MW931tqqHg%2BxrYv6Dz8r%2Fo75UM%2Fn1PcHmLY6XU98HD9EUkJEDWpDx1X11%2FWtz281Ku8%2Bg%2BQ%2FqBFeGOXyZjYFfo%2Fj1thHW9rv1AfQvuUceXW29gCtM2vS9Pak3vm%2BnCEtN5uxB71d9QzD6GsfpZ26cRVKB%2FY5nLluSIGvhIpy6gf6WFu14%2Fxj6CqgLsf%2BYJmaoU62EB0p7d7YSFZvXp3RmKFFkSwmDHi8I37PThaiMbH9b0eLp8uaAxRxGcmRwxHAtJdkL80KADINtxcETJMq8eDmwZlsP%2BYHHmgDQF%2FACAiF9sl%2BgN5BJgyD%2B%2BlWHjFwF9hd6zNjZcD0PWP3UVjJDTcwnXxQQ%2Bo%2FufOuawP72vdM9RuaXgP834SgN%2B0b1jK8MWMTdYEwAgGuZObi9iN%2FsZikNYP%2BFv3QFyq%2FWVknp6oQnuf7uoUk%2F%2BHDQLQyW%2Bv%2FcpZS80aRmCEVQa6JWSf%2FSvzHoyiW7Z99NXekxokLEIrE6NyQWt0q1kR2RO05wOYRIYuYDC3Ojt%2FsKN1yK8Tmz%2BKX%2Bc1LqJiC8OI1SgcsSX0xBf1ODSHQHwSJWzFlsI3KDPPfCft%2F7EaacN1p%2FG90kth35qfJ%2BFdhzii46jedUCqk5NPb%2BvvoKuQ%2FvdfrzjEKttBlO4V7E60P%2Bds2Ceg%2F0L8q5h%2F7zBPyafKlZdsMsYjs%2BBQnrwRSPoLDoLIXjqp1XX5OzmhfLwziH9ED50XoNvyqcLP%2F%2FDF0KOMFY1OtHc9eQL%2B56RfxPihFxwQP9t0%2FvypJb1vqnzCmxp5u7S3F4XvT57pKcC%2F1faRX3SDVb0b%2F4yNB6NZ9Iwzlo6xC9Ba7d1cvbQAeFTRDIV5RWi4Jmkn%2BtCvsxVpNypcSmy8uOQiRWP%2FuMb8DNKV97w0y%2FNeUUo2gvRQW8alnfQEHsvV91xOCKiy5s1eJmEexVB3xj9FAMAI%2FwjCOK5D%2BSy3y3%2FuFame9S7%2B1%2FlT9bxL9D%2F%2Bn5%2FqRrdKG3%2FnTK%2FOEZv4tXG2J89R6VpRR3g31B0Q9oIVxaY4K7lj37FiYbTOzngX3KiNI9XNxIvh2S3RikgNMG3TzGbkvULPhBdfrcd%2BRjsBV90nHknftKZ%2Bc%2Fl%2FNOj%2FXpmPURsuNq72db%2FnjAsGq3rYUTrK9SQihmcDbl5mOgA7uhTI6D%2B5Tdg0JOkNcPPzwf85iO%2Bai7iiy1Bh6rBpVtAqJA1VadthtDsynMM%2FOetP5X9Yx77CwnEje%2BTVhyHndp4QQsOi0rV0XxNXABFiVcbFXXSTfANm8vbZMsS8vW4De06q7MWAvsL89xhf4vxNSmfYSv7GZSVzuRTxKoLcxHj6qskW0EutOgXi4y49eoaZxMcZyD9ZFgR4NX1GyO2efHV1wKm2XoPJvWiZdJ2549felp81EQOCfpvg94386QW%2Bgf%2FINInwNSxzTYibbJhvD71Hq%2BNFaEDxG4wGxNn%2BYMnZQqfOaIcTbWCF%2BuHN46XkL8SQh8PSkqVUftUrbH75%2Brn8pC4iswN%2FhlsSB%2F11n%2Bq5j79GRufjOEnS44JLPGSupSk49w3s1RaVkqh37JNdXkFseTQWxbuVRcq9PvJIGLfMuEfQRAMLO0NNECCln9cxv5rNcQXbg%2BY3zr%2BDAcoQwgfD4B0VM%2BDZ5Xyw8xidyPsD16yeGZQv%2FWMC61uA9oIN2swp2B3NjGc%2B9Tp050tpreZ4ClK98Fc0l7O3DTrI5XZwEnTFWdufOzTHS5d6eLoRmfciHeJY%2Bb8kzb%2B5dyzbO2m40R5R1JDn9i1fUvdCUua%2F5Ea0luJ0SbrnRImOAB1regVXnewM%2FydVRvgS5nnD4c%2Bm%2FHlI75qPuILRlUa8ZVnEi3l0h1Fr7v2iE77kXoUJPvy3AL%2FeetP2D9H38pYf7b0bp5rRJSvvdnCU42IStXRvOT%2FSPNo2xb1cWsu%2B5SgiSig5zr6g0CrhVrWWZ3V6gIDKbHHN%2FeJ%2B7J%2FsRR%2Fwr1QVjqTT8SqC8f6mXnkmddjuQtIXyS8n9YXpB8Fq69BUTFWRGO0OnqPYptDr2s%2FczjG06qgKnobviaj1AdDcq2h%2F7bpffNPyi%2FiyY05%2BDG9795r9Jg%2BdTac0gArnaEK%2Fq%2FI76tWP5Lqyh4lU1a6j4Jw7Ihmj6fcGcBTsqHfCD3%2FQAgVD0V5S6oO1l1k%2Brp%2BruN5wNTMdf4B%2Fw29fHqyhp9%2BhWMyZuaGBk60D7uZvmSGrLpMfXIglZmk9Ll9eOSDs9OBIGLfSctZtu70qbfZ3t7IKi2GyT8um7z03r5%2BcPweQ%2Fqa9hxDvkaQBYxCQGIaIa8wtVXa%2Fq%2FPnoqz8sP7nwZFgrHy4J%2Be8W0RPfKtAZ8T2og7D0q5Wsx3cIlJnD5BoJwtprcpntKl6JOe87pec%2F4pi2r3P%2FvEXl3%2FcZcno7ErISG5T5%2BqlfN9%2BKmk8b%2B6a67Gv8%2FWbj5OlLfkwvi9WLOtltIvZnoPqc9vIAB2d%2FW680YJgesFVX5tcM0X4vfWZfDdHfpsxhfIiya%2Fj%2FiCCpRGfDXMTkNixKXm8VBX60ml1JN7Rm1nnnvgP6%2B9zVp%2Ftj5nQGWsfJ9kzLCwImM8k%2B%2BMo3kJiRTa6O6HHrhnZNB5DOcW9acGUe5%2F%2B6RdRzePqHFDx0i%2FsxYK%2B7v7ONo57r5m6mcqPwv3msPkE6H3ArJ%2B9h3UexVqxfbzftq%2FPOlHaCpl0k%2F2m8LF5PUj8JhlbBzsxFRQtTFOZA4dDjwHueAY%2Bm9B79v6k%2FKyrGB%2BLf7%2BrN8U2s%2F9yn3G21Cm5dBdJkXXF7N%2BQiNNNulgKWmqt847FvCfAR8cUdpxD%2B59%2Bc23fnHilDaq94aev6Q0x1gB%2BEZxfclcSH0%2Ft%2Bi7ArOM2ZGCf0WH0H4GmvLysdXTPefqueOuEku9QrNTqpBcqhE2FSInD0cEObmZST6y28K93BWCXgAXD1hAvUb4hxTI9qY30CjgK1oNVFy408TmSZC%2BftuRB4Lhv8baOh1C3AFPvhza%2FtD9Q4zbtgRh5cE%2F6DEB%2FwltJOkVM7Dye8M7fToEelFJ5%2F6HxVMKmxlE4nhM0gxEhrFzh66dD3sZujFVUsVC6lOab8Nrgleq%2Bh2tU8zunKfx32ScKO9pI9FnddeF0k%2B58qEDMK4%2BvxvW%2BZOi7w4ZBCiZfmqLQ%2F0G392hz2Z8McYpNflhYlHX6UMa8cWWmL%2FTw5AxGIrJOO1Nzbp1dem5Bv7zrptYf85mrD9bURjgLwrfxwsMFthe1NISdTQvIZFiGPFiuAJNky54cRPcB4IohZR64tTJI1xHe5Ww11mdtZDYH2KPefkZizeJ%2ByLcqz0mnynrx8rdRRcfkF950s%2B%2B17KkH69QVReT4xa4FARjIUhELnehQYYW4xcKeQz9L2mX3jf%2FpPyR0Gjfa64T92vWcvmCaqJxBNr19K%2BD7jIkdv%2Ba9SMZrtqkrjtUSdPZHEcEWjWiHfDOn%2FjH10ci7tjWXaFNsz%2Fclk%2FOBkv60POvAjPEqk3dmnX9TvhoDZAdFGMggTE7HPhHQ4jgtzkvH5bUI3Ov3wPwefCf73WyLhAj2eW4qpRjpLYX4V7%2BClExnn8xfvEJIEIKZHsnGzFNXrCsgMLmZ0RDW%2BnzV%2BGBwFL8opUJpjnWHWBSY8rghFuRBf%2FMZhqAf45m2isuo%2FXCJWbK2U16BGofYaZ4Cugz%2Fq3PGD16UTxmUitEr9Mz33I0f8%2F%2ByXz6bON%2FXBO8EtXvJsg%2F4a%2FdaeOfbO2W%2BiI%2F2CMTTNFL9gT4j8%2FXyLA7KZTyiAq4OjoN6nccHchYHACf8ZWP%2BIK8Rc1fNSpQPuIrlXftjkgOS4GjB18qM9KWnnPgP5%2B3RVP%2BwOF5rD%2BbJP8vSbyFSBZ78xB8n9RaaIGQNIUr5t1CO4weySeP6ezxnhEUMM14neulVOvFNw%2B%2B%2FHS8jnZYP5210NgfYg9%2FSOO%2B0nCvjMnngrJ%2BKHfPDd6PJ%2F0cCCg%2BT%2Foxb0pCS2ftuAeruMsu%2FUAYdErTVl8ydL6F7AD6p%2BHaLr1v%2Fkl5T%2BTrg%2Fm1I7OEG7V4hAs8nhKqR08PdJf1om1QrW%2BIcdXkH7IpIIysJNnqZ40FhwBdQpo3DNw9OvNnwSx1rzSI3gxNvDGxzRGCQUVDWq6WnMawrlBjI4fsprznj7MA8T7%2FgH%2Fat%2BJhqvyV6Sa8fEqmPvOtkSmDPUb7gWNCYzJTigVTEouQQ1ksmKrA%2FrX0CmHd%2BuEBhBcuAURIgWzv3K1uk9KHfLzXgOmR1luwr9MoWZuiZsnCAYZC%2BYEAZ6rK5sD%2FeAb8u8uKosw%2BQDvMfw8ew8M8CNTAvz3FSwes6KS%2FLhpTlVqh9Rid5gO7hOFWwD9ULKj9ouPYNOLJP8R%2BbWIO0Hrjn2%2FjA3ZxfPp5Kd1Gh%2FQS0L%2BOk3%2FSnxSa%2F0f6R4np1Gee%2FJCxMjb%2FqX0x3X2EvjD%2FXWpyNuKLzVHIu7yx2EnTomPyfE6Df2%2F9CfvH4Pnc1p%2BQ%2F5vh%2B6SpAgcOwfdpa6gAxTLdB2iHhVMa3lc5rOHaIYq29Pg8Fz7%2Btnu4jnZYP521MNjf39Bdlz819fPhXqnJZ5tYPwCoc4b3c0mJ9CMoPk%2F6KVKpNLQ03PntuH%2FsgxctOW%2FJxQFF6y0mem1zwUGGfcki1fsSV2wWHrZGZ7aKvaHoNydH9Gq9Knp9YvUzHpK9NPnHtirkBLIhjmasBqG4LO%2FDkm1ys5il7tBbhbRk7%2F6Df%2FHlVcslskHj2YN98fvf%2F%2F4PxV1JZBP93AKf0RY0N0ef8Av4vx%2FitnS4A%2FofHGrGzMeMP6ca2P3IQYCaDNMhZ27o7cglufr0r2Ro3AmB0isE3XrEvjiBlV0%2Be9ne%2BRjZ7iT%2FWHj8mjfSF%2F9lI4b%2F9pnsjat4YUYcekLmX9uRvuOn2CbwD1wEZYLWgfvRub%2FmesUJAuUjYNjJBIlmM6ifqi5srqOEJktVtS4Kw11EmSUMtwL%2BoWJ5an9vmfxD7BdzgKLxL42Js278%2F9IvCzXkf%2BJKtk%2B%2FwfERJWiv1JO%2FKEqnOBcQA4Vy%2FV%2BYHtd58vuaPG%2Fzj31x1Q0RYP43G%2FHFtJlOz%2BveQddcaIl3PLfBvyfmwP6BmDOf9aclbzX1suQJp3yftsYJE1EH89T7JJN60QzWIPIw%2FiJBN7xV7%2BZ6He2szlog7O9v6JX0zm6mfmm4lzf5bDPr51zg%2FWAJYKSfA6B4SD%2BZagGxBXd%2Bjvv5AGn5GUvZdN8NvYLFpve9gLhiazPbmt6%2Bc1ob%2BZrgO6yCW%2BXg9K7o0VuGOChTseIwgx8hvdGfNw4ZQtwaX2lTlf7hhJpC%2FOXu7RqUIISqz%2F23Afa%2Fb6nYF2t3N3H9dtJOqNpwbRzMMi%2FHCSX8SBf1q71dgrAzZj4Z40%2Ff%2F9SJiI4%2FfLPT4518crUbxvzzDUNjm5wQiCQurhAJ5x4nMO%2FyKWK3XOMfMnk5%2Fxh8P3GfhXxpsK%2B3eGLkMEAKFgwUGTpI3xjTW5KUzgr8T%2Bfg88XARaP8V5w3JJMi6xUn3wh4c9ypyGFwuWY2sxxt%2FOsG7xWiXOX0fGL2Yyvgn95jGug1hwAgkpNp%2FNOYaLbxT03%2B4Y99RkShq%2F6X35cpyV8%2B94Ong15yGmsW9fK0onS4PgVDmdP%2FJev1c3bSu%2Fc1eb4SZpxJk7%2FliC%2F6TbgQn7aOm2aOw3WOg3%2FfojdJ7jzWnwLUsf78paYGCrVpBgqHDju%2BT8tq4nzgpTneshDrNo01lmj2Ku6wM%2FLxI4v3gx3Gf2ctIPY%2F%2FT7unPuc5b%2BFe8E6dSaf7Wb9nBu8HywBjPQDigeh56oFxf525%2Be423RA1EbjqghkKmN1RXv0vhdlnpTB%2FsQVS%2BzNZJ28%2FM1vbQ8Cxl0a798fZAxE%2ButdXs0%2BeisR%2Fk8WJlTAEkEcsKJ%2FcUQut0xaG9hajm5Scn9kDkc76F1%2FsUuDEgoHbt%2Fdda7fTgBQczb%2FXlppRu5SIAjBRbkMK3ozZj4540%2FPfB5ULYQIIAQw0uxM%2B8x5%2BF%2FIMLoTmn%2BvBQI6kx2uGWzSE7gBmMsnpMAGNaSLkCryj%2BtxXxbyheG%2FcykgbgAPylj%2FHQuNA6H8EHfH2dU8%2BA%2FfaAY%2B0%2FIz83fgPg9MipwLbIJAwZu8K2g1MZcs%2Bcsck%2BpB9vdvqkQ%2BBf%2FdLYN%2FqFhpoFcqAJCWA9CWxkTzjX9q8is%2FLwaNsp2ViycZ5rt2qg%2BM%2Bnxh9cnpgP4lKnN%2Bx4kdODu78eT3Tp9w4LIRXzwkEV%2B1fMRXesd5jJI4Rf92vM5x8J%2BS8zHjnMf6Uyk6WH86ik5eSrBTqfIa5ev4Pq37iOYDL%2BG%2F2dILcEni08T9kVw48hvx7%2Biszmof9jfnviTui5G%2BN%2FiHV95u1s%2B5wvv5ZSwB6qQfUPwljW7DVAuILezOz3G3VoH2T%2FECRI%2BB7LUZva9CReRr%2BYPZ3JP8tY244klR8dHNi22gp%2FZqO2yVEL1V5SusXgny1A7gSoH%2FIzVU6tA9Nqgj4cp18eNQH7lvNw20qo1B7lfPkBhAs%2B3RPRqU4B24OUDGvkiMWBgKGMDzpopGkPqmfCYlqAuXIfHy8b6feeNP73kSXq4CWjcG1Gzz2ZBmwHT1dU4R5K8Q4HPs9SdJ9kURZIT%2FnMsnjXOt9g1PoiFI474I%2BUoTyHkK6VMlHprS%2FT93ObfMJsG%2Fz2%2Bg0ZvAZ8aJJKsJXCSoSx6AozzwEhSGhkBtd7gJkvWc05xems062brsY%2Frp4aQvHPiHijVuoN9qgEra%2BKfjYCMJOtlnk44aQrsHNB11Srh4Yov%2FOD4ww4R56cnRVSk5X63orfyz37LSPLXmX9WM02cR8VWhye%2FGONgwZSK%2BfD%2BYWbO8vV%2FcRm1S8i4B%2F9B0LIZrPutPa9Y7cW7WRIg5wmGifB3fJ5Mg1jJugZjnFpuO870Z9C%2B%2FFvPh8PE72L%2Bz2oj93bC9RphPGu7lDf5xlGk36%2Bcc4P3QxscSwEg%2FoPjGt2Hia1HUcedHJOZv1%2FCKwV6J7PX8EEqcrg%2BadPdonZLw6f%2Fy%2FZn1IXIIz%2BxJgUBzvkt0FU5jEL1Kh2cD5GVpA2mImeytAL8F52tTewhii3QA1%2FYJ259tCd0joP6qAaTQHT36MpNWbqlpmKwaRgqZeEWPgogV2oUKCqsH9wSL8cKBe6krSUFkxYPT%2B3YZwPNxSnZn%2BPY0%2FpjBuSaxLcn7fmqTM1liSPSFLi0Q%2BjQOi%2B7sFuszN6PHIHrhg%2F%2BQKwR2X1B9uEIkTv98FV4RRPVJcyDjKGl40tr4vLY0%2FQvM79E%2FP6u%2FMW1q%2FDAPKfb5%2FT6h%2B7%2FXTpPm3X66fXhbCp%2BpgTHij5Sr4sFNiugVp277pPnXbNDAQ8l05jTNgI0t30%2B2sHHSYblTEGTAf5aKNZU0%2Fvu7k8Y%2FDQca%2F9aYOJt7UjgHwwTOcvWqE6oIfXyXEDe0%2Bt8YTw7OAyZl68NdiNJ8Tmv%2BvrzTZ2rbqqahScQXF4FcxJffXfrNH0oa%2F4lG4l0D%2Fm3EiCF%2FYv3pYLuz5czGBxDlK%2FphX0KYgKANywngfJVn46ZmG40XfDAGFuh8WCqgDvbvrPZhfyC%2Fs%2FxHEJyGe0FWpB5tO%2BvnnOD9QPqJlgCvGelHUHzuNrylXnidKFKPL05%2FEPAL68LLXrmifPJTc6xfM%2Blu%2FUL1a5%2FKrv%2FuekDR7Bk8KUhnP3hBef6hXo7aApfkHm1uaxsotN93fS9MlZR7U%2BnVpvZ6iDkBFkhPvqLGprSbFYoI6z%2Fc9Pu4%2FAKPVtvUKAmT%2FZpyQoKNyJp1kT6gliKBVS4mg%2BbADWGFktQo%2F%2B7B6X0BeJbxxeaF1b1ja6yoZXKRePnkfD%2BhNzew%2FpQboAlgaccmiVLNXyEqRvWZJ%2BULoK7JvsYKhHeGy2fWJGOTd5EZt4xBofsL8d%2Fivka5WCENDk8i5sElYdXHY1f%2Bo%2F%2FivDPBS%2BLA5Fjz%2BOUAJuFzOfjsLimQxGkL%2B4dx1ytOvSHxggo%2FRS3JA6i%2FiJI2zYA1LjCld%2FMB97Ez4D%2BjwXaN%2F8T5Z2zuxr9rTDS544LxroZ5IICBi%2FekSDa3zWyeqI3Gk2Oj08gMhT1a8fm7ZrfkfJY49LR88hFftaSOYMSXj%2Fjyu4tvPl3mjsRHepeAf0aMRPHOY%2F0JYYdALqw%2F0%2BenwcGR77ML8lB7%2BT4e%2FLMr3HL1YVNgQaKKhYEZlnz8D3awf2e1EfuPpYbeKghOw728wX%2FbWT%2FnBu%2FHSD9iCQDpJ8OKKBr6FF6zPvXY%2FyTg9xh6Syd7pfi48trr51r%2FM%2Fez%2Bojy%2BjNZN9Hqzj9Jr1%2BoD5h%2FKKKMRn6RtaKMfmEC3bNNqfcEGKvRD8Qc0QBoUaB7FBIC2EpanQax8Pq3yjENk1UsKXcN0Q4OK2G%2BW1jlomv5Kxy4kapaSVotxJzuoRKxFu%2Becm2sAfgnSmeSyYX6Fno3n4zvpxqbNLT%2BlNcMBw3lLe1Ylyh1tlcI3%2B5PAwHVpmeMZF%2FoDHnFuTHm8YuH%2FGNcLsg%2FFbUZq8d9rS%2BNKdH4qtq7i0xopl8%2FccSvPF6qnu6Xk7TQE%2FDvhom1EuuHoZD%2FG2Vp4g1ZToHok4cUyCt%2F3eoP10mMT53mOU6K4oqI5sD%2FeabBvtNAf%2Br8s4kRU9L4d%2F2G5nZcNeY8xc5%2BP1y8ME96MWSlPvLQjm0zoQLgPCjcsTb970bQ97JcCPrMTNLTsv0RX%2Bwuvrh0kYtAF%2BrdBf7p3M9r%2FVlIdQdK1p9L5pgcDJT5PofeLDLDvGyYp7YT%2FLMr%2FPrbn3zfVFdNHh9hYMqSj9%2FR%2BnbW3xX2z4d7WWu0%2Fayfc4P3Y6SfgJJec6SfbOPfbrCHk9TjtG56KxIvXkpuxUtD8aF02XRxPyMed9WZLVrdZ%2FSkyjLktzb%2FiL7t0cNblhDwJatY0D%2FcG0J2%2BwPTd0Uv%2FFApCoRqrmCkS%2BA3rjvhgQ%2Bkt9TNXoXgHQzhkIe7hsDuqRge0FvBLvUVKW7NpJJDa43AOZn%2FnlvsuTZG%2Ff1OpDN19Ypv4Rm6%2BVQb2H5668%2FapppURpyuTIpcwu%2FCYX%2F4QKYDpjtAsu8JWIF4zWZPSIXJdfIPqBM1N6Qji%2FtyBq%2B1IfyNpPVvPBTZyG844lceLyVO%2BQl5PgX%2FdoKuoXgxuo%2Fz%2B%2BRvdAWTveEi4NQ%2F1gN51L%2FGPCpziC%2BBoQ7etR9OpgFNgH%2BCqcpjmLnJP%2FJXGzGR6ebaDU3Me0s7To19ovSlAhcvoP%2BXX9n33FN7dz8SKoAdoQawtTX8zQj6RrXyMb%2FMTPyhz0Z8rWo94isP%2Fmn904V6d4F%2FOPvzWX8ewaRT9d5m%2FXl5GCPiSoxmgKelfJ%2BRxDC03eAfZdACdf5hYCpnVj5%2BZ3XWgmJ%2F8%2BzIYf803MuRotvN%2BjkHeD%2Be9HPgBUf6yTb%2BucGiL%2FM1kT92cv3hR%2F29GBC7dsPcK97PlKt%2B14YzXbHVfUZPWhtvb5QgpukkvXNcGf0CwIGumn4f5vxkesoMoGeF3iECCowmM6OgETw5sN3X3%2F%2FUobQhl4bJDojmoA6xq3jIa6H1%2BguleCp9FqwfxJy%2BySs4LyUDwLVx2%2B7RbWo%2F2dddYdqRdfMZaML2c2hQqEx2ugpQpNlJkdsy9q8hs4YP1KA7QPFEaZsbxdXsmyzI5GX34arGffnLkgwbUuvJ3r6Ikh3xq0nwDw7HdLMh%2BOcE3UTxAt2HEVF4sL9Rlfq9kYJ%2FlZquKgN51L%2BGLMrE9UsiQ90lUnmHIa8WyIN%2FZBjX3urM%2FNfORf7hr4yYyHRrvvFPiqHtuL5KoIEgfQn%2B%2Fv3rcJg%2B9OaB%2FfueCxXA3lAD2Nq1R65xRtAH7iPLjQR958GVsSSmSkfA41y9UGJnIr6aBv8YOHCCnnPgv3XrT9%2FDR0xyieYR9lqUL3yfnx4s832SqLB2g3%2Fq80ac%2F87qrMWC%2FZ2yt9YQ%2B6fhXtihLA7Wz%2BLn%2FZxXJv28tPfBDOmHj%2Bsb%2F3QR7GaTTk24%2FqRTeLtC%2Fet5rOKVMHRYM25zyz%2Fp%2BJk86V%2FHzgdfsuk0pfmOwq86DgCPiCJwb3TOPx3%2BWXCtsgGkQQQoBH8L2ZfAXX3g9%2FdUXH88LUx2eEwMfyLEjh7yFSqtQ0pbCR9QJix1FoTXdJbauoJeUzIA3qdu2z2qwVPS3SwcfW5Tt%2FZV86z%2BJmw%2FpUIytGTmi49bs7NV7G%2BhIKOp5X%2FaHYAVuOQMinFAbrXKMQXSF6bDg8R9GRkxagIS3xnDevsPJ8Sv5sE%2FPI%2ByU7wPb7PJnBUv1IUKENmXk8BF3Jfc3kjBv7y4gX80piXivveXuUS1JMwHLFSACYKpf%2Bl8e%2FCfk2H4Y2uW%2F8kcgBETBJaZs2r8k2LIjlMBaKxlB8q17PETv3grVAA%2F%2BlGoAWw9L9ib4Gwj6PPQyIPromzElzP3KpTYm%2FIRX%2Bnu4vD7lTpBXvSuA%2F9560%2FP3u%2FVEkntr61YQCpw8KeHXK3glAJtXvDFOMkbuf10VmctHuw%2F5u7sxUTf3dkz4V5tZ%2F2843k%2FzLaN9CN8fEVHOSuUiI1o%2FGf0ZVx%2FuNO41r9jF39jZs61XZJ6Zl%2Fe%2B%2BDWmdxq%2FknfgPNYiBMmtaEoNF8N8lKrn1qtJFd95UWZ8z%2B8c8eOrar1i7YNkfcBAMF8D7Z%2FtWBGuyLJY03oIThaidw4rHDXcT45r769X78h9eBbqk70tDrL3V2S%2F3sjQGhABmDbCVIKagLhNZujjzf89C4%2Bsm7rPnPbz2BdBE%2BC05U9QBHdOvZPjYFx3Jm7OwArMH86To9YFcehrdQp5%2FHdJMHgXw6Oz5RtCMrGM%2FXjX3wNP3XEr2ZpP56BY3Qy4LMdTlPGEq0gydSUAl4RbkU52J0PNjf4v80qDshkU4D%2FJLUNF6nCjWaVY6ibaMDZ3AMJc%2F5L1bKnDwVzIgCQepYRE9LVO5tu%2FNs4ju0l1L6pKbH3rY6kLLYTx4%2BHGqC%2B3gR7e8o%2FjJ2MB1cTEV99Bbeq1kzEF7vLqJjp8i%2Fx7gP%2FeetP59sDe1F6KeoD7aJ8HUvIeQS1fdHewdepgc9%2FZ3XWosT%2BeGd4hw%2Bwfybcq82sn3OA98NsG9JPdOJRdLSk0fGQHpyUKjT%2BG%2BjLuP64Ow2tfyoogxmSnzPH2i3o7eQbL%2Bzd9UhmNf%2BkP0PwZN332N6Nt3w1ZFCrHw%2FAD8mc%2F5kn9u7ZpVq%2F6VrM3i26kCM04S3T1JSZDmJ5rIkw1OSkXb1i9dljDvnYpb4dZjN48H1AdmWD7i4ziPnIAD78%2Fft7HhITC3P0cYafqYuPX5mCIVgXoZDkdPVboC3YH5NP3hKlOd0BWIH5W%2BY9RaYShxbUiZxXr1WDI9P%2FzwwfBkkw0LSYvJQGMAnxKwf%2BC5tINwAATQO9PWvcGv9sHCcKqUL3YWAEXPRlqQf%2FKdfIiYCNuO%2F1viYvLvxteAGriwH%2FzuY%2B5780ZY1%2FqwG608a%2F5imXlKvyrTfb%2BGccZ7uqJmQ%2Fjf2Y9Pr1eYFzV3EtqBaMHVr4Sd4dh769EV8%2BPRELtnT54cG7EPznrT%2BPmGP%2F1%2FmFaHMVAuE3D6X6YEsHaPfyXcUkyhntHV3GzuqsRYr9%2FURf%2F99qsH8m3KutrJ9zgfdzHrNtSD948As6yh0Payfk9GV4VIMRkravwQxJzp9j7XtVvuPjb7z8%2FHOZ1fST%2FvIRwD%2Fll4kzaeuKwk%2BtfjwAlzn%2FwVd%2BFF5bZgDi%2FKaCVhC4cRtw26y5LqczU%2FdfviFFJZGsXq8hKgWJJB7BUNDUPfh%2BNTrR090FZNABFGQY%2FobmcD4yAIhKW%2F8%2FCH0ssS0cZyE6aOTiYytTMIh1kWjfOF29BhO8s1DYH8v%2F1OTzOMm%2BrjuQKcWNYFM2ybcSDZNRKWrUZyCqvUfApq69XpJeHHUzshxekm%2FL1JzGIzPPF3Px834x1vh3nwVRCHQf2sjU5H52Ny%2F4Hy84%2F%2Fyv%2FgEH%2Fp3el2a36%2FW73wQdurO5zzX%2BOfwugCFp%2FJNo6jwr5yYy5sebUs6x40Tmv064eKlzbdpU5bxkIKfMfP4GTx%2FKlpuZNBHxNd5kxFf6gliw%2BY9%2BPKwTp5wF0TkN%2Flu3%2FtzOL2QTbP7%2FIfg%2B3hmUXOD2L09gJIuTZa57Hcp%2FZy167J%2Fe2cN%2BBkxkwr3ax%2Fp5x%2FN%2BcNDQFhakH9J3G6Ijc%2B%2FcC5Gwkb6Mw%2Be8ho%2Fa%2FCQ248yS4I1D6XrrWCSKzB4%2BlFnNPumN5wz8m6auzOvulkh%2FofQYAKdZFm%2BSs4dF6%2FfMEzF713i48CGgaXiKAxjL6L3eyM9c2JXAPiRAW8vc0bJst%2FDg%2B%2BTV5kTPk10pIHUHmsN5yQAGqUKMwA%2FDeFpMS1jz8aXmMvzMFQzV8emtkm3P6eo1mC1g%2F1woCCafGP2Q7JvtDthe%2BAbtVCfZhPwj0hDeJBQ16Igra323nQdnujTrOuw5vLSZqDZDzmwyFLQGoKX6Zi%2Bj4D8t9MopF3opD0v4z0nRs%2BA%2FHBj%2BF91mR9xH70vr2%2FX63fFwGVdA1eYa%2F4xhMo1%2FJmVN9oQYb07KK7PjVveFWRxcPLyFyKwLB%2FBYYP0cnlXoPIunkzfj93%2Bb2yO1iYiv8NB0xFfazhIxvC5%2Bh9DU%2BNGPDhw%2B4cIH3p3gP2%2F9eSh4%2F%2FzQfqHCVP9Jx%2FfJZIK1dzG%2FMt8D1qnZ1y1vp0P576zFj%2F39nT3gFcBEJtxrkbJ%2B8rwfgFG7ST%2B3cm0w0s81ON9n5L42NPasg3zKILUCFx4H%2FtsF%2FfPgH00d3XchCfeuDqpfIWrC4hYA7rMST4UZgF7jH%2FyjGqiIOzL8DAgPqS2LHx2ZLTp2PUpX31QTpfF6mrXWKC08%2BP57rdowc5wqvH6oI9LubkoGAFPFSvqv1baQtWduvpRqHfzaPqPTgun4cN994%2Fpw%2F72yNuvD%2FVt3CPR%2F%2BeDsKVPeOg1m69gfIZC%2FemDyaUY%2FJPvmuwMXxfyD%2BzG1cZJN%2FlZDGiJv8ux%2BWg9lwg8Vgz4A0XQP%2FNwRv3J4aWYu0k0hpK1TZ8DPlBQo%2BBPVMdoQTZ6mFOAk5pTkY%2BXB%2F7iBf9nYj%2F3VEQf%2B30siFWppQ%2F2UxZ6yxL7kRGy68e%2BdfxAApI1%2FvFWbHvdaOTEZox36xd2rx9I8kFLqnn51X9D5vizQ%2Bc03pJByAotabNrzNzeQc8rLJiK%2BwsN8EV%2F5coJb2hYJyQkXS6C%2F2Ng8EU7%2Bp%2FYJTiyuFu8%2B8J%2B3%2FoTT%2F3bxC5XvY4eN72NRvu3j%2B%2BSVKzgev370xKl433p7%2F7NF0n7HrrOzFj%2F293d2tFZgfxfutfhZP3nej1Ei2k%2F60angawXpJ3OfpFFtJH4Haec9fmYsR5uRkaOj%2FbSN9JOn%2FfAhXXt3qDo1PT4Ki1uxU2qPdzLcMl94bIcHR6k1I0%2F0ZZJ38Z6CqgOBYWRwcGQSgFemSB%2Brd%2FUwCFLaQy3RdPaBPCgajs1NBsA%2FEQ7dm8G0hDXfoRNw4NZjOyZUJzCqD0MTPIxF0yV9COwb8cg7qnAM9v0DXoPZOvaHhYMvgEV%2FJzbA13CFyJ6Lirz7LF83CVDW4849FdKhI%2FzENm3JG5M94IhfGbxUvV87uuUgJwgf0LzhjjjNKLEdBvod%2BcesYF1dCCOMtkYz4J%2FO%2F6myapfrAwUP3kKxEJ4qBACe854B%2F1LQEIThG%2F%2Fe%2BYc5wNyN%2F%2Ba7MXh1STkhe0d9XDYqF480D36HqDnbLQ6fAp3N68cEFmoBoF%2BZ%2Fs0N5FzkRRMRXxzJNOIrX04wjV0fz5FXD80eP6nXMWlVS3H%2FkBbNpsTogH9n%2FendfP56LvD%2FqksCJsq3bXyfvGcVl0PhIs0GYfqbB156etfO2AuRS3BnddYiwv5d%2FXnsT7Yswb4u3GsRs37yvJ9XFd25d2k36UemKGXSzxkcj5LcNyWzpEZ13liOuTjcBxP8LqTcV7aFPSkv%2BDVNXbm9u2ksANg63qiWMDz0WF0n%2FtPP5Y52ZuA%2FZdLCMoFarhIBNIG%2Ft850fLyE1wzT3ZUQWROjJprOrlKM07GUDMAWQD3%2F0hs%2FO3Y8rnmGJqJ1cEvHEGvXrB2sxofxanyQfIW7huKD3A5%2FItCfBiPsezSYLWP%2F9J8qLvrbG%2F1YZZv3x5PNYRyVMvK2QzvMNH2W1%2B%2Fvsx%2Bn12vNevsCOVcAZhnm0b3hC6W%2F6%2BsPj6DLWpKlH9bYDsPJU7KlyxJkI%2F8Y6ydlhOXBv%2BP8%2F%2FjwiRJWLCj%2FiTzVBdzmOe8%2Bh5AgDDHztxrAO%2F8wB7DGPwqZ5hv%2FfAGkdOj5FWLbpOcb4JzZC5m%2FjsiYdm2XbC%2BBzo%2Fs%2Bvdq52r6e8tbSAdySeRFPuLLH8k04itfTiAJj%2FdRaWC%2FcvCQTDC1VT0%2BPjHzoBRPWs11wH9q%2Fel9%2FOcA%2F8%2BoEBi%2Bj0X5tpfvk0%2BrmAlcpfBdiyVt%2BHzbpquxF%2FLBTkRvZy0e7I9pdhb7p8G%2BCFXfcawfrvD003%2BS2CC2n%2FSz77Us6ScV8JIa6GSseWO51FcQodSCGn3%2BrWwLnpS3%2BvSaugJlDWxQSNHr2TuRNQkOPvDmof0F%2BM%2FQfjw523d5x43LC0CIz%2B36yl0jc2qGY3cXvSNQoKAJQfSw5iQADym5H%2F4si%2Bj%2F0b0vvHr4ON9puqh43IIaEN4F0QHA5uvDG770u3ocv%2Fhl6B2swI%2BAfe%2FCJPJXiNoZYv803AsrMIx%2BLjnjZJyZouXvYLxJNqOj5HEjMkHxAe%2FNE8dbcsXJXA7kMxQ8Mtrn8MOA1VbaFSXFhz5xtcZ24Ds0DkiteW2IssVg%2FXi4eNGc4J%2FKNAH%2FCnaEJ3KiYIk4yj8lSux511LGkvcJapQo7qn9RrFK5wBbFLtiKvVg841%2Ff1Ly8detDO9fGw%2Fra%2BHNEU2Ys77WL6Maez2xeWbrH8ubVmwSRyXI1MUN5DKcyUzEF1QgF%2FGVLSeopjitpIG954lnnlPtkraqB6mejv%2BoA%2F4bWX%2BS4PvnKfjHAhS%2BT3uifJvPqVauksymRNq19Z6RwdgL6fh8dtaiwv5A%2Fhz29xN9wr3emawfmPSZGqN9pJ8D%2B%2FbMQ%2FrJWndmjaovdHY%2FqTUoIV%2BtpHWlT%2FpZuAHO2JOyIV8XOk1d4cjXF775tIGv2%2B5ZYcDolP8F7XmC3BsJfj2%2FObV1BPXzXN5UsUeqGVbuwYjTO9bRD81BeTBaMgAvNZFd8uFPgP63hi7gvgOHj9Gjzy%2BKOFM2Gj4d%2FnrZ7JTqA15x4EfAvj8DX64l7%2BUKEc79prA%2F4V5mBZa3AU4V6jNFy98RePiGkegcpQMB9avQ484D%2Fl2fO5vLH48gnDMwnjPQB0MWAPryK5epOxqK1EnwcgknQ%2F6pWPPZw8UE%2FGNgxV6uSAXkwP8fB57IvsNFA0AGfZ7yrwcl%2FeToZ%2FKzEOyLxsqePuF3TIOUceRSqQe2YmNNNv79uNJ9%2FLAJBwflfkS6lql2AfB%2FMBjWUOC5%2FaEaBlvQgrF%2BKNHdQC6T75uN%2BOLks0IkV06wLuHEkgb2jp0PBzGPQH9pVa%2BJvKnZDvjPWH8OROvP7aeD%2FwcJ%2F4Lvo1G%2BiwBlCVdps8ymxNStOhzc7JZrL6SzOmtxY3%2FYvA77Z4J930msH25w7X8ff%2F0vSD9SQWVJP2loly4nN5wfTAH%2Bk1AwsnU3zLUKjaQQSM5w2W1mInTuc2utfAbuTz6E37BWAv7hre%2FcwZR%2Fr4Jqh9yd1Wce%2FIMzeG6ShEpz3ckGvmyu8gaKzPlHNZ01nNwxJJm3H3gB6H9YuoCPPfXiKweDaQnrRMM5gBE2zM3SBI5m8bLC6B3yEQKv%2BElJE4Z930B5y0e7%2FHNg%2F%2BC10gz2J9zLW4Flyw1frDq1bc1b3Du0ZRLLNP42Bf%2BO4Z6dPkzEOq5aPp6%2Bf15Tt0krKf67q2%2BocNXsiXm4a1ferlsDJTjkH1xxYP3MusBlB%2F7Du7gtfXvE8KWDMD0xE47DEaP%2BxWaJo%2FyTSDXHzCI3NywHFk95T59xDd9IG%2F%2FwEUmTIA%2F7LFo%2B%2FuPrJPDONZGLh4j7Nr7T%2Brm1Jqz1G%2F5ADtrqLvMOM9aPc%2BSiJHb5vs1FfHkqkFGQ8uWE3XyJpApq%2FRnySkKrGhfnwx3w38j6E%2FbPcCieTrf6JMq34PssWQw4S7lKOpuqSZxL8Ka%2BKSKmzuqsv2%2FsX7Hefl%2BK%2FY3Ni0oJ7J8G%2By4C1s%2BinjD4ya%2BRfg48SwWV5wAC5Q335Ow6gBEO%2FDuar7rqLausSteXYmPtaPzhL63KLPekt%2BMNMPvjlWVqOUSjr%2Bhi%2B3BOsyws5RJtnx5nyr9TPh7gxgjO9L0hiuTBP4UDiMpResGTXjYQbtHkyQKKnPNP%2FwCaTsBhAvBS9D8QuoAzwcTiiWfUtARO05xuSr%2BgNviZQl5r8jMzcX7m1hxVdc6%2BwCt%2B4J7RPPvePtgNt1pPoDnsn1qB5Y1%2BPE0tAf%2BJnAO0BaUKUOjib1Pw73ZAtsTeDOhm%2BsBDKXiA4s7E3L%2BxrHd1%2BO7Vnb7Iwx0TNIrXvyUP44qDAj%2B54gBlagykUA4M3jUIu4zdHpCuTkDM9%2BS%2F0SbGJvTFxTlkNqNerZAPuKXxD4PJkX8qSeMf630fJd40uYHf3r7FIm6BK4GvyG2qdustt%2F4unkRy9Cm%2F7XMXjlwM5BIKZDMRX44K1FQ5YbdfbWBLcNnIiLJUpFV9Ez5MHfDfwPpT2T9Yf4558E%2BUr%2BP7LAKkpVylgUFZGzfI51t29RUd7N9ZiwH7C%2FiA17O%2BhP31Ltbl4r62eOzvJvqLAJMv8iqDhRv47Ub62TmtFVT%2BNnlhSvmHyJ4H%2FzzDG8%2FoR7ny2uuTdQO91VmM6377%2BvyyJ9VvgLmfv%2FZKKXf4lhW4OScNxwFa4Rv4o0z5A5myJKMs8ndqRhmA45AB%2F6lKGO4EeJKXIFFNT5LV3dLdrUZGcsn5Rz%2BF13QCCdi%2BKfqvSBdQTCx2PqymJXCa5lr79v%2BIJZDXNaUdr2O8RItGnSO84pEQiJydOFtRsjqP%2Fb1BgMf%2BJ8pWYJe%2B39b7ll64JINVAP%2FOt8eXaPSuiXVi%2BuNGN3nwn3ccwsoRDA18rD%2FAPTJjRpnhyAGTslC2SJKFtZK%2F2jMZCiWzRsqPuJkt%2FK46UuVF2e3BEfVfCex8vY7rREdkZw3nEJR%2F%2FtENhFzAbZON%2F%2F7uTOOfNAmmmU2sRO4Ms%2F42%2BDf8je%2B08NdR8TwHaIQqhYQvn8NnZ8UxF%2FzQTMRXQgXigObLCbsBawN7zboNsoSlElrV%2F129URPmBx3wP%2Fc6P7J%2FsP4cdOD%2Ff7MoX%2Fg%2BiwNrXRG4SvJdy7qjr1c%2B3yc%2BsrSD%2FTtrMWD%2FjcPG6R91Qf39Xb6rt313gv1tor8I2DiLnl%2FEwg1c8xLwXZcKKssBvCiR74IdMuDfzwp8qOcFH%2FzYJz91%2BvrHNzLJNuO6T%2BWXPckyhzNP%2BOTHPniBa%2FT5UNJEU%2Bca%2BDrlHxgcvbdwCO1dVyYKE8hqODEL%2Fm14YC3%2FL8hDmol0NwUyAwD5Jr3zz7iPJQMSsKlSmH3l55eHKONgYlGbjqYlcJrmWrv32npkxlOkHK9jvGSIgu%2FijPCK1%2FZlOHqOjpTB%2FqlBANg%2FtQPw3%2Ftll75v6ZIzA%2F9fAMZ7VQflmKq%2F98dkPirHNNi2afB%2FEUb%2FUEUYSUH9KPFHUB2fqKu55QBYGIrWgd4USr8lRkSWUDXrug2%2B%2FBCYiZZcLtKjtdHhjWuREqsAIFS%2BI5sffPyZF6Pd72%2F9puiIamWTWrO5SQZCmUSqXOO%2Fp%2BT8MzZ34580iZbBP1MfRnQ4wBYmZtC%2Blvd%2BlYYVSYGw8Xp7kxw%2B8tEpG84y4ov9MHfEV653dN4lKl%2B98ZY4dVWWysc%2FalNabRZ0wP%2F87B%2BsP%2B9Ytz7WWdBXLcoXvs%2BiQFtLhask37Wsm2%2B4Lnw%2BufF1Vme1YbXi4DeVmejT2cHFwwX7Lgod7uLn%2FWCep3MUSD%2FaG81XUGAC7nnZjC%2BvEsAl0255Npk%2Bf%2Bn73u%2FXBwIPh0l24UTy%2FtwKdxmeZJnDH5n3h%2BkAn%2B%2Fv9eA8o1bPrakDwd2yvFfG%2FAo8sOiJ3uCgfqzNTfHQwO1n3DEMPNwA%2FMObUv3zaJyJzd%2FdRXNIHEOmwxiqr9AFvFVMLAaHlRg6DqdprrVth60%2F2eya%2FM6FEp2ycxsaF15x77Jr8tj%2FwroQuZbH%2FqUMcIf9KTgU%2B%2F%2FT0yY%2BV1%2F52U9Kay4L%2FgWZOQIPqCv2Wl96%2B3hwzn41nEH1jAUeGIjIAz%2FeFPiHe%2FRHBY%2FKOr0WRWfM%2FaC3%2FVn8er%2B8rn5MpBwMfzBlbC94GfJPxQhhnvWTlB8T1lhfGyqLDRsDaUAOvTbiFcN%2Fa3p4aOybOx%2FZ%2FZhcBFbdcou8U8l3Cgddb1NkxMF8ItV5NP4ny6A%2Fcf7ZhACAxr90hl7am4mRzoP%2F6bTzzwOFuabkvv7WL6Ld77ovhlq1Vj%2FqNSLHygIAWD8ZGX4zEV88NBPx5eWrv371tfGMEJbKewuKZsHG6oD%2FOdk%2FWH%2FeXOldfq1k8kBfdVG%2Bi4qrFL7rq2Rd%2BdlPXR4%2BX8fjs7MWHfaflFwl%2Fom7WNLVcy4e8wf7LrmwtJa05MDpEfk7nPcD6WdgWOYorxnp54qPuGOURfK5jC9fL%2FAUBJINn0IlpJPsI1njOv9G%2BqS3XT3STKPPJzO5jjzxjcdOGvhfdmt%2FQFumPIzM5ugNXg7twusoHZKk4N%2BelYJ%2FLMWPvv7Cf3jwDydHmYnV8D6vxYQja%2Fxj8k8cQ67DeP4vhy7gtTdKHyuMMupraG43pdq4VQczE5CPXdgQ7UnPRgDmfDWQC67%2BxK9cAvafvyup2J%2BLQHeK%2FVf5%2Fzku%2F9R1O2HFFhX9N1pw3PmVvkTrEfpfEe5c2Aj8e9NO%2BBaAem26Px30Efv3Pb07nEEJPjfU73hbDvxn2XUcX1dZgCPBv6LY%2F96%2BVw4o8WhgsKiHRqNDgiljRwwvO7mvZ%2F0kh2Fz%2BBaxDVrd29N3h2Tc6qGnkrh3Ymr07n8ttic7tm8euWvdmjXrioJ03O%2BO4m9GHMwkUpFEEasPpMv47HvnH%2BYANP6jJP9sG%2F8%2BWMtx%2Frt5wMInpuQ%2BE3hwL2vttd7GLkF3wQkJG88LACh9Ehl%2BPuLLrkaeCtRExJdvYH%2Foo0xdYylcgP%2BCjdUB%2F%2FNaf0rw77XXXaMe49BXryXKd9FxleS7vkzXpe9%2Fz4Ud6N9ZixD7B05wv%2BvqjabY31w85sX%2B518QusmXXsbKbvl89tar7g75zub9GOknoJdXIf008F3PcHgKadhFjSgMgP%2F8sIC3AS4dTX80X5i87QwvmgH%2FCvBSzo2xvJ9UO5yI4L4oTBnFnao8xGVHgBoUX3jO0KTS3zsF%2Fwwfko%2FAMf%2F5WyE4PgQY3CPE%2BRVoYft7mT7g%2FLPSCNKwC2Cluw5j2gW8TEwsbq6sisTQ6Fwy19o4aKtOCa%2B6sCHak56NYDDnf77mc5d%2FWLZ1jo%2Bs2H9qbGjDP1dAyZ%2FiZPBfFP8E2pR%2Fkv8589BfPOtTnEfv3pCudQHEKtEhwP8l84F%2F5WqP415aANgihzmEI4g%2BYvfD27fQgQbuY8XoDPppzTrwn%2FUbtcmKPWAhWe96q1fvQ4898cwzUuYMV8erXDXN8Wesrow9rWduWVhHfa%2FBHwbRs1TiGCG4A67q6V7R2894gX0XkjDuHhwOJeHEN8aGZVeMqBd%2BnXrGtogPlaYTqcigHi1Jl7vtl0jmADPW%2BD%2F8ogSXZBr%2FWcFv%2BGB8f1bDmMqW4zKzU3lwjz88MyrRT1Ubuzit9bAJANx5GbogmasbiQ%2BTSc6bowI1E%2FGV3ieZgS5x5gwFG6sD%2FhsF%2F4ba6XLtZUBf%2FWSI8u2Y53dWZ83j3p1J7ezr8xP9vIvHBUkcn3Y0PnvlVXHZsKup85Jesl6qD0oP0e6Q72Dejyf97H3p1acbkH6y6l0P%2Fi%2FMXPyPZ2QCDvswyT6ax%2FH%2BPml6X%2BqRJsD%2F%2FIR7KAv3PIAdjiI4MXuo6u6Ug4mH%2BhQN7%2BLBnFHdkCQj%2BPXDB1zlf7h%2F3zMhOH5mbDicJPF0sa5ueAT0Q5CWXCF17C5ClV2HMeGFBhOL0McKxFDW8t5Vc6zQ%2FGVJlK9v8hvqN%2FdPIG%2B57rkCuJ11IpEzfsvooC77U0BbE0PFP%2FEn%2Fkmg2MOnpTjPGRERQOpGJI6UIul2lQ1kXkuSWwaOt6a7hiPsUOdscTBCfmqaXCAbR8KoXznw76vfOumfBxceNWzK0pkd8mv%2FyczEeDAYr5OkRk0TYjQU3%2FgnCwtyvG1Kfxi%2BPS07K8asDQ6Eoil4hjBeYN8Nfm1T8Db8V1IKfnN6XNbIYHxHzIU2sSfZHc0lUl38sSujiIDfHAZT%2BOUSAQAMqFN1vpcEl2Qa%2F7keB6J9V4HB4Zff6jYNT4IH9%2B3wy4djVB67ODaeCQDsvPTRyo0jvogLs1q74qhA%2BQOaX96W%2BW8KN%2BYO%2BG90xELtFEEF9FXx9%2BmszuqsjHv3cCa5J4P9cfEA%2B%2Ft6%2FArhMt5w8y0sZC46kWuO9QNB83XtnK7mKv1O5v140s8BifZ1pJ88wAbHtAD%2BHfe9cTBYFsf7%2ByR634x9YF7fB%2FJ2yUqyGet2OOL2I%2F3OWvSiBYnJ3MC4vfbApAQLboYkWavPoqEeLcWrWx%2FZE%2BIZQ3B8dWjA%2FG%2BFDCHYCF%2F3UuO%2Fq5D7QuvO3MvP1z5WIIayrrnu%2BnSVzimQ3JzmqIUxJVsldR%2FPe5CP3POtb02P65ravHkq%2Fum%2BmftK%2F8Sfwj%2FxP9N1%2F71u3S%2F%2FNh3crjE3hISUbtfwaY3fUQRtWdNdxbXD1cB9ktdiEEN0LujcDKM4Es2Af3hvGEnxEtQWhnmR4Q5Fq%2FbNMVuoP5olVwV14j1T0FDSxj9qEOaMScbt1q2YLoQ3qUrRpG7ho1gsyb4Lw6%2FapvGqpOtt%2B%2FY3Z6Y1QIh3XCubkV%2Bh1LW2M6Jh65vG%2F%2BcFO3tPnxG4NL7xj%2FaZxr%2F0aiS4JN%2F4z4eslet5c%2B%2FBiE6HHrKmJ2qjMh1xY5dNpRw%2BQs9Ok%2BH7aOX2R3ydYXz7T4ocxg7476zO6qyWl3fvHjhT7F%2BZA%2Fvj4hFA6wX%2BfvHLwsT7vLgY0KUsDK6uZ87fNOvnQJyCEhb5zub9nFcm%2Fby0V6N9HeknC7BbBf%2BNIRC3PCbZZ47jL0r0vhRPZwX%2Bq87EslqLQpTCDkdhqdzuweHVEtXBEA8PEJyTQKM05IuPMOX8cmAOSJt528y0NncrhQdWnWNQoctrjf%2Fw6CNclQSxNNPHCsRQ1uWfmmPZNO03wl71rW1vjgovHjZC6j6eJwWO3rNlWkDlwi4Bytv%2FWA5kbdTJj1PwT7cVsja7wuCmXJ4GBAzLFCEMYr5YfA%2B1skCXv3EksiFf%2Fgz4VoyQsAC3kaLTDfbuDW6o0ap9RLOFenqiWfKgUc%2BLLSKPvvEPTq4pOZ6TxZ%2FpO2cM5VbHJ8Oe3xRrna5eHO3714lKHJm41Afhqt4ju5N3BDpzIsF954zItL5p%2FOs4zRr%2F3r4oHWaUGv%2BrNbikBfBPyFqJyVfy7deyX7zeB3UNDw3KduoRVpQFLZRy%2BCoMQVIZvm%2FT5yO%2BplqI%2BDrT%2BPYfhwsGl90O%2BO%2Bszuqs1pd3767ksX%2B9szof9lexjXe1%2Boxwl9W%2FmOuyRVv06pwfg9umWD9OL%2FmO5f0goSuTfmIC%2Fpl6pV5YAOz2gX%2BOhHoKzToc3x69r4F%2FbqpOvTput%2FqvBpxldjgC%2FGMyDvl0kCuAJ3QJHe5LAo3c4Rk3E0kezM4jaga1zawN6wHpLq4uZ1%2FUEBmCkWj8433iad1CgsiQgBHIX%2FSe98%2B10NF8TFuEvrXtomfBK%2FhCpe7jeUHQ%2FfeEXzZQTRZ0Dci85p6tgSazc9uWsvFoEvK1c9pZGNV8k1mvXj39oowQ%2FUCP5CQo1%2BM28pyA6kA242Ukzpa5nGG3kbzJPVfHbqza5QLXE7DngJgla%2FcdBF5xNJQ7S41%2F6sItUQ1y8Vwzvn%2B3c1pfTCNClTIVax3BuNMTKrgOKnGTiQdmUP%2FKPkltKRNfEtL7HAz1ixo0%2Fsdd499zadJhhjX%2BM72aPOtq84jN74qvdROcLz3I3T10mNZtWB%2F2gfzqgyPC%2FO%2FXuxcn4iSP8oHzMvz0g0wW1wMcxFqL%2BMrHt7vZ80KB%2F0Md8N9ZnfXuW0DzjyTu3eOjeex%2Fp7Sp0%2BSe27lvOz1ByLMQ1xJNLmQia6HWcc5PtF3zrB%2F0ku9s3s%2BSj1xxrSP9aAK%2BeaXmL%2BQE9LQK%2Fkn5Wgx6X8C%2F%2BPV7cV2J3r1JcGKlbIezUZNxKop0zOPD4LeL83QImEomBf%2B9QGb3gFsgbWahqvdXugPyqrPmYHaYyBDyT8VMzxNad0sLB61LYmO6gPs%2B4gu80qT7uMf%2BU4E%2FEjjm%2FasWdAlQDmXU9LZdj%2B8mcsyuIh52%2F%2BlMwWkSjjcGmYrfFFVLm727u6tXRLBAbvHDBJQaScd5W3KyGNzLJml%2F2wqrxOESL4RgLL6iZ5Ws3kqvQPThsZpdNWu2L%2BGFIZilSV7UhdZ8Ts7BYC0VxgjS0kYBvk5rHZG6j0%2BFfb%2B6T94emXj4unol%2BWhYLub2jisT0jtWQ46h3kTjHy5NvvH%2F8fe20ocZn1tywcHX8cqacPS7ZfWs6u3tu0M3Vxy7UJvhBaCPm5qT4bMNktGaPLQQ8ZVLtdHaJO0%2BtQ7%2BgwC%2FA%2F47q7PefYuoudPdu%2FX2m8f%2BM6FN%2FbYl96TYHzfbjwQ9wU3ShQtD6sBE1TU9881v79gmlNgRnfPfxLOaZ%2F1wj3qn8n7wzb786iChc6SfBgn4GSDfAvin4bcI9L5lfZ%2BhvTLFQhDd1zaFjapAp9%2BIZKt6VkSkY7OruuU%2F3HsX5%2BkCjZLDIxUOeVBmiWKIydrM0mTuUpOhGqw5TpK6yHClSTxp%2FBdy34XcToCjAu4nzH%2FYCM26j19SmAEE%2FkhfTwDXC4n9e7u6KtKcFRLhk0%2FtfugBkepa4LDbfN%2FZWnUm%2B0rn12YuX7XMYATt9qsIdjh6FCvNniY3AoBqifrFcTAudbaU%2FdYEGhIPdKn3pOAYHAgdf6TY8jnE8EeYklxSV8cPi1CWR5rkri4EJyfTt61j4mEjNUYlfhU9XRWpdQTjyqV6o3S8e7u6dfXIhwjkuMlYmfKOVrXA%2BoH0Tr6Yr%2B19nyJt%2FDvnn7WcHQva%2BId1hdeRlV532BtvGtFiXIUVcvTrSxhAw%2FKrM3apUSXo84rGP3LfLOvHR3ytcIS6ViO%2BGmQp6059Jbn%2FtA7%2BH5HVAf%2Bd1VnvwnW%2BdPVuKrr9fSCXvjPB%2FnteeOMkwb5iTplgf3Lsgp5Au3C18QD1IWOOVKe37vzOQzu2bh5XSRbPawPrZ7HzfvDNlpvyTJn0QwJ%2B%2B8F%2FmvK1GPS%2Bhb5vXe8ax9iu07v7A9yWzSM4i1Zfd5fYYgrSkd1MIIU33XFxnh4Bp4bq%2BIwWlpIQDQT9aJtZ33dFr75n1FxWXLyV%2FGEl0uPufhnt%2BBQnaN0tLwotyMc%2B4surXGEjZNzHfe8R7F%2BTlvbK3n4MRxdqCVCtCC1bJUTPP7lr%2BxauJMDEYjM8bKR%2FKrASfu4SScKm6rDyXAZUBCuYb31%2Fl3XZ%2BfI80YXjkMc%2FRr%2F%2BtlByEmN7mF7C7t9UlZEmJqwixq0OS58%2BDIpKmpBaYc6jj%2BXGv68LU92NxEnXatQYDE8YL%2FzL0MUJygmlVBr%2BFcPLyVEqU33HPkpoapjiYPh8sXRpn4LGv6X4Js4%2FzAH0dyL98Ulr%2FLcGWKX0Ynjj9MbcoIarevRtifa3Fn91iK1KzpqUyZ2ofz09CbkF14NcxFdXfGgt4ivffEIp9OICettxLNHfd8B%2FZ3XWu2uRI3rt8v511u1fX4L3eex%2F8Hgd%2B4s5pcP%2BeJUI4%2Bcm0b8Njwk3mp6M8DSGA%2Fx%2F8Lu7dM4%2FaM9sA%2BtncfN%2BIP3cqrf%2FPUb6cbK49oN%2FUr54ziLQ%2Bxrek5ZZyauFBrq29fvXAXQGADrsLMWAspv7wk%2Fey3ifxj%2BdQuI8PQJODo%2F8lmSD2dgBS0PBEbad19t7%2BpOEuC%2Bkx7G7Sxj2MTIqmvQ8zxdaXpdceP6voIKCIJZ1H%2FdgJ3aqVcq6XoH1Aq4h5U11Yx727MtP79YZIrw3H2WhTVkj%2FBDVKthe2xVS9X396ypIrqrSNWC%2BvpXWZZ%2BP6HLIH4e88co2dmORcIvvPu2T2Oew%2BDUMf%2FrXwbyBHCTl4J1GPwlJaL7x7%2BtCX4GH%2Fy3FJjUGsonq9ET4hr6kb6%2BUSo9%2FZXf21HfnSgLGxArVBYyl%2BWIpC8WGB3daim%2Fq%2FKNzgPIwY9cDrTX%2BTdu0mcrttHqDW5TcWCbHi4WH1O0r5XuxcWANGbinJ3m5xdJc2JiWkeGhhYiv7LpYbj86MHwZ2hQ12UKAfzsFO%2BC%2FszrrXbQI7A9sfOGKWrd%2FlGDOcmpnbKPWQyTnxv7b1JwSBG%2Fx1R8Xxo%2BwoXXwvYFWaSBjKhFWXuR7Yc4%2FXbU5fxtYP4ud9wPpR2%2F%2FrznST3vAf%2F45i0Dva%2FxmAeAFUx%2FqvMlTwFkAHWZKmwRtKRjUshV1JY1%2FIMMWWD9zI2AOzzerKH7xBDTIJwAC8DWI06L0YdFcGva3uC%2FEhdLdfUlFMrAgkPsuyKLQgnzsqErOh5Ao6Lz7uAk8td4eqwmVXBCUAOvpexdsicUnjXGtf%2Fe9ouohFO%2BnaUcenmFwA%2BpHd03rQvheqIrQEwncRf5Blz0luqD6sOOQvxZsm1aHGLPpqdOOIE6GTzEkHwJdE4Y%2FcpW9ZwrsDy8MFF1RPtiT%2B2dd49%2FqwlR1sD2cSuHlpr4xoTUGxc5EfHV7e1Ztk3wIFMGEDcjlBqXEJhwvAeoYffoehz%2BjGVegGqhAunECAE6yB90wY4TGf2vVrVQ%2BJcIPkom6W0VFbywjzgBAFBErw8UAYquNXVKTVS%2B3yEV8IfxPI75cimATxeV8JCt5qRdbpU2lx3J9MXyLnZzO6qzOelcsAvsrgmM2uW7%2F6lJqJ0OBr%2FRZiOR82F%2FNKQX7k1wdCD8hn1QYP8KGlvt7n3AGdPX3rgz%2Fri%2Fz7JO7ds7YnL8NrJ%2FFzvsx0k%2B4%2Fe93pJ9FA%2F693nd%2F%2B%2FW%2BdtwVgPcWfb6pMs6qRKCjdoeGdDDf6ZEp%2FyiuVRicA09Md5siYO8uszUg6b7oiKguhkA%2BSCa0GLFTFO5aRTSXHvvfvlIycV1318kfF24vUWgB9yEfmz7W8q2adR9H4DkSO9UyGJwMkGpB1%2Bj4VFWnCuTBvh7QP163XBCsivx%2FtxWEH1r%2F4Xn0J1aL%2BBs%2FMZzEVsZ2e2SJEb0w4IguieojuycJGwM7MohSArleH1f3doUiJH4IPgeGP9UppCAgcLQIuj%2Fhg%2FnGP3VhekJtD02IO9YFdD0zIXXY%2FZunZNfLxVuIWfr2Op2pVuujlSCNkTNCXG%2FolJfHFozCjmYzrqgExz3hSeW2nvzDSRZ5ofY79eaha15AtEN6Pu7duCeNyaBHxA8bTjMAwG%2BJpGXGLl1IFFYaPSmRW2QivvxoreKpQGYpkCsu830hncr8sGXalD%2BWwWGit5DdLL9Wpkyd1Vmd9a5Y52tgP50xyfAVTuR9o3cPbNjoUzvDNFknyyNiJPGVlfNjf8wpl1wYrMl%2F9fJPX%2Fn5G5eHFxW926gQpCt9whmQpR4%2F9Rf6wbN73Jy%2FDayfxcz7uaAg%2Few78OyubRnST5vAv0u7aqz3BR20V%2B8LzwiKb9HnGwNnqbiWLWUeUrVRSCSKtjYGMDRaVv1aKqnpbr26MaVXCMyIWUh1Vxniu%2FBZHFZWx4g2mQX0rR1wdTTAbtJ1d1uWP2bYCMD9MvnYM%2F8z7uMpTFCBJ8Ql0U4KpFrIJeOb2gj96FCVHTqoKXcgHc8fk564uS3VVbbYFSD%2B7rsjqrAx2hkJnxjHH%2BN6OKLLbCY4NY132qrN4UqJ8KM1CJ9CrJ969UPwOVb0xDknJc5a5lHE0K3VF4AP1qDx70zfBUl%2FKXzNE0OC8cNVW3Y9kmzRZYjGVyHwAKKK3m4GsEKxRNiluBfnS0ZhuYyrpVSCXurMa3CO%2BpPM%2F07McjIr00qYOU1krNNoEiqlyOlZ5Q0A8FsKx8ZnVJpiYSyTrpZM2NxojYivhArUwFKgmb4QWvCENtWyt3QpMPC6a8Sdu7M6q7PeFetCpfv3rY3GKGtWi2ZxbGbrWCSqTsz8ERGd0%2F9mZlxbfdVgsfwHoZMC9n999sQphU8l7P%2BJS6PtuISSXnP9TRWEkNVhJV3SpqVRGsb0WAb90M3528D6Way8H6J9jfRzYN8eGY5D%2BmkK%2FGPe3gr4L%2FB5Y72vTbHbqfe17vu35YiDKCwhSY1pZZi0RgWolh6xUZAOnb7B0KMuXKvQOI75xr9XN6aljvye4bufKrvKrCauSd4kvu2ANpkrdZOh8gxNC1wRw7jurvM9XMhtCvk49SHEp6j5iC9OOXNXnaiGmitAqgVcctz0aBkf62evPl1AHb%2BTQl8WyS%2BEH4Se4RU0IEzhnmiwAwDEaMcJXROuB8fBUbJzG3rzzi3MEOwlgZOiih6UA4QCXT6JehwPV6fi8JMBKjWpllTke0TT5BOvp43%2FVHXwbwWhrpayNKD7yGv6ckVImwgMBPLKEVA9cO%2BKrjASYQArdetq%2BJuULYUFbc7thtGHgX4%2FPEgb%2F%2BkwIx9Znh%2F7bjOnIeoXym2R3Au3VLcAB7%2Fu%2B6Q3IZKWkeOzIaAnpelqjSdsSgXUB1T2CRXIiuxscZkXg%2B19fo%2FRphZq6l8ODLxcErU7q7M66xxfZO4q3X%2B9Tsw3rI%2BOEDN%2FFJL3Se8vFGsUAffPfGNM8mQU%2B3%2F%2F%2BZd%2FdODNQ2%2F94liQcoH9r7nyswSOXn3t9Tcul4aLCiGNgS2eE%2FK6wtOgJ6tdlx%2B7OX8bWD%2BLmPcj0b5G%2BnnyIc3uhPTTBEoG07Vq9Qk%2Bb6z3dVPs9uh9vbgRpS5a38lIbFbO%2FZACrR7t9tLo660I2uJ2X3atWlnc7elJNlA3IjD9dk15P9XxkqsMfoLK49a3VbOhHoWwo8o%2B6fVRv0g76e62q%2FHP4RLUn%2FEhpEo8la%2FH7JRTfCc4S8uelQKpFmbp0VupM0dNQkaJfaTkDeNnSI9pY7YX1GpCT%2BV44XKzIZh9at8bo52y0LUC3jWRZzMu7EweBdaKKJ9gMRMd2K4cjlY7LLm0CkFMh58rlRdW5dpn3jP3bFeCDJ7JSeM%2F7UT8Ma1%2Fwb9fjFXE7%2FXLJTbMF%2BR6a2EM%2BI2u0w%2BxSeugHlhz%2FTheMpTKZlzx9onHKYVhtvHfsrqd1s%2FMn2zRd8BHl0uCBh6L%2Fn%2BYLcDBHxhkG0jKcbcztKgh3YeeRFFu6Wo5ve8qEZ4T8eVV9t5UK19c5sVgz3BnWMgLRjkw8D0dtW9ndda5vtDiSuau0v1HJ0fvvntQFWLTE%2BNwRGWZV11cQ8jKNtUmZraFMM5de%2FY%2B9dxz%2B%2Fb%2FaP8T2q3%2B3cott9x8w%2FWybrj5lgp9tyi%2BhIEt3F7JB1VriintfsG3%2FAlzfugubWD9LELeD%2B4ZGu0L6Uctk8JwvAnSj2vKtw7%2BFZ831PsedVPsdul9ARpK8UWqW%2B9Vlm7141X0fOL1Sb8XtDUlbuulHnwfd3vX5kTfxzeaMgwekPfG2BBrFngb6iiPx6jUHgFdmeGPi%2FqlWMHI9Ui7Gv8UWrWSr4%2FzIUwjvk64eixzysEmAmMKpFqwNRCUqObADmZy1ZGjfOwJLWTqEInuRegp9ZaOFTepxJPLVVWkxF6GbXi3aPwfa8KFHb3rqAQOCNBjS%2FWWAKhc88pWO3ppZdQp6mOYN2B%2F%2BYOiOy0L2RozSeM%2F7UTspPVfV59v0hcNvDNpsFRHfAzzRnX82TQqn6HiFdAaOsBQKpdxxaUmTTfjr8xu3HQtGWa0aGarG5jWPxEedkkI3zJGR8N28PF9KsuAZJ%2Fd0g8VEJ2JK8pN7puP%2BCJsIFHZW8RXpsjOJPCYGOwZ7gwyGu%2Bszuqszjp76K%2BZu3Ib2PLNMewxBPXDEdVFSo31UJRDSpkwM7N1x46HHnlk9969TwmsG9Bmi9IB6DRp342rbiUysO8FMakptVov2PSdOb8IXS9uA%2BtnUfJ%2BIP1co9G%2B2yD9qGXSFR%2B5oHnCx8KAf0B9Ru%2FLFLtdel%2F%2FbFr%2FAJU7k1u94H%2F2LP1e%2FWclXxc4HKzg25xpzG7KrdbWfy22aA1BDuvWxmNUWEeCrjD86VP2h7N1obyryx%2FfeMFB24XU%2B6YRX44K5N3H8%2FUYRBeeq1zvAHCBVK0uBozixd9NAnM9gswJot3Mb6%2Bx%2FtFdo1gSqx8VYaD%2Bnp5SxL0hYr5BF73gPOiTVnc%2BbzU8Vz9FN8OkLgColhmyAS3M0MwmVeSE2Sd5U6ZDHgvojqR0tsadNMnn70R8h9Y%2FGhgdRknkb6yBdMBqi%2Bt71ETA88TxkoKaoRRNen9hTStMC91IE45x%2F3TTtWSY0fIM9jtbjAOoVT1K527R%2F%2BsWKNYkfktOBtR%2FS31ktAKxVcrGy03Y%2FGhNHhwV6MyK7GyuNmKw5%2BzOEGhTndVZndVZZ4U3I%2FTXzN1gtrlt6316fQRBCeKHr3rbLWF9gZhIDfXsZ4odvdQmNs%2FMbJMS4MEZpQMp5do6TfTdBPqLEFIY2Dr4FjJqvA7XSrq7n8Y5%2F1rIlm1g%2FSxC3g%2BkH26%2BQvphtNuU%2BApgDsW0LeA%2F1fsyxW6T3tcD8Ej0EAQOZHG3%2BgB0qFut3zutA4GowN1Y7sE7Z5VG%2Bj7Pre4HJZW0gkorwmMUvbEZ%2FqinINJOvHEp714%2FXmdBPNhC4z%2FDRkgjvhwVyLuPs5ez5upgHdrdY5PjC7lGIwKVwqUOmujBamni6%2F6%2FiLYx9TFMF%2Blj4dvu7lURhlQmsiOkNlP5J0JX%2FWGeZSLPTKt7XtL71of0U4AhcX4VhUl4uzWFBL1qOQZiPIT6uKwJqcSREOgzmCeo1a%2FCPN8k9yci1cft8vt4rbHUQNS%2FGLJOa4WlJ0SwwsH%2B1tOOkBxYNcyFdX6%2BO1kLvvHPX9kjNP7TYUbrM9gt39k2ThnPTE%2FHKbg9cX9iDdf9lrr18IcCnTAOFCBRbPX6iTwbz5Ms0c8Uo7WECpQvsvPYf3n8fN%2Ff8yB3ho4st7M6q7POPtZLob%2Ban92zeVpAi14fI3eih2a%2FX4wBVEmnfX2lUkpLSUuAb39zZmY6Dg%2FoNNW9pQX6qxBSybfcG7Ub91Vct3HcO%2FxiIP4Aw9rA%2BlmUvB9IP%2Bj9XjPSj1gmNQv%2BMZfIg3%2FAbQL%2B4T478J%2FR%2B1545nrfJnjVCQD%2FDmivoEmocYd0Me9YB9Cpo9HpadmFUQqgClzROIKOvLNKQ32fcY4erCsOpqKrDHBjJVY%2FU9NF%2F9oMf9RTEN9688aVN1WnH1gQYwvc%2BGcTTIL6EcUmEV9zuo9flFeTj8eXIOYsTPAWcMkXo5%2BsBl0ibEpC0OhAu3NfDeM1SsoA%2FagIPcM33tWjLjcD2oYQ2rt43ID5%2BFGmP4g8c63u%2BexuNG4MKQe7UoYLsbvRFSXoaMFNgo4OZWjAJSgyEjp4AtIPVr8C8zLVh%2FzcF%2Bsh0miNFQD3KvONUhgW54Bw47rjRd%2FkVrjdG%2Bnds%2FOXNqgwdZMl5B%2F3V8%2BlsWFG6zNY2QSxUVQX1MSDX8XtKd6fbK3D92mNELLkh4wFxivMYMHlG%2F%2BZE4ImfzpagwqUKbKbwP7y%2BfaG9hp3ho4st7M6q7PODvtLrJdAfzE%2Fm56oan8sXh8V9a%2BD5p8yc%2FVCGkuE6KW2Xn6SEkCIQDObpdE0BYMIb2mEkFFwxVRctVcxb9N6kXrbw2C5ZdbP4uf9eNKP6P1%2Bsi872s2za46n4P%2BiRiQRe4p3pFtwve%2BhHK860%2BSEqWEtS4HXoZQUbGejKNYQnb4VbDxBW4b9vbNKqu9Lj6lCIWKBlN5hDV7VUNJeVHRlhj81%2BNflHqsQ%2Ft8%2BVWZB3M5WX1Dwb5JDJR%2FDAXJUoCbcxz34LxuI3oWgciHWOstGkk%2FNpiyHr13kp35kifcVScoc843iubRCDV6UgNijRjsY%2Fgj3SrE%2FSiMktplW9%2FxG99se1kpdZwlF3PSYjjp7u26rxBYKg9SekuGPBFE57M9ICNJPaIGwNc7LVB9qkfBFbWHfVSjg5SCo5h2mJixOsf%2BJH2KsZhZY5nYPUM9kDNgmm47gn002PmcNkHBpGGa0tt778bgJHtajZAWMZX3rb68dLFs9kiipGdwqA4py%2FMHy1YAP6hv%2FmROCJj9lUKKyzxTZ%2BXW%2BYn%2B8sJ98dKs6YXdIP53VWZ3VAva%2FeplAf9XiaotULpd6fYyof1jBvF%2FMr2H2YKe3IlYL9jSW%2FRBG2wgh1X4a0%2F%2BpqjRjY1KPsZCPvOSiFVtl%2FSx%2B3o8n%2FbyaI%2F3k6d6gOgP%2FcOybqhc4pgut933L6QSaPOzgrB4D0xHtjQ4pq4NRFIuNt0IGTCIJUBwuXGvj3uOsktH38dmhdwixIGnwCqLjPdVbpahzlX6Bj5ZhfyX8y5rlm8bPdYHBvwKP%2FwsYjdDXUYGacB%2F34L%2BM%2Btb1di%2FY6tNPfeuX5MHAv2%2BY%2Bso%2FHD5LTlaevU5bNoUNEfsYoL7%2BSFFk5iiDmAH7Epn%2BQPxKWt25Ta2M9ni6Eu2F3WgUOa0XIfhtXUqdrMgHWYcEXTeOfFy1pDfsz0gI0o%2Fle2eqj0cDAMa%2FdtgU8BwEEaJ33UaIU%2FgoepKs30gdZBZYHv%2FmbXnYZPeWwX9NtoZr%2FCPkSrg0rXJW2ARaWTy8lZEaeu%2BY9c1vb0ZHTn%2BGDKhLQy0j9udqwNhl1llM5cF%2F%2BYT4as%2FCRXxhw23Yf%2B%2BjMfvl2o4Xf2d1Vme1YCovsV4C%2FblNSAYK10dF%2FZMK9d2iHJgqmvpxmrqq0tXdVQwMWIwHwg0HCR7Qv0fFaFV5cbnv3NFDGgosX9FFbaFD0iLrZ%2FHzflLSjyqez3K0e1Hi9Zmkt2aZQthRw%2BVfaL3vT51OoLnDbjgLGk0A84r2amMj0dTbt%2Fqk96uK8ggGorhy0HHvBfblxvyGNW3sEIOZigbvHRIoZe3FLqlzKTdEeKnjCXqslokH6YdvGj%2FXBQX%2FFueF7cjvrRkoR3w1cB9vovO%2FKcSCLOAaGEk7%2F44q7V02dz8HA7o%2FAtj10krXSg8GI2sgmhMwc6w4oesYzksQv5JWd07yK5%2Fj%2F5WdgbCDuGltbWhLpW6aAENyGAl6%2BKw9UrpqGK1hf8S%2BkH7I985XH7EfzFEIgB4FPO9PFQQAjlbONeogRg8J%2Fs3Z8nAZmIqQ1zSvvye1tW%2F8o6b2J1nLnBVLnNsadGac0HJeqsuqbQHG1F5%2FNhkFz723ybXDjV24GnBi0vhvEvwP3fnVOxcu4gsbbi4cex7cek%2FMfrnslzukn87qrM46m3WetJqjV8lofUCMPk10kor6oYiWF0SgYQg%2BeKlpBUCPq4y%2BKl%2FokqaTjBLEeALoT8K64qZw9a0VvARYvtyGafW1zvpZ%2FLyfJR8uSD8H8DrNkH5yXp8ofrGYgMCf0QinGV8XLrje1%2BkEmjnsKc5S2BTrSJx%2BXKuPUB%2BpbuPtHkLEaMG9F7CVNd2xSvPRYuwwKo1D7TGqorj0viQJ1cuNbukyA8k89of0M9IiCyLPyMB8UaK6q0XEV8Z9PMf5B94EnsvgAq6hMVqmwpcA%2FPsd7EHvUxJ4JMcWtr86LEXsN2m6I1V%2BC%2BSrmzyq0BXqFoMYur0J8StHPeFzEG%2FCroTUqJ6aVbNLxhtBdypmO2hCxPfTY%2F%2FjEmxs%2Bd756uPPYy46QF6MROsHoUqHxi7fKIDhXoJ%2FcT8C%2F2ZsedwAsCC79K0Xk9FQWwP6XX5aGyItLhbSk9QW3905zShPiUzr%2BsmQFJ%2Blqu9bqeNPSfA8zNjFH35OTGsF5Dn%2F6OvDg5wQ4Z4mx6P1iK%2FzlmLDrReOx0Klqx83FIQd7N9ZndVZZ53prabykzEHXckROhLFEU1QPxRRlrWOUAPgnBx%2Ffph0U%2F8EyEDyusziBfqTsK6D79u1Ndn1lbtGakWvz7X6WmT9LH7eDxEuRvph3t886cdAsuvjYy7twX%2BKy80dNGdHfVGh933zrPW%2BrlhrAWdpUqcwyDD1dq0%2BQn1qmwSeY68IOHLce0gWSeM%2F2W2P1scOBPt2CcTS0qL0viQJUW50q6UjZIwy9gdttsW5A0YGFB%2FyeDcFxLdJHXUR62bcxzPgv0rScW18IdemqmhwozbBuGhuBxvoxT6eWME%2BNVbSa1lUd2sPY3wqSo%2FwuNmAyWNd6Nqnoza%2BkJMH6famOzMPvr9ru5JPgRJEi8CqHSP7HEjQh1Wurjx1A5%2FUonsc6Sd7VvwHQ%2F8xxlhfX98%2Bdmg8AK7ieBnxLwpoNZPhI7A3afw3Av8gXxG9ro6brCo8rFzjfyFcqj9M6%2F9RDj5l9iC%2FPX2sstMRlZDowVXw%2FP%2Bzd0axVV1Zmq4QoCSSipKoiiiiKhIPZFCI1EGKIA88uBIJKQoK5cSUiUNHoqRipPBEhTceIo380pabh3YSX2A8D2C1mJk4QuOKhhnA0zMeAZVqm5qQkLgExAXlBKew4xBXMG4P6r3W%2Fu7y2Tm0N9fnnrLVvddDV6sK37PPvuue86%2B1%2F%2FX%2FNgYUbD83j49W%2FAdBRa1uY%2F4H0dmOv3Exi6%2FlDz6GDLc8OP5vX2%2B3tjueV%2B%2BXFClSpJjfk7NBWs3ap1JZNI%2F8FUHRQhXeBMKeBDI%2F6ADhmQgTCLFDUBBBiSD4SPujQH8T%2FHFCP%2Fvp%2FGfAf9DqK876Wfy8nxVi4QLpx87750H6gV8DyzSq2xnicsB%2FRI5akTDEIvln8533tdUUwVkVL%2FUjo74KdA5%2Bh6bW4XzoOhD8QetFcPiOgHtvJAt6knPQi%2BkxYuz7K1X0UVIRLUa7KOWG1iXqAXwH7H%2FrWkTTqSj492dpHdQrrXKSJ6wl5mtqVx8H60jKi3yQ%2BsIqv6IuATL2M7gV1fmnhg0zOAS9g5fOgf4dklfgq2WezGDsZfzIfSgaNwjtIPLoRjHgudyi%2FrNub20lqVYQbhWIQIl%2BvE2C8ADUoEMiubjNtA%2FgogXg8%2FbXrhbtjpF%2BwiroNOhfaG3UQHp5JG81wL9e2KF6AKtUGbITjwF4L3PL8sD%2BA%2FlakvmvUOqAjHVLOZYW1vrXzWeMW%2FZUUwAGa6B0BAequQmVCz8GtCPE%2FuEP826qYfS03K3pD0K07VRCVij%2F87b4unfFQ6seX99QleF%2Bv%2F9UT1eHUMoc9l%2B57HspUqRIMe8HJ6OLzVWVdE%2BUZU5SLVJxS8rGbpr7OuaL0A9a1g4Dgb6yjaZ38FlX%2Fb2dSF2Y22Yrs1EVUR8M9D2AlYVZP4uf97P0kXVq4eJJP3bev7LmOwqxuYH%2FOTaTNxjdKYmIHHWmurhhwwQlz%2FuGeO83s%2BgfURMDOsKr0E7fIRyVZoGOHzCn07crg8PhI5iyylz0YusxmpZ6E4WHJDrhPVW1u6iMJDVcbQ6uCbOjLLsepjjQX%2FT6j7vkZ%2Bx2SkCeKWup%2Bng4FBLHOpLyLbgs65Ojng6%2FDgrLY0m6xhSLtwPwnwO9n1wW9C9kjx27GHPVR40%2Bm3ZnHlmi%2BGMamxSA%2Bz3Pxeo%2F6%2FbWVJLqid1vFS96Ztl%2Bb%2Fos6gnoIBC7dR1N0pdmJoRs7OjKYv8bw%2BcQdTHST7T6OAv69%2BZhvgaS8sOb3eF8AY1ztyd5cgDrVg32Z9g3QkgL2YKVjKWvJhlfYef%2BwD8tYmlRsPX%2FWwpAnf%2FvqGgKoF3xXaWjlqamZhN%2BYhw%2Fd%2BwS%2FDCjPwh5%2F7QI1GfeQLTtzD%2B65iKbj35g5eq16zdtfsnLcB99%2F38J3f9NlxI%2F3ZCwf4oUKYo%2BN1W0kP6dSWQgD8dbg8YJQRuNF5lq6HkVhVAeqMsfs9Jo8sifly9SF7htCobaU52Nmj3oD4jhxVg%2F5fN%2BeJsVIv1s2Ymzf1TkI66IH5L%2BI5tJU57ulIuIHHWGvX8jsOotdd7XcJZs0j9WIThoz0S9d2M8TZYyiyIoQCdwkVcUgnWI%2FW9gK8emx3qMoZZ6U5NeeF8GwspFm7dJtou6lfdbCq4JxCjLrgdcVrW%2FPSj6j9taZAL6FRQRzVOD8e7ge4xgnb93Kd8sdgfKFsEJpHDgICJSALJisXIjKQPwnwe9l4YF%2FWuBpYwe32pA6InRo5e3eY0bD%2F1dEjDoeuS9KuabhmRPt7eWkpRZnd8e79Ye%2BjYBoEj9qNgkR6csxCv%2Fo0ej%2FHTNjF4WIjEpd4Soi%2BVjtPoYAP3%2FtU7AWw3UTA9HQDD4V8sg2ww1urLKdNp%2BELHcpMKsJlmnnCDLxfgKBfiafxrSofW1tOBnqZs%2FICkgpznqIakpoK%2By7XhSSrQ0%2FszpriK4xK0zjp87dgluPvaD6N5vXhN6iC67jvqs%2FPcU2bVYfC19cNWaJzc0bG7UloVL0xMn3juiHEeXEqt%2FmLB%2FihQpij02K5xUt%2FPGVKDkBSGwSDUkT3R5Ai1H2JQA7o9CY4BWjln5N%2FIUtvfNwYpKXeC2qfNuRkWArA78ZOK0EOunfN4PLOGipB%2F1whkYjoh81EL6R7mCzTSh%2F6jMf6CrPhd7P7DqLXfe1%2FCe%2BiAN0Ov9uabQIU0oBY4YT2tpKqE6tCirCyCSmtPb%2BmRx%2BJSXV2LT4z1GtNRxGHA4v0nSPwth3X%2BjpGNh%2BwvSFEBo1zSIUZpdD%2BD%2FaNWEV2CDCL7IRlS9kLybtqZI8D3Gsc5%2FOaC4DnNlPMDrEEon1IJJzyrkq6ZlmuP8A3oZkhGs3CUsLHReZLYX6iIyN0h9trZ7UI7GpnApBPPR6qbopttbm0oXrfeK7AgA1BPrmQQPR9BJRo89yYzzfiGwTnqqoi733331cd4tQEicr8l5EzUQWszq0d7YAo1TyyA2g6nfsDKdiuuNWT3%2F95kk2yP3ylcI8MU%2FDenQelpa8LNk8wfdlukZhr5WTO2JY%2BpQ61MHsffbwDM1YHjsEtx85Afxn%2BXZgemfnre8ukNnyjtwq6bIDnoqERHuNes3PbfFHxB1dB19%2F0TvUXd37pRoS4PT%2BUl8%2FxQpUhSUSbPxRfpEDvnDE0Xpk1kxU6xoRevzkBArOigBGBDYzigA8EvbTPwPivx537R7Vm6Vgf0mgns6P0jHmmYk4L8I66d83s8RSo%2FipB%2FxwvkiJ%2FIxT9I%2FbxxYPIHQf1TmfzrD5Z%2BDvT8eUFhLnvcF71EjVXu9cnjEUZInU3vjaemxbv1Zk%2Fy%2F1uizmlMJ1u8ez%2FJvkFdi0yM9RocM2mjwIpLr%2BvyqdPuzrVu3viwQVlC2l7dCzV0qBbumQYzS7HqgY%2FcI1kLGXQVfZCO8tEu2JzsTt1wOCWICkl%2FxCukM%2BdcpFJqxQn%2FIIysM1X7yoPeTzx367%2B1WFpbHSza75O%2FapD5l8siUhtsU7l4VzEerm6L7vtr9OWi9H3%2FXZSUAVFIuLzbJNDhPQZ1DITOuTd4O6GA5UZdo9XFadE912Pg1tC6Z3wIC83C2MkigP1O%2FVpmygrjemDUN%2FutskumP8I3wK8QvmMZ%2FvS0t7ps1RznX53rjKq8FiVVSgGPqQOtTFQC84zwDz1YDUvhw7MLNx8H%2Fe0f2e4e0%2Ff49KueAXsZp5zapf%2BjDBBZfMRHuzY3oBVe6e4%2F3Hu2SYwqh%2B69LGp8pUqSYdwDGTAik4jsWIH9TiGiDOQGSB9V7fg%2Fkai0BeMMh9%2B%2BaTI0t%2FphVkFCT4C8TEpL3DdAfBrajTWsX0SH4ZqgIodZkAdZP2byfT0c%2FtcvXg%2FRz%2FvOipB82x86a40L%2FNOU5caFHd8b%2B%2FRzs%2FRsBhbXMeV8iw47SXq8SDcgkZFQM54B09tDoA22pAqMSrAeGstx73XTY3rEe41kh39LgVXs87%2BlLl3mnQlj9FSnEQM1du4tcE%2BzfV5pdj9mwmfvRfop42QikDWd7srdCy%2BV4CYelqiuiELKsVyg0OzRruOpOwiZzMyh50Dv0p2Hpeqtnq9d5QbWMu%2BYEk8kjR8iCRy1wd%2Bp2ttVN0T0vZ%2B6evt8NaFbuE0Yjh025GagOhkL2CvSH1EFmWDpCBwtEXeLVh6uJPxYdeK03X1MAjHIbEJhHN50dBH%2FYDCpTW0Fcb8wcRWaT7CD32nGQrxDgm23819HSItz8D8%2F1kwImX4EORTCBJgWg3Lm%2B78gDqwGt8OHYhZuPVsM9FfwG9QRdshhLQSmKRJJq%2FHYtFl8rRITb%2B%2BJUjvS8L9BfjymE7v%2FIioT9U6RIUYC58ow8tRBjU67iK4b8wfOKpIA0XvdHO6nweyBXo%2FZv1P7gnJVxK9pdJrTdAvTH4L5JBPekU%2BSWYlSEsaCpnENiC8X6CQ2ncgcPhUk%2FwwVJP0aIeEMH7Saj4j0gOpOith4dEqZzHRR8U9q8b3wu%2BmPt9XrS7k7v4nXoUBbngHRaUVYP0JYSrMens9z7qrzSXfQYB5zLJg1e3LE7O7yXNa1dffm%2F%2FTbXRM1du4tcE%2Bxfml0PP%2B%2FOHtyPHCrRgr4LdXfsnOjJxtTH83Xi%2B3pkgZHUwUo9Q77EVjOcEtSU50vkQe%2Fw%2BLVPXNu9i%2BHvjF8JkdF4dM8bIPeps%2FlWNyT72u359OBOs7LSjqAxUjv7O5U5KUGrROeaW4zUEWTGpLsT6GCBqEsEAKPT%2BfHZU8INlwW85gAwe6D6m2bQqAIM7bg6NuXqD6oP0xuLOor0SpK9%2BnOSTI6EpejFN4Cv0B4qUQe1%2BW%2F%2BhUwKbJMxfBMAIGZtKffYwDN5QA1ohU9w7BKvhn8t2%2FXXyp4SYTstubAUlPyk%2FpkK%2Bh6R2l0%2Fqqsb6K9l2vObEt0%2FRYoUxVuDyH0b%2BQfk74ASimhwKIDxxE4tBIxcbWr%2FcggQgC9DQq1msYPQdjD126SWOxUVajNdOMC%2FwdV8Z2TLwrF%2B4P3Uq%2FhYliH9jAjZ10g%2Fhb5clFIisv0AxUDsh5cUIkYlzvsWUUQ9%2FfF53%2BXcJxmF4E6HGk%2BDc0A6BzkSCNAWBOuAex%2FIK0V6jNbg9YWHintK9tPaffttkp1rOoTRc5zuYoD9S7LrMVz2P5U%2BIvWH4FABPopLQzvT22M59fHY1%2Bg3DH5Fe11DJVIDw9X8DEoe9A5%2FNTo04IA30x%2FmVG5hGo9ZyH3py3yrG5J9rcQfrd4lKx0ABawhtUMNmpH6FGa85qwndZw6G2SGMvehgy27WwAsTxDdsN%2B7%2FncVLb7m94CrdwB%2FZRXgX%2FF2CesPNiP4QcSGi%2F57bxejtsqqUakrdQ5GwWCqaqQxp2cYUWTzPyEFFP67FEAAgEAAACk7RnLCPAgLHx7B0WpY%2BiySPTo3rYdOWmFIWyKUUJoITqmjrL3K4aO9vz5m0H%2BLa%2FuvSnT%2FFClS1IEU%2FA42hN61VKagAC06w%2FvzFgC%2BwXiAfUYzIqf2fzADvmxeeNbaRs4XgP4Y3Gv78B3VDTFdOE5IIfnOhW6v5Wg3ZQd847rQjoAwRvoZUX29AqSfoDZi5DdiLsNmZsR%2BsFeWHh2V1%2BKY9zUvNFxZP5Eup7RZBWOj655V3ERqCmX1EG0ZwXrma7j3KKvU3uCVLjPD8Tl5q%2B2CNJVY0D84ZN3F6XHD%2FkCM0qZS5IxCYAg41P1wZcUZRymslw7HKP8h3e6kACSZY5Ztr2%2FoQyK%2FwnAGJQ96hyfGhx3w7jmi0x%2BicoPOI8ETTdabgdwzkVZ3bT%2FhtwCg9GqR2oF9lpH6VDE1Pa2qSFF4%2FvKXU5aNTC%2F8qiY62P1SE1MuXXQ%2FCxbg8P1rO3iE2wN8n6wC%2FMsirP4IsT8%2FiHgpeEpHbdVcwVUbCInKeRe%2BAfCqCjf%2B45t%2FuZoCnPHQo7Jw9%2B3SoKmZkRwH%2FckDnnxTQeGz7O4JoKfe89PGIuUkuy0VBltgEkozo0GjKD6v%2F%2Bv%2F1nPkwCz0X7f6h8u%2FlyJFihTF5UAqKvetJluOcXNQ3pv21BSePm0jYDzQhuFfOP6B2n%2FQYyJsJMDAENAfg3ud%2BsVlhhnEyAkp0EYLhWDgtpwo12aAzhWkH%2FT1CpB%2BMqwouKYRYkdmetm0b2xT75uLvT8uBVr5877haldKt5dX%2FcVz%2FbRZpdMnKRsqbpKlKLwHaMs6fV9eynDv759Hg1f5AyaLG8pbMbGnxIKr0lgFXg0NgP1Ls%2BsBlIghmp6O6HLckV2TboQ5SlmtVwms6qJ5r36y8rGy7XUO95B4%2FU4rDPhledA7%2FPWNa0OD%2FccVL2lnO6NDxBC2Z4IEkDuH%2BJbO8%2FBOshIACvpGaifwSdyeWUfHAbcOVxRe%2B2YmyMauDrB%2FcCQUrYmrG3GZBaA1JHBXrr7T4K%2BsgjKIRdxxM%2BI%2FCPO91lFbbbc3NcusfVOTP%2B%2Bi6W1GGvHGf9HNv%2BpToEIPy90sOUCgS%2B3T4LBAf3%2FrHLtcDQqfWoTfqtPGzkWgxZ%2BNswWMUTP0ELwqomJdXd4TH%2Bi%2F8r7U9k%2BRIkWx4MS2op66mGx1yPPbgxbaqK3tEEaDOIRPOhx%2FKgAOAegxBYEYEOPEwhI2G85dCKZUZbe7mUEMTkjLlNqMR8kGw%2FSTIf2gr1ewHczIL%2FOSErdyJUp%2BMxkPBmqxqXOx97%2FWDy1h3jdGcbBX%2FfCnvs3ajqQ5grMWpkGFyGwebY26PmmOex%2FvMZ696Bu8FB4Y4uWvCdIUYoEhjEmlp5eL%2FflW1RBNTkc4zXuVRQWOUtR6u4y9Fc17%2FGT9xwqYrGeoOFN0hXnQ67b42%2FGrnzrsd0xAkxLr9wQ6QoiYdXVbEkQQXy10tExW%2FhH0bVbpDEExLWXrOHrMreNTikIyg3ESsH8tNXFmI1jA4QMdTG7ZAmwZlEEsIr8ZsRWEvtenZdSWdrv%2FfM67aHrbV%2Fh6pPFffPM%2F1xTo6Xa73wbLJwgcKX0a9DnoP%2BpvnWOX%2FkzhU8MRG1vQrqctlsVsAdifoQd7p8Vbcx0qvm3Q%2F97vpUiRIkVdOMEe%2FFdcI%2FZn8h97d%2B2QziCTUsJjRs8%2FiDZjU3uOv71esLMBBOUP3Om3HEJ3xZ2KIoimhFGOSGUGMTwhLdlkKx5lmYyFTHJIP%2BjrFYOEaKCjlDjHfgabORE0%2FvHhnIO9fyMY3S193pe4P%2FuqHxn2MKeCpHmu07fdv4eVl39HtCWDAwH3Pt5jVGHBS59Zf5ULO8Sfv6ZADLnmjVmEgTBNmdgfUKIofUBOR5jjeaO6EThKBbVeIHUULSv%2FUY4%2BPEmwvqHiTP8xtsI86FUu102B%2F2dO9fZ0C%2FINdIiUEXbgcHdP70mSIIL4aol7fhAA0C8EfesipADIDEHty67j1BlZB0UhmYGQVA3Yn9QMNkIX0OeqIFkAgwYEy6AMYhF33gxWENeLVpFT2u18PuddAnwZqpevMC6kWnzzr%2F5J4P9Jt%2FtdzPdmA3Zql0%2BDCx76Q%2Fn58pKqhdrN1zRfdep3ehaoNSdZHGxBoHa04m7A%2F994%2BlrjCwn6p0iRok6BRFnnd8D%2FG69pZ9Ck4AAMu0MlbtNRoQbg9UJ%2FX6gF27JBT5ROU1Z3RdQhRCdR2KK%2FCI9IpzKd6ojM%2FuF2m0xdxLyfuEj4ueG4qWbtdlhnL92Ye9YMaSBElnhPG9Sak70%2FEYzuljDvG3%2FVnx9WmKOdPiTN93w3W73kyQE548%2BjLRVGD7j38R7j3jZFWNX%2BaoUL8zsJrwnS5JogDCF1l4n9QwPcCwN9ioSUsMdGnGXgGYH7oNaLlZUUFeflY3Xb6xwdDpq9F1thHvTqFPf4ranxkcvnP%2Bg%2F6ZCvw96VTHR1d%2FccO36y%2F4MPh%2FhCIoivQFaOjbKIHlkEW0%2FTxNZx%2FvKIroNCdFQzQ7NxS3wpkY340%2BjlC4Nn%2BmQB3V22gMwyKINYRGQz4ga7H1Xb7Xy%2BnrExSMtQvXyFCBmUhP4xbRsbuzr0odv9Xnfz5ICFu2%2FZ%2Fl6fBmOTAv01Zm5c1WOX%2FTVmwgqz%2Fv54oM%2BftlgWswXm3BYMPUTVfoS41vzi5k1PJ%2BifIkWK%2BkoBVgD%2FQvtR9g%2BdQaQL90IVEOX%2BoJdqM2z7mLB8p9OY%2FblzVtjQWlCYBooSfkQXWocmZTLKjkjp9dXC%2BoGtvJh5P3F70Eufn4%2BZatZuh%2BVqikBlDkSfA4mwflDleN%2Bg1pzs%2FWB0t4R53%2FirvtdxHK4JzOk%2FSZ811%2Blr8%2B%2Fho8f0jD%2BPttQS1XB4%2FNKepKW5Sn%2B1euG2O14TpJlFGJjRloj9QwPci%2BcVCR3tlmAjRhl4RuCeWq%2BmouL3%2BrE93fWOowLNzl2KrjAEvarfOuD4K%2F80%2Fc3olaGPHPJ12DsbvSdO9p8d%2FGjoyugEX0gE8RXJyi%2B%2F1kWc7ZdFyNYTPdl1fDOt62AG%2FLxmhs%2FGuJNTZCNcwTk2cvmCLOBEry0gswzKIBYR2Yyowe7xgYu%2B3W6fH5x3TaJgzFdYGvrHTOPa1xOjVxz%2BdzdPDljIfbvt1zsnDazu6ddjlz21ZAJb4Ee2LvrTltksZgtMUDhQO4rp%2FDe%2F2uKa%2FhufevwnP0rQP0WKFPU1Aao4mX9HXul0%2F%2BHQ9EGHYAT57zfgv33by81AfcJGxmx0yrQ%2BOzs6mQYOwnRQTPBHFbDVf94LNYpgYCC7DfOkBtYPXOBFyPuJk35wKf3CSD%2FFDV%2Bxw9IPFtYtvB8gfQ4jYgfM1gfv6di8L6O7Zcz7xl%2F1HV1K9hin03f8Tp2%2BLn0Pn%2Bg7I2f8d0RbzmnCcHj80qs3gLBo8F4Y5MLdXXe8JhAjQBhC6n5pM9css%2FUPn%2ByPgoRO952UYCOAJCZwT2LUVFRcvqLbXu%2FoOy1N2RvRFYagV5zb3mVydWZq4rpDvg57Z8IBvo%2BGhkeuT0zNxBFf8ay8Ov5nt4jhIVmEbD3RH66DmPnmmsyQSGZoNsadnGIbIdXTjW%2FGZAEOBNsCMsugDJqxJYzWvhmYX6ii52dkA5%2FPeRdNbxSM%2BQpLQ%2F%2FYaLsk%2BPamw%2F%2Fu5skBC7lvt%2F3cuSXC%2BFWVDpNjlx21ZAKnHxgP%2FkFPWzJZzBaYoLA1%2FuPvhQ0Nzz0rTf9HH1yexnxTpEhRZ%2Ft%2F6QU7UHbQNSTUm7yrS4eMEEhREZ%2FdkHxCrWRmyJiwNFkgrQH%2B7u%2FCCWEMAFpN8AfvSwf9sWhCDNGOSI15UoD1s%2Fh5PyHp52r9SD%2FYYXGkgN7GxFCezEP1YQb0BrXsPR2d92V0t4x53%2Fir%2Fk3pwMur%2FpsJ%2Bqx0%2BoJ%2Br76HL1we4Yw%2Fj7bENzOOw23DFGFZg3fsKhc%2B0Ru55rQhDCV1r18TuWb93I8%2BufbV6BUHhiX8ogz1BObGNRYV54avy7bXMVghTdnICgPQ2yzZgGalIK7b05Pj10f%2BkI0ro2MTN6n%2BIoiveFb2D%2BohxM0JWYRsPTE0bOuwhbijisuoR0lm3FU2RjbiiPCmXOH555sTY6NXWADBMqz8sCXMYzN4frRbNtjnc8bGZE2gYFwe%2BheLXUuC6Vvu5i0HLEauu%2B2%2FJXdOzEzpnLiYhuixy6bw5uOtf4wHpYGjNWeYxaGgMI3%2FWCz74eq1TzyxxjX9l34vRYoUKeoWaIkJAUPEOxzoFNZ9a7s6viP4A6Rvg9pvUaU47FWGT2gIgKkX0QHXFFMZFBffyGp9NqvwIGKIdPuMIQoALZ31Uz7vJ076uXquOOkn35MzpW0b4w30q%2B%2Bh%2Bpg1oP8SqMV7uu7zvl8FmqPFXvWuamx7i1f9twKzrNMX9Hv1PTw%2BaXArh7Ya8M2sBWFZg%2FfGt1z4ww%2FmvObUxLUhQxhK6n6w1Pd66H509eupyfExCRYVaLsgcF9T0iKv%2Be3EWB2DFQLN4iu0r2TDT1024FY1%2BClc7tvTt4LgU%2BOIr3hWevlMQX%2ByCNl6YuKmrcMWMiK4W30jNDPm7eLKRtBMcb8LZbVP%2F1OwAFsGaZBdQs2bAb8wlw1W3dhkTaBgXB76F4tdkkAJTeRANmxh9iy4ovpAUvfs0WOXVfffMy%2FjQfmdTbDVYRZPZQSFafxHYsmKhx5%2B%2BIHU9E%2BRIkUp4F%2FoKq%2B4xu%2Bhtr1Ob2eXQ%2B%2FqjongD868IH6bFTP5flj%2BVABM9mYMbfaiMmGmMggNCvkf6K%2Fe8u6YGjFEXvgBQ7QA62dR837QrIf0MwK3YR6kn7jnv0P%2FSKbgXLk0oLDT%2BKfsAmrxnq73vG9gJlvwVb9FOQ7gvfGp%2Fz9tnb6g38t7%2BM5oi%2BHKJbUiLBq8wq7QBu%2BYNFjvfE26zEMfnjaEAam73ECZlClIGrEEi0LbBYH7GooK8B7M%2FLIivkLrk0o2yLNEYLeouEDryAeVWATxFc1KNc4CfM%2BxQTO3FHqecbjbO0b7zIhnY2QjREC566jXsxm5DhK%2F81a43J1dQo2bAb9wrmywCXdTMC4T%2FW963pJAR5l19%2Bfa%2FskxGQ9XZwCpe3boscvyeRsPhr%2BzcJYYQWFxbkuRIkWKBQX%2Fh491ecLPW96u06F3cSwywZ%2BDIHy4Phr7bKQxcPDaI6MAKvTzcmOLKXajLw2FCPXDg0ItMpn%2FVhUeHGAyCuwfMEQLsH4WM%2B%2BHlwakH3%2FW8Xph0k%2Fe%2FhSzJFr%2FKmq5xr%2Ff7hWsQvUhjX%2FKLqAW7%2Bk6z%2Fted3%2BEL1jRV%2F06z3EA70m7946dvplcoy%2BPtu6pFWHR4FV2BbT%2BmX%2F5mpNjXn2w2xAGpO5SA2VSpiClPMq1vgfQdkHgvhbmE6qS54f52FKgf3yFLEmyYfNL7hRRbdx0zvrKKKA3j3avu0osgviKZaV%2FrAG%2Bx6gD7wi7BXqKMYGKnrVsKZgZbESjuKS1qcysG%2FHQCYPxybDn7Q9G%2FHHZh7aEyGZEHAby2TDjqVXYlqFgXBr6v3%2FVv5tNAhExpfRh%2B3PAf1y4cPIs0ETQumcTxy61N3Hyv7PcMIUJCqdIkSLFwoS1Yo8q4ceZ%2B3q7TrVnUYRe6RJpHrg9TPniD2Nihsz5vuMrAGQWgfvNW7dufXmbWlvaVIB6B1RUCtlb%2BGO0ry%2BNwOCeLgnv%2BwKsn0XM%2B%2BG4GNIPZx3PFyb95O1PQf%2Fqsan7utm19h5%2BaMUDK1cjkYEm0PQ4ZZdBrfrP%2B2q9hi9YobhnxSOe4wDeA2cBcCKNvmJoa4k1eI1dEV44hHjjorqiQogdMYRRhvsRU5BKhAAIzdy6Sev7XdN2uX8%2BqpJatgu%2FCXxVp9BKSium%2BAotG9asb9iisFucW1XKUUBvhmbjCTjK0ZJKLIL4CmWlP9AEfAsDbAzwHS5ExrAFeh7wVtFuBnxdsZWwEZueVzaletgeO67aQhcuV9nuEnJ9OSQb9vMqs0uIbkY8G0gyihulVmFbVnrTe%2FlKSwK1L6P0cdtvN253L8BfpuDlWcA5tNQ9qzh2qbHPkv%2BdTd%2BmwmCYwgSFE5MnRYoUCxZGwhbxsV%2B84p7cnZ3t2tzfp8j%2FIKLpu%2F1UL2r9Eir72dSsbX0bCtAKAJlFI%2FqY0KfpAXW%2BIx%2BrJoivtPB2ghw7mdFBB%2FvDEC3A%2Blm8vB9Gcm1QbIQp2xrYFzV6%2Fg%2BPT09d9dB%2BlyP1rn9i7eo1TzqYgq2yuAHcGh0asLILqFX3ed8%2FnNV67dngj4pwHMB7RwRn0Wedvh1p9BVEW9bgDdkV41zZYsZ3Vt1BQx8WSL%2BKIIzypiCVCPGhB0JjooNC63s%2BQjeG94SwJx%2Br8LauoUOqg7WscOmDj61T2O3SQb3VegX0MmCrweitoF2pxCKIr0hWbpL%2Bs4Fvmf0GfOcW0uuhp%2BLuLW4G%2FJH7iqyEjVjl6o8tzdpbEVsHdRXoO43ODcw0d30Zj%2FFKVbNLsM0okA0kmS9uoFaZbVmJESaB%2BHnL7quuJzd%2B5crs3QvwP9ErNmicQzdulrpneQHjwezvTL9sX2EwTGGCwilSpEixUAEc6%2Bw5of3mltcdfnpHaf24e2GXul3dSgHxgHpOAVxJgBwQFYDShCqzI75EKx%2BqLX8%2F99vS4p7OnEvjLZ9jR9IlKcD6Wcy8H6A5EnGQfgqoYURP5EX8ehJSj8h5bH6u4ZlNz22RwVVslVWTw%2FVZ7XA6xt7%2FmtHd2ud9i9dr1oE3vAfOEvw%2F2%2BGclnHLfKOvONqiwRuyK7JX5pq%2BsypOq9JlfkPKjQjCKGsKUokQACGZTab1rckwb0cpHdXv6T2h8LauofKUx8MVRr%2BTlQK7JR10rqhLQC%2FSmhqIbgradV9HBPEVycpVj0v%2F2cC3qL4CvnML6fIUyH%2BvuHtdnWbAl%2F9w9TqB%2F7oTrd5P%2BGhV4Z5w1xdhLO9RkVkCm1EgG0gyuUuSjAn3crF%2FmASqKEfp47afG%2F%2Fgg9m7F%2BDvtp9zaEmE9Y9T99Thd8aXrRWGDVMk7J8iRYqFd%2FjdoNyZE55pLiNiyvLPaHIKaR%2BCj0QroB7%2BPyT%2F7c70i3%2B2b1YY6NB%2FOlTx8bboftpssNQTLU5HSF%2BL9Ezxlsd2ydiRdEkKsH4WNe8H0o83hxk20k%2Bd1TDsRF7Fr4fHv5Jx3kq7oB7Hy2psEc4MtsrT46rJUcmXXfnSy7P3xxndnde878bHvl%2FHVz3t3gO%2Bz0qHU1X9ro%2FkGn3F0ZY1eEN2RfbKXFM7q3LQ0K5dZik3IgijpClIT4QACAnwsdY32i7zyCy5e%2F%2BxCm%2FrGLpCKqYaVnivwG6XDiiKCejFVEsDuy11ZHOVWATxFYjl0n828K1%2Bb4Dv7EKA3R56viC4e2W95kCW3LfSwf%2BGzY1Z5Qa8batxVC0xOOGdXQK1cJFsIMnsTKGECfd4ErzYbKNrbvu58d7ezN13YWGPj65LhAeX1%2B93pl82FYYNUyTsnyJFigUO65%2F%2Fb6GB794pUj8C302Tc7v8Fyh9dmCLjpGREnwg%2Be%2F2Sj9NzRh%2ByWfo3xCcAKAK2tLskb%2FiJdjSkP2xXYIdadi%2FAOtnUfN%2BIP2oCvvQF5B%2BmLItA%2F1XvOunb%2B7vb9VvTpWXPPa%2FKbL3qslR3fpI0Xjyo9HR3OhufN73avBHdXvV0%2B4F%2F1uHU7D4YK7RVxxt0eD9Lrsie2WuSWfVXVO7zA1SbkQQRilTkBAhAELyM%2B601jfaLvNRldzSoh%2Br8LbO0aUnhTWsENjt0kFOtPQx46GfrU3ArvtQRbvucw3xldN%2FNvCts06A7%2FxCdnvo%2BbTg7nvrCIEd%2FF%2FrduKFxlnN5lZaM1mxNk54iy6BbLAk4y5JshIm3GNJ8NTGn76gu5%2FtSYmNjd29Wdjjo0si1Ol3xpdNhWHDFAn7p0iRYmHDMPT%2F6evxtpLb5C3hQjU5ac63d%2BBWii06RkY93XSNkPuX14fQgLYzDyxFAAH3Hz8wfRhzJH%2B8D52UwHYpyo6Ms34WP%2B8nJP2c%2Fzwk%2FZSC%2Fquun38cEvmUiv%2Fm9PTlfbWAQvZeNJ%2BCrc%2BfuzyjdLF%2Bd7A%2FkBvdjc37%2Fr%2FcHxUO8B44S26JDicpezzX6AvQVh3ZFcGVuSadVaG6SZd5baTcKG0K0hMhPBCiJrfWN9JP8zj6WPeM%2F1iFt3UMVigVU00rJB3cLEuD6%2Fwq6N0XtCJa7XHV4iqxPOIrBXzvzMgj5BfSvFWhp3NzurfOK1jxkNuJpzc9u%2FnFRmxYArdGGjKyFS%2FKXhRbAtlgScZdkmQl4N5IEjy6et3TlD4Zm8q2tszd60Cb2%2F7n8NGt5%2B%2BML5sKw4Yp0qxvihQpFjpgzxw5%2Fps%2BEWKTbujLTdtciMg%2FzXnXzMStlDYqRkb9J%2BGLdndZB0s7%2B8wDuyLAYrt8plYFKH0q8vczkqPK9Qf6gz8DdmT5rJ%2FyeT9x0s9wQPopBf3vwvXTHbVcPCfCM3qEc0BPXz753Akfquy9FIEvbZatj9SMlWMnJcLR3fi87%2F%2BI%2FFEB%2BC84C%2FxPh1PvT4vUfKMPqFNfdkX2ynZNOquNDmK4LvNDKyLXLGkKEiIEQAjjDWt9L53v3T%2ByRj9WRXzrGayQiqnWFS5%2FwOHupzY6%2FK%2FQL7M2xMgE7T4rlVgU8RUH34JAt5o8wh0W0vCMQs96uzmxEz%2F6yZonntqw6Vm3CMfyk4cwQUOmcatsxYan1hZcAtkQJhlnClCr%2FsI5f5%2B7dV%2F6yPabRt3uzN0L8Hfb%2FyQ%2BunX9nfFl%2BwrDhilSpEiRYlHwfhS4DgrdQ3nQGoqfaM4L7EepQgjUGBm5KUaUIk70Gom2vZVuiol9BsqgjAToAJaX4fMunEb2N9ulgB1ZgPWzqHk%2FyzKkn5HzfT3lkH5A%2FyJ%2Bjeunbv35wX6OcOT05feXLojwIbL3jQ2uz7os4g%2FRdqjbRzC6G533jfxRIfgPznIw3DqcdN9ac40%2B0FadG7yvZq9s16SzuslBjEiXuXwiRIMHQijxvli89b3Uf6zC23oGK5TvCl5Ozbj7UYf%2FNyj0y66tpVE%2BVNDuE2tcJba07G1%2FQBHoMw3PAb5zCxHY%2FWOgZxmxZPkDDz%2F62Jonnnx640ZXAsh2EHJ9t4CNshWPPVp4L8gGkszuskCSFb91Sh%2B3%2Fdx4s2SV3b0Cf9l%2BfHTr%2Bjvjy6bC0GGK1PZPkSLFYogHH%2FfA9dQ5N%2BjpFVA0lDlBc15gPxrVIp2CkZGzM0Uj%2BsMPUK2QDiutThP7DD3B%2FOCVzEUK8r8C3wcnGCX7gz8DdmQB1s%2Fi5f3gvQrp57Oh071d5mpQQiwT8WtcP1FAHBgc%2BI0e5vzuvCrg9HQjey%2BaHK7PGgH%2Ff9NeDRvdjc%2F7%2FofYHxXHWYr%2FrcNJ921PKY2%2BPLsiuLJdk86qO2h4YKGy1IgQaxUISQjwod1bh49VeFvPYIUbC1RMSx3%2Bf0yg38bM2gTsug8VtPuwfR2lI9Afr14L%2BM4tRGH3spJR4dLvP%2FDwj378mNsN2Q4Lub5bgGzF95fWPcm4y%2BJJVrz0Wb2WG3frkqyyuxfgX%2B%2FtZwvsy6bCEIZhihQpUiyCALi2icr8J2dV%2B7ziQ2Ymac6rL6T153PukHIQgF71yeOQnBklI6BBoLfQe0JNV64E1vszYrkqZH%2Fwp7EjI6yfzy4GrJ8F5v1c%2FKwW3s99qzc870k%2FjlB15ni3c1rD1aAs8WtcP00BUalcDKWKqgqy96rJERsVeT1DX7DR3YJ%2FVDyWgP%2Btw0n3raWxrEZfyK6wKxNcUzurpdA6aofDCoQ0HPCh3VuHj1V4W9dghfJdFQG9Av30lgkBu%2B5DA7RbeixZtuIhwPeCLIRFLHe7IdthIdd3C1i%2BtLwk40xhYdN%2Budt%2BvXFZl2SV3X0ZdRdbYF82FUaC%2FilSpFgEAXBd99Nm7y970bueEupKQ3M%2B7sOJZeZHgyBJnXS0QGMNpWVxAxq5DvKnhvhmVC%2F%2BblfWdml5dE75Hxx0DVg%2FC8z7ccv5h5D3E9%2F69i4%2FHPpupfVXO7eU6P1orp%2BmgMgQN4OwInyI7H1Mk2OFK1sCHkXDOmqvWv%2BorD6rdTgFi9NkDRp9JbUY7coE18x1VhcaCGk44APqqxe8rWuwQr6rQnfMLRMO7EY%2BtEzwvaALYTssuH6ZSbaYMn%2B5ZIJkVbl3z9Xsy5YKI%2FF9UqRIsWiC9rNj%2Fb%2FliD%2FDXzgb9rPVUD96ILrFDMZFEvCA5B9g4y40IBU2xz7Gwksf4rF4ZXR80nugGt9nRLn%2B4uMZsV0KWD%2Bg5oD1s6C8H11OT8D7iarftL1d8dHZvm%2FXSw3rHilRDwPXT1NARL4VppaoqpjsfZSwtCHgUWDZX%2FMflYayZjuca2g%2F5hp9pV6Z4JqCsVOkSJEiRYoUKRY6gGSbGn%2FhiD89feeGvxp3bkjEyNgkwB7Yf3OCUV%2BH7yV0AliGAcTOdPo2NKDJ8fAfEUPD9m%2F5VGqGqYlRV3KcEa6%2FOMHsNtulqDfZ31YdxIz1s8C8nyqM%2F1vH%2B9nwGMVI7C7etHDa%2BpvXR%2FFwcddPU0DEuM0GYUX4ENn7uKZfyKNAgb3AH5XV6BMsTpOVRt9fuLeaWn4pUqRIkSJFikUVy1f9lbJPBP1f%2BvLPU7d8AOfp6k%2BOj14RWk%2FQ1O87bd18EQEC1gfHA4Rgfk4JCP7h5JgTmBSykXL9xcdzC7ZLNcDmfbtg%2FSwo72dXZkGA%2F7jSUktmMvSXTlt%2FzYMl4mF0KU0BUaQHA8W7TevveihtScij4GZr%2B6MkepciRYoUKVKkSPGXjx%2FI3Kmif6f2fvUGAD2L%2FMdGLl9wsL%2F%2FZEjnP2o8fpH%2FV0KPVQDxmJGe%2F2URmJQxY%2BH6qxPMM9gu1QCbf%2Bk65quWL2wBtT5c0F3J%2FTiHr%2Bxk6IuirV8uPSRUQBTpwUDxbs2qNJSWIkWKFClSpEjxrzlQnPTo%2F%2Bj7zv0Vnn%2BA%2FAfP9DnY39MdCvl0mIKPuKjqKK9VAHOWADNeI2gIgUnh%2Bzjor5arQva%2FtwbYDGpe82CpW1TOgpauXJOdDN3wFNr6pQcKiCJNEyjepV58ihQpUqRIkSLFv%2B7AAErRf9tb3v31yqig92mR8r%2Fukb%2Bj5TjY37k%2FkPDfm9HuP3DYi3hWKwB8AeAOZaVB%2FVCAugP0n0RgUqzFhOu%2F8Sl8PGuAzaDmMjvmZSyIAdxAde%2FR4N7Ll%2F1W6UGGUpMeRYoUKVKkSJEixb%2BVAP3vNfdXGc8duSIGXh75Hz7QIbB%2F3xtZ896dGdfeVm%2FfZRUAjsAyCiAxMSH%2FV03BkAMSd9keE5h0fJ8XhOuPE0yNsLl81Fz7gpK6S4oUKVKkSJEiRYrFjP6bf5Fxf3Us%2Fg%2FOOogO8ne0HAf7f7nDDYbCEYcw3vyq2pnu0RKgzSoAKQFkHngQrZ8hRH8GsZRyFCJh%2ByAwKXyfp4XrnyBzihQpUqRIkSJFihTlo38nAJ9xfxWTr95jDqKD%2FPe4Zn%2Bz47LjjP70k0IYxyvdkd0bW6QE2G0VgI4CHJUPQeW%2F%2F6SP41hKCYXIsX2qApOO7%2FOTHyXv8xQpUqRIkSJFihQpyg402P8q4%2F5acSz%2BroqD6CD%2FlsYXHOzf8JQYlStHHML46rVqZ7rpWSkBmq0C0FGADvkQ%2FH17ujVcLYGllAP%2BwvZBYFL4PolxniJFihQpUqRIkSLFXyaW%2FCDr%2Fios%2FrY3BaKD%2FDc9%2FaSD%2FY%2BKUTnGRUuW4ZXuyO5rpAR4psEqACkB9uqHaOzvdFWEj1YspYRC5Ng%2BVYHJxPdJkSJFihQpUvwze3fQmjgUBHBcbUzBbaWWKohtIIfsSi3YBYl7yCGNICwWS05C6sUFEbqnrHvz0HvZD728SfpYalVsXHL5%2Fz7AxLnN4MwbABlkuf66WMSy2zufppW%2Fc1WvVUyj8A5Drqg2LbutOwC1CjCTIGKluohELOvCyQiR37%2FlgUkAAAAgi%2BzXXx8ewkh2e8fDIKn8q7vGcgyzUnvtAGQVYCRBlOlcdRGPIgplXVhGiNp2kwcmAQAAgFzo66%2F9vhfIbq97e71W%2Be%2FuAFQLcNOTIMpwrLqIgQg8WReWESKmfQAAAIA8yfVXmeKX3d7muVT%2B%2BzBkFaB%2BqYII1UyoXWHhpCelTAp%2FAAAAIHeGKVP8qkL%2FeIleKqsgoil3r84T1WOTSR8AAAAAAAAAAAAAAADg4AxT2zr2Y1bPt6hVSh%2F96P8cDCqVdWI6i0x0qjpY%2Fng9FQAAALuVTHmyX9uy8Fs8aTnXW7Tti%2FJeW8aarARXj43C4RUr9cs0sTNDZ5GJTlUHy5%2FTOikWAAAAgC3Mav3Kkdd5UulTn5%2BOCusqVtcLBpv57peGsdf7opp6DNTRfccBFU%2BtTi9NzGkYOotMJNWLkg6Wv8DrWicFAAAAYCPzrOXc9LxA3uUX6ZGvjt1YL%2F9L9Y4fRo%2BbTb5%2Fc84KOx39c1lMGw0Cb%2B3EQGZSnfujNDH163QWGUiqrl3RwfIXhX63xeQPAAAANimdtj5%2F9QajMJKLvKn5NApHd64q%2F98U4eXL3mgWLzd7ioa3TWPnGE7D7rj%2BcDxRH9Vmj1G4dlw4O6nOZ0li6tfpLDJ6mvjtmg6Wv%2FhH6DnVAgAAAPCu8oXd9YZhNFvEy%2BXq%2BdVqGS9mk3tV%2Fr%2BZ4Det%2FsPi%2BeXPJi%2Br%2Bdi1jnf92WB13Lv7yXT%2BU31U%2B72Mk75jcND6X6rzX0li8%2FFf9u4vpK2zjwO47m0dON%2FRjr0tw3eCF66lLWyFF%2FXCC1tBKJP6utc2vqfnJoEqJFfHnLtzcW7OzXs4nIv3hOXo27zb6rnIGBmBIDiMGSwsDbIpM0EX2IJ%2FcDRixE1ZVUR3nnPS44lNlWogE76fm1IaE3v3fX75nt%2FT3PD8fyGdzn%2B8DzquvWW9WeUJDHVb%2F4UAAAAAAEo5f%2BlK860eup9heUGSZL9q8suSwLMeI%2F5fuVxb%2FUKQFnyfaKX5%2BYHjxs%2FVdfqXDe1dDidJ%2FiL50AJFkgTz3GHP%2F1WnZqbz%2F6qq6uMHulus8K9qp%2FGZVBT%2BVa3SPiW%2FEMI%2FAAAAALw0%2B7fecbgYTpAUxa9IRv4PaJ9%2FoT0eUkQj%2Ft9pvd7w1%2BpDFRqXnv6DY9ESwkMCQ3Xc%2BNtrRz59q3%2FZ8JHTw5LkH9BC4eeC%2Bsea5w5b%2Fq%2B%2FWHvutJX%2FxlaSzkNhTS6a%2FKvh6Ml9pR0K%2F%2BFoZX2lIfwDAAAAwNHZn3KzgvyxIgk8zxrNH1FWR0KRcDBA4r%2Bb6mp%2Fn6T%2Foodne1ys%2BCgU%2By6VPuT7sccS6%2FzwH%2B%2FWHJn923vo%2FkFeVPTkH4nGkwWJWHQsHCLnDnv%2Bv3m18Z0Lp6v%2FXLza7vCQdK5JXpp0%2Fq28nkyf1A%2FRF8J%2FMl1JP0QR%2FgEAAADguOzPiT6fSML2gJM88%2BvxcoKsaqPjERL%2FOY%2Bzx0r%2FVni%2F5XBzkp7%2BpxdX83Yrs7GgYvZ%2Bjs7%2B5MsGJRDUk%2F%2FkTGZ%2BwZSdTU8l4%2FoBIGjP%2F53tLR%2B8p68dPcX4%2F61rHQ%2B8YiBSIq8v5E9mJV3yzSpnJY3wDwAAAAAvda6Q%2FSVVFliPk%2Bq996%2Fuf%2Fbe66P7GU7waaPfTESCjyR%2B0PVC%2Bm9sNn7u0Zfxudz2vs1m9onV%2Bzky%2Bw%2BS80VkIjmTWcytP9s2ba6tLs9n0lNPYrb830877naStaMnH%2F%2Bfe%2BeDTtoraePjJfL69v6J5NPRkm9WMXmEfwAAAAB4uQtNhewvcYzL0ffAOWBwUg69k0PS%2F7fJiVBAEcz0X2ur%2Fb9tnhrkkdFEcfrfWZ4q9H7%2Bfv7o7O8bCY0lUtnc%2Btbu%2FoG9nWfrq8vZWVv%2B57yeh7S%2BdvQU4%2F%2Faxpa7DzlZi0YCYtnCPyb%2FAAAAAHB21NTf7Cxkfzd9n3Z7WZ4whu33XUb6T3wfi2g%2BI%2F1fv3z%2BUF%2BIZoyXzK3s2sJ73uz9dLc21h6d%2FbXR%2BFTm6cbu3s729rP1vG5tc3t71zgAbOYP8r8qizzHDDhPPP63Kv%2F%2B0NdhlfeQ1fxlCf%2Fo%2FAMAAADAmXHhvbaefjP7U70uhhMlRdWRYTvjKqT%2F5ExilKR%2FZ1frlbdfK0r%2FbT2Fl%2Fz8656995OwEnYJdQfZPzG3tLa1pc%2F5Fxb0qo9uNruwmMuvP9vZs%2Bf%2FkBbwywLP2sf%2Ff3n1Uw5NKv%2FfhFXzXFKe8I9tPwAAAABwBliRmBH8Cu%2BhKL3mIw%2Br5qrPYVUWBs30H5xIzenpn7zkTnPjG0U%2FTVK88ZLp%2Bd8O0v%2F24iTp1tClL%2Fmtqbdl%2F9zvG7lFveGfTCbjUV0skZycSWfml%2FObtvwfj0ZCI0NK0fj%2F0hvnXv2UI2tR80uJloaaMoV%2F7PkHAAAAgLPAisR%2BYdB5r58TfMOyYK76FH3%2F9xnpnxUDkeRPc4lIQOLcjlvXL9kn7nUHCz%2Bn5zf3n9vNzUSNZfotVu%2Bn6FmBtoPs%2F2sum5oku33C4ZCmC4bDkfFoPDk1m11eXd8y8%2F9SZmYyrtd%2F7OP%2FZrP984qnHDUUH9esxxHKE%2F5xwy8AAAAAnAHmBhxG8MtcPxnyf%2BwTOcZY9elhBXmYNH36PLyij%2F6XUrHQI5F1dhmj%2F5ILP1NPDxL0eiYe8r%2Bk96NvCbKeFHi6kk0lJyJkq79xobBESkcBTQuFx2JPptKZJXP%2Bv7WeW%2Fxx6smEffzf9Urtn%2BrCKWdkLGE870sWEZU3%2FJuXHjPeymNcxpJVAAAAAIAirzc0kw04foGhSR73Cayb7iWrPvtcDCcNK7ynz0lG%2F5OL89MTQf2v1uj%2F8MLPQMS%2B8merVO%2FHKv3cchR2BP2yNKdHfzLQJ5eL8ZzXeNxYlGT%2F0ONgeCwaJ%2FP%2F%2FObu%2Fv7u1tpyNmUf%2F1vtnzdrqo5X1%2FB88G87lZQ1%2FJuXHlMPKo%2FS1zLV11QBAAAAABR5s6mtZ4Ang3%2BHWf5xORzOAZ3z37Sbk%2F8nsmT07w%2FFM6s%2FJyMBY%2FRvNXlsCz89vGKUeHYO936aG14vUTRysSK5HeCX%2Ben4qHGFMOdl9A99SJNFox7SOhIkZeixFiLz%2F1lzE%2BjezoZ9%2FG%2B1f2401V%2BsPa79Tx4z%2BMgY%2FE9afaRyh39y6XHb7Y7Ku932fkNdFQAAAACADRlW3%2BigGEGVvDRlln96KTfL61g3RQblCj9w39iNn87nUmT0bzV5ihZ%2BdjnNCn9mbc%2Fe%2BzEv%2BS3ZvSePCC%2FNT8e%2BHPGZOZ7q6e6%2B29nxYXe3g1wwzLC8IMkqmf%2FHjDvANg6N%2F632T0fbzavHtP%2Bray8bjxmQwb%2FtG4ky3%2FBbVV1X33Ttz6Cpvq66CgAAAACgSM27ek2dlVSBoWgv%2BYOm3JyoqKoimt8FFP5FD%2F%2BrG9lk6SbP%2BcvX2%2F9g7%2Fxd0wjjMF5sfAOWHFHqEDQHDibBCokQ1OEGoyCEhsANrXA9ChZiIE723Byy3FI5XCzNpdSh1qFDzZLlhtbFoaGkLqXJUkKh9D8oZCt9f1zfO3t1c5Dw%2FSyiiDg%2BPn7e52UHeK3PfPLn%2BvvZ%2Fy%2F5%2Feve43FQnP37r1o6M3jyUiaT3khuZrK5QnFXVsr7Na1B%2B%2F%2B3p%2B%2BHn%2BhFYL9d9T%2B3fxS5mKP2vzAp%2F%2FsWxHv2hQTWuWP9uMP%2FlGb1kRCaBQRwfgAAAAAAAIAJ1k%2FbZP0%2Bq%2FkNs2UYz8n8j6o1X%2BJk%2B0gzutbo5%2FVEkydgz%2Fab7wZ88NO55HcZeU4YU%2Ff%2B8opkf3KtMD27m4iLorgUjoqxtcRGWirclxW1Qvv%2FdqfXP%2F2A6%2F8fLvv%2FjNs%2FtYpK7f9kfEL%2BR3dj67kd%2Byric%2BsNt36c8A%2Bz%2BgAAAAAAAMCNJ5TIKzX9GIf%2FB9j8N5jg32podTL8v4%2Bf2ELQMbHivSaPM%2FlDjXqDD37yS349774Ty%2BzuEfd%2B9I1l%2FwNVpqudIWEeoTmfHwWCoSUxntyU8kXa%2F9cPm62jDqn%2FRxdO%2Fc%2FtH0NvaNT%2BL7D8Hwz4fe7WHy1GVtNbcrmKv97J8Muwb%2Bo1%2Fu%2FFNKb5X0P4BwAAAAAAAGYcXsNrRpeFf5O2%2FM0Xeu0xEX7Ya7gmf2gfiaUmj3dDnqX%2FVFEZH%2Fz8dfXR4%2F3QRZytEj1BfGlnf2VbWv%2F3vq65eSG8HE%2BkaP9frpJbB0j9bw2c%2Bp%2FbP12zxex%2FheX%2FtVg0HAwgv8%2FnRygQDC%2BvpKTt0pOnh%2FSnyYgU%2FxVZWlm8hZnONP8zCP8AAAAAAADA7IPY0GfPHf4N%2FERWNcN%2B7Yg8sPDPTB46ke9d0Y9nXYOf495P1D9%2ByIBth14MT1j2z65GFm57PX0khCKk%2Fy%2FslNS9Kqn%2Fza67%2Frftn4HV7zH7387%2FuSz5ASBGw9ggwgoR%2FoSirB7U9XYHZ%2F%2BvdvGfivxh7w5C2srzOIBnbc2AnSm1WBdpK%2BTQVmphLJTowYNWEMSiCLOTacwlghHMXmJye4d3yWXDI4dNmLyZMYcdcwi7kyIEwd0mYXcCMSs7BtTVuoySKh3GbiPOVLYqovv%2F%2FfPy1HnzGCEOCPl%2BoBRyMPb2%2Ff%2F6%2B3%2F%2FRgM5n2r%2BUX6FAAAAAADgwlIH36HoT8N%2F%2F6Aa%2FuXj8H%2F4hqpteJzX%2Fh9C%2FenCz%2BO9n%2F42U43mkkE0OZ%2BdmvAXs3%2B9Ue%2FXo%2Fn%2FA3NHd5%2BFxv9e6fT4n2%2F%2FLM2lE3z7Xyrm%2F0FLPx0AWh89YHeH6fJw74DN4RJ8wUg8lfsP%2F1J18H9e1fyWHqo%2FBQAAAAC4uNSV9z%2BfLfwfbSlxvrXRoNIv%2FNxZy0zKarHOqWrRzyZn5pPRIJvBU%2FavNuih%2BX%2B9qamltfOJhW7%2Fasf%2FO4WNlXm%2B%2Ff9lMf%2B7nfwAwE4ArDWUakPtIy7B6x%2BPTmUWvs3xL1UH%2F%2BdVzd9hvldXZQAAAAAA0Ljo4Z%2BaMO2eUvgPHId%2FJc5rwr9O4eee5pFfZc3GQ%2BVB%2FMWwoYF2Jfvru1RT22BqZuP%2FAevPjv93t%2Fn2f0rJ%2Fz6RHwDYCYDFfnowzCN6%2FfLEs2R2eWMhFRunL1UH%2F%2BdUzd9kqqs2AAAAAABoXOjwT80%2Bn%2Fo8I78XAyHW%2B0mfUQOQEv73XmY14V%2B%2F8FN55Fet1STv8S8MRFO54oNhnR%2FSDP6XXL7Cxv%2Fs9q%2Fe%2BJ%2B2%2F5eK%2BT8SlukAQCcAFvsZnxT4bCI2nc6tvlrOxMOSMHr8pedVzV9bg7k%2FAAAAAGhc6PAfKDb7BIJeUZRkSRhmJwGlASgcn13XhH%2BiV%2Fi5sUuP%2FKoPap1e%2BZcnM3zwb39iNn1gOAMa%2F7Pbvzrj%2F%2F3Dw%2F2dQjH%2FP4%2FzA4AckJiALMvhSHRyOj33YuO75cxUJCA6rT30pQAAAAAAFUIb%2Fp2f2D1SiP1Fa%2Fsy80cWk9lHn%2Fvcg%2FTC7%2FP5zQNN%2BNct%2FHyWpsqfXe3ej%2FKuwOSMMvhvrr905t%2F1qt74%2F9XW7sGRkv%2FnZzN0AGAnACY6OTkZf56aYdH%2FvxuU%2FYPeMfuTNizoAwAAAEDFUcP%2FXyiis%2Fm%2BzIbxH7HFHUmSfOIYrfsE6DxAZaCJxcKRJvzrFX7SS7os%2FR9ongSm%2B778veBMafB%2FxcCVMf6nbL%2BuvP21s7W5TgeAbCaVYFKZbHZ2np0OCoV8Ls2z%2F9BAR%2FNvsaAPAAAAAJVGDf%2BTFNEp6tNWzEdDLjfjtH885PHJEm0C0ZtcK9s64V9T%2BGlz8cqf5dcHmieBlfu%2BkQR9fnLwX8b4n7Z6ZpX1H%2Fb41x4dAF6uLS0yS2svX65vbr3d3njxTerZRDH7f9iIVk4AAAAAqDxq%2BI8pCz%2BfSgIL%2FdZB5hOrgy0A0WnARns62fy7o6N3eU341xZ%2Bthcrf6ayqz%2F8L589%2FcivsXTfV7kJrA7%2Byxj%2F031eZf2nsLN3cEQHAHYCKDBbO3t7u7tvN1dz6emvxv1K9v%2FgNwYAAAAAgEqjhn%2B%2BhPM7hyDJkjhGPflW27BT8AZD3jH62D8xPfdqX7nBqx%2F%2BifFmsfInGE3m8tvqI7%2B3jWrZD33f15oO0DLG%2F15%2FSFn%2FWVpj%2Bz%2Fv6ACgONjdfkPPACefTciS4EL2BwAAAICKpYb%2FRJRG%2FHRXVw7wh7JcbkGU5M8lwfExlXfG0i%2Fo3a7CYmmH36DrfV746fFR5U%2F%2BNX8VTN37Uct%2B%2FnH69a%2Byxv8jLqG0%2FpPKsP2f%2FPomm%2FlvF8jm%2Bsri3EwyHmVjf2HUhuwPAAAAABVKDf%2Bh2N95AT5P%2FyHek%2B%2BV%2FKEvgj72Gd%2Fgn56j6s7DNyz8S3xib9BFhZ%2BdllGl8HNtRt37OVn2k%2BQPBbep%2Ff9ljP97B2zDyvoPy%2F%2FxRJpd8WXb%2FiuLZH42nWDl%2F%2BGAT3A5rD3tyP4AAAAAULGMjeY%2B3uWTio1LgsPC0r%2FXL4e%2FkNmfkN%2FrGbUq3T0rNPjf51s87sGu%2B9cNRC%2F9m8w9pcLP9dLez63qYvjnZT9Tf42oH5Jyxv%2BP2rv7lPUfKSCHIzFW7plIpNIJ8jwei7Bnf32ih439u9vu3Xwf2R8AAAAAKtTlhpZuG1Vv%2FjP1lcyzvsMleCXiEwXX0FO7U2nt32cb9DvKHP8xhX99VXX3jgs%2Fl1LqkF8N%2F3%2BKRMI%2B96B6Dbic8f%2BN23dbWpX1H48o%2BvwhOUwN%2F7EIFw75Ja%2FocdotPe0P79QbDQAAAAAAlUp9dOub6UjQJzjtNER3c85h29OhMVF9r%2FfosHBqg19f9YnCz39nSuv9avj%2Fg8Qon5Wtynitobj%2BQ%2Fnf6RZE0Udv%2B4b8pSOM2zVitzzpNN%2B7ee2yAQAAAACgYtENXN69OZ%2BZio5L4pjD9tQ6yFmtdqfHGwjTxd0fD1n439040d2joVf4eeqR39qmDsuom7joha8aw3m4rKz%2FdPX2W2zDI0720z2iKKhHGOtAb6e52VSHsT8AAAAAVDTjbf7q1pfTc0vZZCwc8AoUlwcZvkbjC0bipex%2FuPUiHZPV27vkLIWf%2F1Iq%2FXnSrzGZeyyDxDrQoXnhq7z1H5b%2F2zq6%2B%2Fot%2FJcfYf8KYunrftz%2BqNlUf6XKAAAAAABQyapuPOiyuqjLc%2FnbXCoekf20KEP4BdpwdCqzQNlfGfxP%2BAWHztaPbuHn17GQsuPDrwOYO7rI4%2FbzfWm3iuX%2FW6amFnMb%2Ffze%2Fv6%2B7i7S0dpy%2F87tG1cuGQAAAAAAKhzt%2FTjobm52Nb%2BQmY7xK7KEV2fGk9nl73d49j94vcwH%2F7buhzeNBg39ws%2Fkyb2f6jpT033uzrk371RV19Q2NNLPf%2FCotdXccp80mRquXzVi6g8AAAAAwBZ0HnbbXMUHeb9bmUsn4rFIET2alV1Ye713RA5%2FWM1OFQf%2Fd68ZFGcr%2FPyb8jDYezyh19Re564af5X6IiP9%2FBu3GhsbG66T2hrc8gUAAAAAKLp2t13Zz1n4vrCxQs9iFaVm5pbWNt8eFLP%2Fj%2FlcMhrUDP7PVPgZC4kj%2F2%2FvDl7SjOM4jj%2B2aiAtbKzGMIQOVsxBE6J18OAWCFEs7BI4LwYzqJPV7Tl4eU4hXhz0DOpSHnbIEUQgLLoIMgY5iKi8RCTBhCmxBWstavb80sjTc9Pk%2FfoDnvObhy%2Bfn3YsBAAAAKCCGs3iPmdxLbmX%2FX2SPUrvCLsHx7nTi6tS%2B2%2FGFuZmx8t%2B%2FOsa%2FIwVHwcAAAAAUEnafc5UMBJdT%2B5lfv07O8kJ%2BdPzyyvhPK%2B1f0ieHHvdc%2BfHv57Bz4g6f%2F0sMPEPAAAAVJS4zxn2aaP8ie%2BH%2BfOrcpdn2fSWaH%2FPYF%2FHI6lE3%2BBnsIA%2F%2FwAAAEAVaHhqE6P8y583t9I%2FTs4u76Z%2FPrOXjK%2BI9u%2FvelIn6SUGP30TBT5u%2FgEAAIAqYLSIJ7nCCyvx5HY6k%2F9TPPi5%2BHuay%2BynEutR9ab92xokvcTgp3NopGDI2WPmhV0AAACgwkSju8cDckiNrm0kUvuHxz9zmuzRwW4qEY8tf1DK2l%2F3l229rwp6bZYmCQAAAEB11L93UlYii9FYPPE1tSNsf0tuFtJfDSvT%2FrL218dg1Db3Le2tRoMEAAAAoCrq3zHo8U8H58Lqcmw1viF8WVv9tKSGFTkwPurS2h8AAADA%2FWZoMnf1u0Z9UzOyEp7%2FuBS9sahGQooc8HvdTruV9gcAAABqQWOb1e4cHvP6A3JQCRXNBYOz1%2BnvcvRYTPUSAAAAgBpQb7LY%2Bpwut%2Ff9RGCmZGrC5ymkv73T3MTRPgAAAFAjDMa2jm67w%2FXW7XlXMjYyNHCd%2FiaGOgEAAIAa8sDYYu582ed4M1Di7O99YSX9AQAAgNrTaHpmsT6%2F1d3R3tpM%2BgMAAAC1qP5h8%2BNbLcaGOgkAAAAAAAAAANwD%2FwE6V3g9dT5qBwAAAABJRU5ErkJggg%3D%3D\";\n\n\nvar $925c761d7b98a021$exports = {};\n$925c761d7b98a021$exports = JSON.parse('{\"name\":\"ITC Novarese Std\",\"size\":72,\"bold\":true,\"italic\":false,\"width\":979,\"height\":302,\"characters\":{\"0\":{\"x\":772,\"y\":76,\"width\":52,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":44},\"1\":{\"x\":321,\"y\":76,\"width\":37,\"height\":61,\"originX\":-3,\"originY\":54,\"advance\":44},\"2\":{\"x\":0,\"y\":137,\"width\":49,\"height\":59,\"originX\":3,\"originY\":53,\"advance\":44},\"3\":{\"x\":225,\"y\":76,\"width\":49,\"height\":61,\"originX\":3,\"originY\":53,\"advance\":44},\"4\":{\"x\":359,\"y\":196,\"width\":52,\"height\":57,\"originX\":5,\"originY\":51,\"advance\":44},\"5\":{\"x\":824,\"y\":76,\"width\":49,\"height\":60,\"originX\":2,\"originY\":51,\"advance\":44},\"6\":{\"x\":918,\"y\":0,\"width\":51,\"height\":62,\"originX\":4,\"originY\":55,\"advance\":44},\"7\":{\"x\":411,\"y\":196,\"width\":51,\"height\":57,\"originX\":2,\"originY\":51,\"advance\":44},\"8\":{\"x\":121,\"y\":76,\"width\":52,\"height\":61,\"originX\":4,\"originY\":53,\"advance\":44},\"9\":{\"x\":715,\"y\":0,\"width\":51,\"height\":63,\"originX\":4,\"originY\":53,\"advance\":44},\" \":{\"x\":804,\"y\":254,\"width\":12,\"height\":12,\"originX\":6,\"originY\":6,\"advance\":22},\"!\":{\"x\":49,\"y\":137,\"width\":30,\"height\":59,\"originX\":1,\"originY\":51,\"advance\":28},\"\\\\\"\":{\"x\":532,\"y\":254,\"width\":37,\"height\":32,\"originX\":0,\"originY\":51,\"advance\":36},\"#\":{\"x\":0,\"y\":196,\"width\":49,\"height\":58,\"originX\":2,\"originY\":52,\"advance\":44},\"$\":{\"x\":32,\"y\":0,\"width\":52,\"height\":73,\"originX\":4,\"originY\":59,\"advance\":44},\"%\":{\"x\":800,\"y\":0,\"width\":62,\"height\":62,\"originX\":5,\"originY\":54,\"advance\":52},\"&\":{\"x\":0,\"y\":76,\"width\":64,\"height\":61,\"originX\":4,\"originY\":53,\"advance\":56},\"\\'\":{\"x\":595,\"y\":254,\"width\":22,\"height\":32,\"originX\":3,\"originY\":51,\"advance\":16},\"(\":{\"x\":84,\"y\":0,\"width\":33,\"height\":73,\"originX\":1,\"originY\":54,\"advance\":28},\")\":{\"x\":117,\"y\":0,\"width\":33,\"height\":73,\"originX\":4,\"originY\":54,\"advance\":28},\"*\":{\"x\":496,\"y\":254,\"width\":36,\"height\":36,\"originX\":2,\"originY\":51,\"advance\":32},\"+\":{\"x\":0,\"y\":254,\"width\":49,\"height\":48,\"originX\":3,\"originY\":42,\"advance\":43},\",\":{\"x\":569,\"y\":254,\"width\":26,\"height\":32,\"originX\":4,\"originY\":17,\"advance\":22},\"-\":{\"x\":617,\"y\":254,\"width\":34,\"height\":29,\"originX\":5,\"originY\":33,\"advance\":24},\".\":{\"x\":728,\"y\":254,\"width\":27,\"height\":26,\"originX\":2,\"originY\":19,\"advance\":22},\"/\":{\"x\":637,\"y\":0,\"width\":39,\"height\":64,\"originX\":9,\"originY\":55,\"advance\":20},\":\":{\"x\":375,\"y\":254,\"width\":27,\"height\":45,\"originX\":2,\"originY\":38,\"advance\":22},\";\":{\"x\":462,\"y\":196,\"width\":28,\"height\":53,\"originX\":4,\"originY\":38,\"advance\":22},\"<\":{\"x\":679,\"y\":196,\"width\":49,\"height\":49,\"originX\":3,\"originY\":43,\"advance\":43},\"=\":{\"x\":447,\"y\":254,\"width\":49,\"height\":36,\"originX\":3,\"originY\":36,\"advance\":43},\">\":{\"x\":728,\"y\":196,\"width\":49,\"height\":49,\"originX\":3,\"originY\":43,\"advance\":43},\"?\":{\"x\":274,\"y\":76,\"width\":47,\"height\":61,\"originX\":3,\"originY\":53,\"advance\":40},\"@\":{\"x\":487,\"y\":76,\"width\":61,\"height\":60,\"originX\":2,\"originY\":53,\"advance\":57},\"A\":{\"x\":239,\"y\":137,\"width\":66,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":52},\"B\":{\"x\":190,\"y\":196,\"width\":60,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":52},\"C\":{\"x\":173,\"y\":76,\"width\":52,\"height\":61,\"originX\":4,\"originY\":53,\"advance\":44},\"D\":{\"x\":127,\"y\":196,\"width\":63,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":56},\"E\":{\"x\":250,\"y\":196,\"width\":56,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":48},\"F\":{\"x\":909,\"y\":137,\"width\":53,\"height\":58,\"originX\":4,\"originY\":51,\"advance\":44},\"G\":{\"x\":548,\"y\":76,\"width\":60,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":52},\"H\":{\"x\":305,\"y\":137,\"width\":64,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":56},\"I\":{\"x\":91,\"y\":196,\"width\":36,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":28},\"J\":{\"x\":277,\"y\":0,\"width\":38,\"height\":69,\"originX\":6,\"originY\":52,\"advance\":28},\"K\":{\"x\":558,\"y\":137,\"width\":61,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":52},\"L\":{\"x\":855,\"y\":137,\"width\":54,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":44},\"M\":{\"x\":161,\"y\":137,\"width\":78,\"height\":58,\"originX\":5,\"originY\":52,\"advance\":68},\"N\":{\"x\":369,\"y\":137,\"width\":64,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":56},\"O\":{\"x\":423,\"y\":76,\"width\":64,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":56},\"P\":{\"x\":619,\"y\":137,\"width\":60,\"height\":58,\"originX\":4,\"originY\":51,\"advance\":52},\"Q\":{\"x\":358,\"y\":76,\"width\":65,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":56},\"R\":{\"x\":496,\"y\":137,\"width\":62,\"height\":58,\"originX\":4,\"originY\":51,\"advance\":52},\"S\":{\"x\":719,\"y\":76,\"width\":53,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":44},\"T\":{\"x\":679,\"y\":137,\"width\":59,\"height\":58,\"originX\":5,\"originY\":51,\"advance\":48},\"U\":{\"x\":873,\"y\":76,\"width\":60,\"height\":59,\"originX\":4,\"originY\":52,\"advance\":52},\"V\":{\"x\":433,\"y\":137,\"width\":63,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":48},\"W\":{\"x\":79,\"y\":137,\"width\":82,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":68},\"X\":{\"x\":738,\"y\":137,\"width\":59,\"height\":58,\"originX\":5,\"originY\":52,\"advance\":48},\"Y\":{\"x\":797,\"y\":137,\"width\":58,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":44},\"Z\":{\"x\":306,\"y\":196,\"width\":53,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":44},\"[\":{\"x\":220,\"y\":0,\"width\":29,\"height\":72,\"originX\":-1,\"originY\":54,\"advance\":28},\"\\\\\\\\\":{\"x\":676,\"y\":0,\"width\":39,\"height\":64,\"originX\":9,\"originY\":55,\"advance\":20},\"]\":{\"x\":249,\"y\":0,\"width\":28,\"height\":72,\"originX\":1,\"originY\":54,\"advance\":28},\"^\":{\"x\":402,\"y\":254,\"width\":45,\"height\":38,\"originX\":1,\"originY\":51,\"advance\":43},\"_\":{\"x\":755,\"y\":254,\"width\":49,\"height\":16,\"originX\":6,\"originY\":1,\"advance\":36},\"`\":{\"x\":697,\"y\":254,\"width\":31,\"height\":26,\"originX\":3,\"originY\":57,\"advance\":24},\"a\":{\"x\":822,\"y\":196,\"width\":53,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":44},\"b\":{\"x\":315,\"y\":0,\"width\":56,\"height\":66,\"originX\":4,\"originY\":58,\"advance\":48},\"c\":{\"x\":49,\"y\":254,\"width\":48,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":40},\"d\":{\"x\":371,\"y\":0,\"width\":56,\"height\":66,\"originX\":4,\"originY\":58,\"advance\":48},\"e\":{\"x\":875,\"y\":196,\"width\":52,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":44},\"f\":{\"x\":561,\"y\":0,\"width\":42,\"height\":65,\"originX\":6,\"originY\":58,\"advance\":28},\"g\":{\"x\":64,\"y\":76,\"width\":57,\"height\":61,\"originX\":6,\"originY\":40,\"advance\":44},\"h\":{\"x\":505,\"y\":0,\"width\":56,\"height\":65,\"originX\":4,\"originY\":58,\"advance\":48},\"i\":{\"x\":766,\"y\":0,\"width\":34,\"height\":63,\"originX\":5,\"originY\":57,\"advance\":24},\"j\":{\"x\":0,\"y\":0,\"width\":32,\"height\":76,\"originX\":6,\"originY\":57,\"advance\":24},\"k\":{\"x\":448,\"y\":0,\"width\":57,\"height\":65,\"originX\":4,\"originY\":58,\"advance\":48},\"l\":{\"x\":603,\"y\":0,\"width\":34,\"height\":65,\"originX\":5,\"originY\":58,\"advance\":24},\"m\":{\"x\":546,\"y\":196,\"width\":77,\"height\":49,\"originX\":4,\"originY\":42,\"advance\":68},\"n\":{\"x\":623,\"y\":196,\"width\":56,\"height\":49,\"originX\":4,\"originY\":42,\"advance\":48},\"o\":{\"x\":927,\"y\":196,\"width\":52,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":44},\"p\":{\"x\":862,\"y\":0,\"width\":56,\"height\":62,\"originX\":4,\"originY\":42,\"advance\":48},\"q\":{\"x\":608,\"y\":76,\"width\":56,\"height\":60,\"originX\":4,\"originY\":40,\"advance\":48},\"r\":{\"x\":777,\"y\":196,\"width\":45,\"height\":49,\"originX\":4,\"originY\":42,\"advance\":36},\"s\":{\"x\":97,\"y\":254,\"width\":47,\"height\":48,\"originX\":3,\"originY\":40,\"advance\":40},\"t\":{\"x\":49,\"y\":196,\"width\":42,\"height\":58,\"originX\":6,\"originY\":50,\"advance\":32},\"u\":{\"x\":490,\"y\":196,\"width\":56,\"height\":50,\"originX\":4,\"originY\":42,\"advance\":48},\"v\":{\"x\":219,\"y\":254,\"width\":55,\"height\":46,\"originX\":7,\"originY\":39,\"advance\":40},\"w\":{\"x\":144,\"y\":254,\"width\":75,\"height\":46,\"originX\":7,\"originY\":39,\"advance\":60},\"x\":{\"x\":274,\"y\":254,\"width\":55,\"height\":46,\"originX\":5,\"originY\":39,\"advance\":44},\"y\":{\"x\":664,\"y\":76,\"width\":55,\"height\":60,\"originX\":7,\"originY\":39,\"advance\":40},\"z\":{\"x\":329,\"y\":254,\"width\":46,\"height\":45,\"originX\":5,\"originY\":39,\"advance\":36},\"{\":{\"x\":150,\"y\":0,\"width\":35,\"height\":72,\"originX\":4,\"originY\":54,\"advance\":28},\"|\":{\"x\":427,\"y\":0,\"width\":21,\"height\":66,\"originX\":2,\"originY\":58,\"advance\":16},\"}\":{\"x\":185,\"y\":0,\"width\":35,\"height\":72,\"originX\":3,\"originY\":54,\"advance\":28},\"~\":{\"x\":651,\"y\":254,\"width\":46,\"height\":26,\"originX\":1,\"originY\":31,\"advance\":43}}}');\n\n\nvar $084c7c3945f93d44$exports = {};\n$084c7c3945f93d44$exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9MAAAEuCAAAAACo9R53AAAAAXNSR0IArs4c6QAA7llJREFUeNrsV02L4kAQHdukB%2BIHcTBZRA3kEEeMoAMhycFDxgFhcFE8Bdy9zGEZ2Nsw%2Fx%2F22Z3QcbKxm42nxbqZ7nr1uupVdXt3s5vd7P817b77wKxLyYVtxOhhT7ZRHZ12H3oGOYNR9tcoqJWD0sLHe6pJQIgOFO4vcGE6qeCbAwuDv%2BTYGj%2FVlYzwpJVI1SRxbUeNZpIAWarVjkB0VhT5irpsQAyONcQvC0Q19aLqEiryaKrhqDlwvBkzb2y1mlX79L47nWXmDduNO0X0oTebun29CAN%2Fk6oxA7WvQRvtYeGj4wx6RrMiA6xe1ggoRdIacGEji5Vc5EmAM%2BCieZeOTXSjN3CnYrn2iLXGImkFUvVJXNGxCTcnkwTInspAqk6kEqFhoFAoSksrubf4itFQnE9CNiAGxy6tIf7qtoeOhPrkrKyR5AySMc9UOzDlXQ25TJbhav0CW68C37UropL%2BY5hgE9%2B4cAzFjp48rdZJ%2BGhn%2BtRtwKxXT5OhqUl9wSwCtS9BDWdR%2BBiFyykjXSpW3ovzIAKK8NdsD7hRFMxZyZGnh%2FxSFOAAFsb8BYNSB47c6TJK%2BHL9JxNUNg9Y0vpnpGC1SVzNsdmy4RbGmSSSOFyKIVQ6kUqEtuOjUFDgwKTkfHS4fMVpqygOwYRsQAx1FleIXPySthfjgetIqO%2FC0OQpmAfsDPiRPzF1op5uawyqELtna7KW7kAum93h%2BAN2PGyfQ9%2Fp%2FJWh4YavKTbxjYlvyfmQzqmjN4dj%2BhpDn9lkiF%2FT42GzevK%2BGY3Lswa%2Buz2onQcllp8UPu53m4SRLhcr78XtHiiCtOnFwN3vt7zkyNMsvxQFOICFMX%2FBoHjD8Q6Mk80uVciKvPSQD1T2sj0lLXSNO0GqnHvhpk7iOuwbhu36Idz2mSRSlEEModKJInkEOlwkWxTlOVpOxrjORCDMg%2BfTSrIYUtmIwj2AYEI2IIY6syuE%2FpP4qXnW9hgPHXaEXEdCfZX%2F%2BqwRTwF0iDOIJ4THHiWqA9QPQBVZjj1TsrvtLJLDz1%2FvH5%2Bwj%2Fe39HtSMUx70yT9%2Fcnt420bjHQZkz%2BkWlFMW%2BcV1jaaTslWbe2ULNoaaZpI1iZbG21KeMhDKAraVJbUeUEyaJKZMBLei8HSHvxwpek%2BNNaVI9VOMRJeEnAmr8XIrePMGcZS5sa4rJgFCMFqS00YWkiBVW1EAqlov%2F8%2F9%2FJf53J9rfK%2Fhev7%2F%2Bc%2F53zfd865QZUNl9lane5OO%2BUnMYO90%2B1stTXWHT5gLtXkbmYZTCs%2F9Kmf%2FuZVx9YfOzraW5nR5W7dzYOlYdHRgV223q%2FZ%2F3KjHft2OCjk8BOwTfkoNsfGZcu9ZYHoD5nCEQLPNLe2uyy8YgUvCj3Sh2WZo8Pd2XzyFz%2FEQ%2F2NDUaI16o3YufWIzqHj9U34bUOF1nlQhiIhIQ8629kfcIztSdsDgSl%2BXQjFJPCSQcxPmBPbCdqn7Fgmn21TAeadWnjwotcQg5S4W%2Bd%2FEZlEbAHPbwE9ldJ6CjyCNc2gQxGINT1QZ%2B5C5CHuAMnCGIIKkpqqkE03P0qM7Xd3nhUMJspOdra3F5JVrBkyeNygEz3btcgPPtiQ0v3OYUvqePM8QPY2cLBh47VM0R7ZS%2Flp8YM%2BIPbaW86ebQWFXklrnHCMphWfuiuA8fPdEgKLVmSvN3M6JdEYUbCBg9oWPRI2EX3%2FrHT7dhX8lDIkY3ANuWj2FyWypcsLKBOCoBgCtdACHR1Y0dLr5g3kny344RnlmUe6S%2FdLQ0vPovH%2BhsbjaDXqjdi59YT4Z5sanbw13wKlo%2BFgQdZdJq1%2BhtZnvCdvUca7G4ExdXeamNyRhLAD8LrCKHb3nAEmVmZaeqgA3SYrJBh2JJLCAp%2Fgo9l8huVRcDebqvX%2BsgfHDxhc3op%2Bwz1B41AqOsDaZILPLjDKU4QxBC8KKlcriKXCdFwdwdM9TptJw5WEmqyq61L9vf09kci%2Fb0Bn9TlaDr2sz1mmFYuR7BClvEnB6PKhstk%2F5uvU35qu7z%2Bpl%2F2uhxnG%2BsO7d1VkWtgWQimYV3qKcd0zyX8ESaHevwwus1WVpiRsHkJi1iBUCh0ofz9N3oCFHKWjd1qPmoPL4Qv9obKV%2B%2FFsLYDdVKopZjCtRACJZ8%2FaO0V80ayju9GeO5mWRZQnsR0KEK%2BNxiB16o3YufWE6RtDuDMh%2FCEI1hhhOFcd2vjy%2Ftr1BO4HIkbWZ6AAq7J4VGQgV5AR99mcerwBRQPy8zdVkxjZzrg42lDhoUCiuxlqCYJqTr5aUdSFgF7dxv6SICaZLrVLbPsM9Qf2giEuj7oM7lA8XW3NBNBYLmpKEG5imreXHV%2FRIhm7pb9F2R3a0WhpjIUdgUHYvFUOp2KR8NvSK7mevjTOOl4jmM6cj2djlNeocevsXJwp0f2hy4GsGmZTvsvhhSpy2mHe1ARVeCaECyDaalYOODztp8%2BJnTWFwjH8CAej0XCARmg1uhLgACBDVFor%2FT5Fbn8fVkJXuQhRzYqyjkCkHgYCP89LhY7JSh2oE4KnSRTOEJgKGzJdJUbSb6bimeWZZeNmI6nNd8LI8Rr3IiBHisjdmw91VCIjoQQRGLxxHA6PZyIx%2Fr95B7tBMiR%2FkaVT6DEcEmBSLjHL2soIW7GQex1NYksmcYrs1%2FztOGGxaP9IT9Q3cYlpKba5CdckrII2CuyB30k3we9AmTafzl83nAvMQKhrs8jkQsQ0z%2B6uD%2FYknlRgnKVqnmzidQhFdFwd%2B%2FAgN9KqEGOx5HB%2FoFkNl%2BYni6MjrwT9nnIn8bR3y85ptO38pRXrMffT7iu4GBfcOBKUAb%2F6fpp5sh%2BANEL95xAzVyJa1LZfH48O9SnSHAmkwF6CLKQlL5Y5t%2F5fDadiAQFfelB8HYcC%2FFKwhXdbqf%2BfafbIwejqQSHa0QDkHgoKeEEjtbWSDQoe8p3aAcgmMJxBEbjibgVKio3krQb4RkZmYxsg%2Bn8dF6cojdCVo14NyKAZbJ2bj3VUF1yIBxNpLP5scnp6cmx%2FI2YoBN1YuHW38j8BBHxbl84kYgN9J4vL6nOh%2FF6IuyjOsAc0sQ0CnSA2YWM5oblMqnYAFDNJATzpW9Vn%2Fw1%2B4BLTVmuXrt2DfQQ9Hk7%2BT7UK8ihwX7FgBgxAqGuD6TJXPAuYgqCYv6gEpMVJajc62mWYzaR%2Bh0hGu6Op2Ih2S28UIEce2LZmdLi8vLi3ORINKD50zj6%2By3HNOXVa6zHx8C4lr7PmTq4L%2Fp2n8%2FTRn0Kzb25AofeioQUb2cr1czmXFOYLX1cSAGTLkczc6WqAuyeXsAu%2F2GpOJljmHWKCYoAwc08QguDe2X3HzAoEe9jFt%2FmUSLDeA5SuK4CSDx0%2FEkKRDO352l9MjkcUTxttMOWmAMQXOGAwFQm9943xTTakVdYI%2BnTQg8WyuZS%2Fdth%2BkOBac0I8RqMSOMilUNuYv3Naq0XEQxGEiP5yWLpo6mxPFZO3eFpcYKsv5HFCXso4pH0%2B9mrAiUcGR6l%2F1r2%2FTSnq%2BOojM2LB2KawVR2bLL4cXFmerpYmp%2BfmylkgeogJATzJShI1cmPVGhydDFl%2BUcyChRGkyPJaJ%2FC9%2FnJM9Qr9A8CZWj0hbjrM5A5gHkgGmcuQHT%2BDPu4P1hhgMqgR0HfyGY5GAmaTqQ6CdGJkX%2BNvHPJirSpuwU5jt1d29jc3Ph8Lmf0fA3%2FxEyTji1MdzpYj3%2B6Ebje7vvc7i0Hx4A3TMjqMfMQLH%2FWCbxeHYR73KiZ0Z2Yc83C6v%2BLWc5OTWw4oXZrrB6xuxjsZpY%2Fu3eH%2F8D%2BCiGgDARz8%2FOLJQ4EWwO%2BnmnvYzp6ii4%2BN18q3koLTNPDht8jXLjqyjpba3fHmEq0nKIdRNONMLPSEzw%2FM50xsGG1iwYVgBeFnqnGLGiIbmSGaWGEeG1mSlzEbG1vPTxoWbQL9FGlFUnmpuaWlksTmQQvh7iTwaviBCSz7kbmmKZStV6N%2BCiuTihhf%2BZi2BsfnYGFojI2Lx7ANJnx2bv%2FLRZGM%2Bk0JGFhdWVhtpBNMglxniUFsUx%2BMddm7UDyRgqdl6IEI6ncSKxP4eXvj7nBgaheToxO%2FuuVIeaBTA4uQIoEFdjH%2FYHCIJ8bSQyiXPVweHyvwkSKED16MxnFz6vCNOTqP%2F97%2FBXW%2BrzwfPnnAZs66QCRctljM2M3BsZ2G32fK7foKRQtqoOHOR6JiDRC5bOFUGw41ufHM%2BpOTLnm8dJkOsL9dpjaDipJDtdxlkwVFjceLRS4qgmyFCCYX1tf0y4l%2FpcLaOoFkAb94OGn0wIK9LD2V%2BSWyaUvhVvQzb2AHXTteghKlRubhBosLmEPVV2%2BGabPod2KXb%2BJaGO3ZRyoIsQK02QEXiMjrDBtbr0l%2F%2BvR18lqqNyde1%2BsLUxkYmE2thh4S2UhcQJu9M%2BcuFElTO96ngkyi%2FgU1JKurvUlHUDOyNRYgirj53dVLh7ANKWVe3dyqTikFa3bROnzh6sL%2BPdgiE9dUOZWmfzUMKMYzLGM93R7kLPZ8Qz2YY3ezyHTMHiwV7R9xmIIZTt4oDA9Mze%2F%2BOlcPhmF1ufGb93%2BaPH%2B8uL83NRYBn3jOQ9NeM0nUn1AdP4D9lsM5KgBrEqnkb1frpXEtco%2FD9DoD1EayhYLqUhvgPf4aFLp6zAsKncwEMcd%2FF6KeIw8SVvSNwD%2FQCozdBkarnY5YhE9a6BaJ5FkftvzbTHf30cEDlCuby4LQBkwva6L1Xf1YlO39YOVJ6Gw67ktt6zro12Hwk8%2FVpdB3IXS0spnDzdoD6IVi2Xy4d%2BLPmUoO7u4jN0ebZn8tDmm9UbM8ddWrDBtbr1F0W5EH2y9s7S%2BuTrLZx1oGv1htVsQJ0i8OaIbWWAaOWHA7rZYx3yocvEApnmwWswlWY6iER7KTJQebD5aKn4ArSV12VNd8iMJqWHOTHIBb0HOQtHG1Yw%2BcpLLtIlR2lzGy1L0k%2BXVB%2Bsbj%2B%2FfyWeg2Nl0OpOfmru%2Ftv7FUmkql%2FxbUEx4TSZSQ2hyCuBOaDq%2BFlEDWEU%2FfXdpZWXp7oyowZ74PCCrk47MxEKROLC%2FFwNjmb4Ol9ce34eDqWjJjcaNPEYfAXDZmzeQD9Tl7DZmHRW%2FBCjjyJMInEC5OiMKX3NM01PxA3NMk1voqYHBxedvZxfnlEf4hWGP6heNDdknWJ4yK5uGA00wXWbEw82qjNi59UI5JxYefbWxSLMODHelwCWV1LQT2vlMYmbVcCOTCZmxxjbW5MQ7lYoHMA2sYgCWPMhazFGnUG1trBRz1AXSzpbJL3r51Phtnl6vtXKVmVUbvV%2FzkV7MrHiguUzr1%2BxdfXCV1ZkfNUKXKrtSP0r9oHQXq4IutCi6G2es2FgrRYHtxA2BFlqwJZ3doWbc6eAMMx2nM2QY%2FikuYSXtiJkdUMNgM0xTgbRT1nCLQGoCgdQkBFg0SU3kIysJzYZ9nuf3nvu8b54cz92bu02Y2fOPkvue9573vc%2FvnOfz93xfpehyf1fb0YNk2ldW8rF7rPPS5YHejmP7d6mH1%2BOR2rWv%2Fg%2BkDm0R21uyOvIy8nvDe7mPnjuug02I9gq4%2FsgyOtDY3nUGtkrNzirBddlap3KpaUMvWJSWhlrdx%2BymXHuIFipWjgb6VYYhELFDMoH78U7M2y9e7oUllDtMT8Ap7sU00tQW6SXZYloT6Qvmk8jIJpYZprNaRA5WrxZu6%2FnByxfbU4K0pxbQYfqy6kryDU%2B7bTmIaXjIWHU7zHsEfGH%2BTwLKA8kD4%2F%2BHzy6js4hVhbbey5cvdR4jjUIBGBZ%2BFUKogd%2FAod4qhl5xgeialSTeHiOf%2FTIPqxTx6OtorN1BLngKlJIK3sybXX%2FnMXh4HUasy6%2BK8N8ikIaPXLMvQ%2FFpRBnJPej2QnXmIzxQI56O40dkNNYfrj%2Bc2ie4rlBpiMWWS8t4h%2BTnx2u0vwBteu%2FWs3XiAv0WcXVtvR5pwCW8yTafxSU5xDQ%2B9WMaKYO4ZOSYRqXaLDE2Msd09ovIfqKeXnBkXL58tlnOtgUPy2H608TSvE9kh%2F809p%2FgfuXB6W2LKJkSflRWfvpO16v2HhL%2BpBDi7TwO1a098j2IT%2Bg1Oqad9NpkvSn6knkMkklQXUGhcnJjs91DS2VQw8OrB7Vx%2BdW3ngSkV3EsWx3SwTwyZANt2hDX7a%2BCMx%2FhAQ4qNR7Yt8eN2roD7zYSrmtUGhKq9UZ6we%2Bl1IdpzGXe9FoO1VRip9ODOghJ9UFAW%2F0zYxrjU3fkCNOoKL%2Fxnv8lprNfRPYTdSkACibK2cYnXtn6%2BJL9T2SH32r2W9p%2B5QGPQ1fOyZ%2Bn28%2Fg%2BVbdL0LCnxSC6O1E%2F2qGii5H%2FOubrPBiWCliQ4WlffXKZSXibjsuVgl7eI3vPO%2FmuMuPAjswUp%2FgnDP9rkC%2Bt8vapeDSN7%2FGNjh0NDjzJTxw%2Bo8ctaiqxJA4yN5U4x%2F4RSelwbnAdqVa8fhYrTHjZQuknUu3uhCmbY7C%2BlHD9LhcYRpjUhaYzm4RWU%2B0KpSbSDDhLCAtLwk%2FkQ6fdzvgEfcrD%2Fo4MxzSaa2AVKRcjw8Lvx%2FTkSuN9YrX1RoIv2RnEixbMK%2BQ8REtltyMJhTLh6m6%2FHpaU6yeS%2F5aIDcc0JiI0hRXXbPi28tWwFcOT8dCOPMb23s%2BaueoBbnFMDhfYRth3TiwcEzzPnTsfezi%2BhLj9io2%2BzPyQ2GvC2LaoGAsYtoUxwaKK2Xc8Jkxgmmt%2Fh%2BfF56pEzkLSMtAw5i25RtGv%2FZHriEqXuVBV8VbBdwyAI8eMQHhN5jmYz9xTi%2FifeY1zeoKv2RnEix85AFYE%2BwKooFQrIs66GHqXH7%2FxUbDRgR9pdDfJ1daPTP17i%2Flc%2FYvjeJvL6eEfrgJ3A75Q3bmN37Qe%2FE0PG9r5PGRV8g6%2BW%2FVgaV7Lrah02fMYo1fu6stZQ7qKxrT4eJYLcXjUkRHxpFbTE9MkC%2BBYEhZSPwTb9Lqf9CWZIrpyeTmU7qGIKZt%2BQaO2QbNFrMZZg0kTraQwyoPuio54t0a4NDDgRgS%2FuRNo7AK%2FUvt6WfYUlfnVhjTahLMJr3auYJocChWswOwx%2BEwhcuPw4WSipl%2FH0TFT9sC1xyIKqS0HRU6riRRNaLKmkPtveQNEZ2%2BhOoSaUj%2Bfyn5zip36U8VM23EXOg%2BGX%2BH1qAWXakTBzW25isf018KF8cqpZOUIkZkHPfnEtO3TUuQL4FgSFlIvBOn36XV%2F0JbYmVn%2FPCYvmPKtLuVVimMaWuK8Xl6JKVZ3TYTPMW5eqoUhtWOGbfO0DVA%2BdYYul%2F4jd9bwioO0y04qEy%2BSRDTuqwp6gqiAUejfrHEgufhMCWXH69agnCPOVER2pY8f32OPBA%2FkavQ2ezuro6Ht8nrLgtinZ74A2hInR7HuDZuG4qm251pc%2FpCPBvKpjgjY%2BQsDmoYYlc8pjMtjgUBjJQiRmQcTxbkDtPTqcovQb5EoqusD58wcc4jWv0vtCWAqCcvID6RhpALTcT1mWMa1poFrR%2FyQFEI0wi36BpwIOoP7Rd%2BG59%2BDwYmnrtJrN%2FFz5p8kxCmBzobduPrb1VXEPSHxLtBLLgEh%2Bn5wQttcO0tUFGZC44gb30OiCrWpCt0qtzd446H%2FrQ35ImHZvIRwPX0lHG9kiJW21X31t9cTBtdq5rTRjI%2BxkGNW1zhmPYUx17lIYBhMoLo6hK6OHeYnkVVfgnyJRJdZX3wTyyY59aP%2FEAqmsPq7W6cxDS%2BRMmFMsa0WmtGufaq5vAQ%2B9EDwxUipWtI2iYh4U%2FmkdWL5275UnnulISTl9D%2Fv%2BFxw%2Fuk6JTzJ39Wl2XfDd7HcvYKcgh7IMLHkhUqKkULIFe%2B%2Bhx5IHqiqEJntyZkmagFzoDPTaLBvDeUM8qpO1vVR6a%2Fufga4zqFX4O7wJoNbnGFY9pTHGtePtMsggBGShFplPHF38kZpu%2BnxMwk%2BVJJjPXBP3HhMqw%2Fyvulojmz%2Bqvx2pMeZnyHkgsZTJuzSIax1o7QEWidYHCh2Qv86OlNi5QP00Hhd9iCVft7KbV9jr1EvxN%2F1RL2GHnzTfxShFXd4sW0Pi7Hghs7LkU7Qen3HS1DmdC2OLny1ecIUUUVKnQOauK0J2rxpTuZOvHqq6%2F99C3TJMV2s8ayNMQkv3m3rzIgcW8sGkbUFY1pT3GsefkM6YgABqWIFBrli0tLc4Vp%2FuMQ8qWysh%2BrY8Mz8Vsr3fqRH8hFc%2BAQipEs3e5M1A%2Bdh3nDWjf0Gwymvfs7rDVzDAcP8tCJCCX9Xg%2BmA8KvNoF4n6tr6yiBk8C%2FZceva95gf9UST75JCNPQaW%2F0YjquluxKtV1wH%2F4zcrMhKutftHLlhlbPcDmcVOhoJYL1cMoLX1jA1IkE6%2FF511IpDKvZP4%2FjYTxSQeQ391UGJJM%2FycxQ6F%2FBmPYVx5qXL5AGAcxWLkUUMg4qoit7IZeYfqkiQb70r5ROAbD4JxJNHNaPvN8tkoKBtF0t6JnNeRxxqO6ocN%2Bh79Bi2u7vNlPYmsthg9v6vWG5QljnPozFGkyHhB8DUWJJufq1FFDv%2BFW1VP0%2F48k3CWIa7qWbvZhOuA%2BOdg24DyWT04nK1nInVxM89TmoB2pqP0UVOupEMEvijbacuCKKiTqRYM2hjuvF4F7neH%2FUUIaf3mDFU6SBLRwGtX0bUKTGPKZ7mjzFsXj51xlIc7lNVQ3qahsO0MXbtmzYyHtcDjDt2Jde2xmN7Vu0dtjvVFqzvtytn%2FIDd%2B94dWMibRfZ%2F%2Bl8yx7EVrl6GqMygGnd3z3lGwawAce4Jz6twrq8aNHiaLEG0wHhj2dzAVBEc%2FKLndvAzhPPN7l%2BHAaixgFMIwwEe9rjI1M3f1uv0zk2SCZnJCq1NU6upt%2BSN3x9jqsH6h%2FAQ3sw3Xdaal2Y%2F40ZUSXUcRsXw6ilpua0xNMNVkwwC4%2BFR8Jvad8GHB5jHtO98eLY0x1aHAtQA0wo2ACkpdzmMNfVvt%2FWdKSRmHN20HT8jiPF9JfBvkQ%2Fa4oGyviV48M38YX1W96oqWtoFtKP9uZ6ohFIGowg%2FHtW6yI44bKdWE5k7AljGp%2F7yzesYh0OYNs8MhXW0tXfc4s1mA4Iv1MQUMIExRcmEtUvPxXLN7ndxQtvQxMPP6Y1lKaYtrEs1XRRvE8%2BslqSjOrag02t%2F%2Flhd%2BeptqZDkKtl82zNpSPBVre6B9METySgE1cE8b%2BVEqwl1DFn5j1g8Y95VGMuFPOSfIg8ZfJLxycQp2aOuQMMu1jp1mhheiBWHLv%2FcHOnK46t1OJYLfQVSHO5zenu3t5Onkij9jdUVnusayAHmL6X2ZdWiBp0EhU9WqXu1zK4LPFQ85k%2FnmfSj4tniUYgmafpCP%2FS9Ys8%2FrvnJMp63s0K0%2BE0sXCimc33hrAyKaQuNhFMmhQSfq2OckykL8I%2FxfXLT4jOEPF0UGMIDG7iQQX%2BfkxrKG2yHmgm5ySh6fLoba%2Fft2fvXohV%2F0B%2FbzfJlWy3luk7Vj3jx7TenIvV6ojWiSrNCdYS6mBYz0lHPg3SMsR04lXbIKj71LAN6O7RHyuxHgVMm%2BLYnTVcxCvFsXVaHOukk0RYIE3lNl19g%2FxWxVTjM76htQs3G2nOyZ33zyW5Q%2B6tg7Syyfi0jB21BxuJwus0YNHXkcyvTnMob351x%2B53Wj4axDnNEifjV1lgOpzOHU4It3VZNPBayVG5GaQIeKt6eASE3zKGI5BUIrT%2BKJwWG%2BAh7viBwU08kNUTzjlRw1PPbxgUSU0XjwLOFogVF6OwXFVXrB%2FGm2iqZwym40qAVIU1H95HdydGVFAhMMPJV%2BbMmo4MJVNZkSGmE7aWITE5392acj%2BEDZQiI6brgvuxZtxCO%2BWoYBqmJYpjN3PmfdeAKY7FMS2UNwzp9nMD6QNFyK5QUpsLTHOFLOMk1YJfH5DGb%2BTXMvYKNpnsR1aBZAf1ZSvLOKEf2MFDV2K8kgWmQ2VX4cItWz%2FdJxwMrP7UME0anicZ4rohIPy2swcSPgoZubHC6a9KQB%2BD0A42%2F3Bu6N%2B4aocek7Ka1HRF5QBnC8QKAtJPddjDUBuG37wa6weife5SD5G17a8lWEuog2GNB5n8l9eYCsiMMW18onGyMbYe9g7rOdHM1dTRtjPC60kGBnbK0cA0WHykOJbKaRCHsMWx0DRZhFnS1PCj%2FHmahd9x5Ji%2BD8xRhJNj0NIU0p7V973fVMc6BvBKSzOplEqFKTEdKG%2FIGHZlPeuywHSgPDpcYG15Tk6T8SB6U9Ph1P59bx9ojDA92A3PDEy0jJeY5%2FplIS9z%2BiwtnJ6PgD4GaeVg8w%2FVcCzI5zQxeOlNaUlS01XXwNrnSayk5hr6%2BCFLTBDGtHK7UAlHRyS3fT1n2poI1kKFQLDGgyCnxTAVZIjphI8ATiQlBaXNlgOC1nOiFSbbdpEZSm%2BLRXcemJJHAdOuko%2BKY58FnDoHbHGsnjep1nOD8nvCQbt48fIfIlEnF5h%2BMGKOSh0lSMOborJmJuJMTrGzRPBaxYew2n%2BAT6JrFzZtDVE9h6G%2B0swxPcFHYxImQpkwPB%2FZvvpWZkC7eLbr1PFD5JSv5sdRHReemfASbV9L1E8gVI58kyIE9MtpSIKBqkP%2BWkuur2JWWrDdQUS0BHSIpqsu%2FGe%2FS2KFmmvdnoyhEnwsvG8ptWSFBqi%2B1NvNsGaifII1HkRbgMX9apliOunLBzuXI%2B8%2BniKjiAOCNg7oKkHLNm4lS7SJFHSmdoG3bhQw7X6wJQueXLgcP1ifKY5Vuw%2BQx0bAgdTHHluo2tiIMV1QBOaoIwJpRD1ikLYTJQGRghqM1%2FU4hE1MWbtrLh0qMEsXY%2BDtZ45pnBue8zdwnmP3MLyhzMe3n5lK25uPkKX4RkV5BR5HbQlVWANLtP2nb7guTtRf5AL6NCTBADYOXEv%2BbX9V8WJhj4cMQEL0yROaruaFLJq%2FSGuuIW2qr2eMabxHbPis0ND3K6yJKP8AwZofhJAEmTGPkSGmkxIMFk002WiUoK%2B06zDpOigy5dSN9ayTNEohaKmcFKOAaVWsHp4NJZEEyRbHqn%2B27YKaUqya8%2FENntSRY%2FpxrtMDcxQgrXuu30fGxuzK4sXFpMB6c7%2FQAqrACgzqetRXGgSMySaxdrLf7tbMFMvvzby5wihOpw55dCk7A4%2FD%2B5ZxwoWXaNUFJepfukoC%2BjU7xMG5uxps%2FpBUv3lGF3GhskTYLoiTEUSk8uTGM63Opjlac23soowxrX0IoNB0XiAzBYNDHZ2nmhtSe%2FlBuHEYdqdcYBqf%2FGRD%2Bfa33mnlG%2Fzoue8v%2BUb%2B9M%2Fa8Ppn7s6f948rn%2FsRP2rzO29tL9%2FwE3zbaGBaHSBRta8NVJg4KlAjkjxDyYdHjGkSba48AHOUJrIFix5KCgvmPlHsz9FGq8Z7hxOYe6Gaqt83BBiT9Wk8ZF4vmc0gVVI%2B4beXzh9kHUqbLGg%2FMC%2F0K7LBNKIWStTPlHuUYCb%2BBGa9RhoANEq%2FG7WKL6d8IETYCNJCyQePi9F04z4SW3OdFaZBMQiFhhiJz%2FT08SmCMdB3trOtMbW3ihuHYXf6vzmnYad4zmlYNPRDj%2FI5rS95xu3WHto0XFlMUrtV8uERY7qYfzGu0zsV4eT%2Bz8ch7Z3ITgsFrFmF43EYXmBumgTWhbBkeaozjIfM4yWzhRzJHpQkOsxDL50NKUMqTV10qcMU6oeW6CNvQL7JMimzOMA%2FIDs4QYKrnh%2FzkiUI1YIwAeWQSITtUk%2B7pA%2FoMe3F9D1GJc8O01dNnJJWaKrJTDl%2BqrOnV05rwPpCZ2t97ZsVujvFV5QVpq09DTvFa0%2BLRbOjtmG07WlVhvyJfyYvORbFA%2FlwTjD9XYK0hD06jT4bJBEI1EeGcRC%2BMJwfZkeY7gSgln5x0i%2BGBnc9XOVs0MEew3yXBaZh%2FSPfBJR7YggsXS7PUK8RGvuSXc7d7yicL6T97Wc%2FPtvRfAjpA0gf8ejeWBWOipFiGn2RH2WFBk31iAe5qe1Mt8J64Fx7g%2B5OWfq9ETf0%2BL1Zvf9Ev%2FcmTlGuPzoafu9wMm9yrpkU%2B2Z8kBNMi%2FeX0xPgFIJalyEf2Z8T0%2BE8bh1huhOYBiQ6T0rHaxrU%2BAkha%2FIVc%2FRHGWqzxTSsf%2BSbLBP1ognJTkimaNaHMC%2FZ5cYTiN75%2FZEjBKMudkpRx590kp%2BNBpufZsSYRl9kypD5JhrrbWYeZMpQE1gPRJb1hXbdnbKMT8czum18ujG155Pj07%2FkFGVs3aMRn7ZFN6OM6VLXjYJ1B3W%2FjClMh%2But7AjTnaD%2F%2Buz8R5HbNf%2FrRSUutQxZGlqSkh2mwYiLfJNvSV5IC94Qkh5PaIGhecmuhm1zRJRPQ4JHleWa5GeytnKPafRF5g2vCE3qmQeZTmuBdWdvFNw616q700jyyBA3NHlk5zpbgnlkHR9Fh%2BQo5pHpJZNGGdMvRNR0GiaB9I8hTIfrou0I051AdG66fdo9yMH%2BCjhvU5QC3t%2BJfDp0fMkK09iCNN8EJ1dkWEUGlbpOfC95g2toswf1rFzmpVFtXZSGQOxPk72PTPsir6WtZx6ZKcKDTE5FgjWbAz1IeYqXP2eX7431IaPb5nv%2FKdN8b41SjBqmUfA%2BepiG1Gza%2FtZhl7mpB%2FXYwnSY4AQjQHeiIqE3HTdx0uQ77phy14Og6WP3MkEa%2BXTozJYtpifG8k2egYUZvaHI8dke3nGfdzVe4J2QMi9A2ral7PP8NFnHsrQv8ku0zL8nM4V5kOm0ZlgzsTcViRjHblZ1WVjfiOuyQHw2qpgGMY31kYUxfWPufGQvuNCnOajHFKbDBCch3jJ%2F4CtvgtSol0Sct4C0q068KltMXxPPN1kET3D0hqKSjJMZeDuiGi%2FHD8VtKhXSamI4J5m6UXWtWeec6GciqvfNFh7kZWBM5RJtLlMwQpugoDP9W73Vz7q%2BK6p%2BOkwgp1ue3%2B%2FNk27JXSyrVNPUzEE9pjCtBCdHD%2FgMZE%2BCytHhWita2on1QtN3EZBWFoHgEsP5JkXRzxi9IdwmI0wXo8bL8TiiTeW1NlsWpVMa7pwzS43abHND9TNYy1PunEl1leRUJFiD2JsOA%2FPLQ2uG1JoT1vO9cHtjfVcozwlqc8PFsZhkiTdmfO6e3OWclJaZgxrejjGE6XC6J0ZWiaTjAGnk0nWcPQ1Iaz5dVpjW8hvZJKOfMYnp9kwygp6QGi%2FlW060qTSlUzgTOB3oEXU%2BZ1vDoZ9FgcMbJ0%2B9a8bsfIY1iL35MDC%2F%2FPhYVsWwJ6z17ull48cKH9l4w0MZwrTt%2FWCLY5WyKXKA6K43FbtwTnJDS8xBjcDv2MJ0uCwDI1zwYanTFdL17dTlbR8gjXy6LDENS0GJ%2BqOf8QQsrsdxGxRYhbLxpcZL%2ByKYNpWx0qlL9Asic2hlcWGx08izrrVUa%2F01SfCh93HdDeRUZFgzsTcOFSPw8ezH4aBgazJxwuE4H31Mq%2BVmUifDmBbs%2FrUWx5oiZKFsUgeIVt%2FdC0uRH2bEmP5OaRm8vVrIh7DsWMJ0uHwy887zljpdIf1%2B8yGqajeQzgLTzlLAD4afMRW1gPwGdnFXYBWobucaL%2B1fZLyCWjrF1dKuvGZ1CZXXQHAudcU5EbKptSx%2FvYKb9XDj24l%2Fcd1fMawfLHDGnxH4WJVCr3FdDds9GhsRzO6xgGlLTG92HQ%2BmodDcq8WxycIB4wDR6rt5j83jIAn%2BPFJMLy1Rwg9s85o%2BNQYwHaY58I8wgUIeqNMjSJ9ob%2BSsjg0K6WwxDWNeifrpZ5R1QDIWyS7%2BbsLO8b%2FkGydhaJ9Bs3M5%2F965Ac5TB2dYWUTDRNwkKS93UbjWEs7YbbTNcYN6IguVMe2%2Bv3NrNQIf78PR5%2B%2BtM15zSHGSjB3Ofss1kdh17A3O93T39A6k7R4tjpWex1o4kHSAdFzS6ruSZYuXlaBtYF8Oai01e8ptKnpQjx1Mh%2FGZGd2JaRfF1OmAdAsVUEtWx2qFdHaYxnJjRP3I%2B66ua%2BAD7QcrfsC7%2BBBOm6s%2B7cO06S1ongFxOKG3%2BlMXOMPKK0BXcaGD%2Fr3NwzEYeCz94XlTWL28cN7cqAETKd%2FPuHOapVYF3vTLMg53o9z2nlFraixhWrkmBuO7jr3BibYmSvXr6nV2jxbHSjqgFg7EHSDQq1z13dpSrr5jHHblguekcFVsf7hgGoeONqbDerQdYX1d7yrU6QzpJi6g5qwObSiSEXGX7fznlqtE%2FbQOVCHvJy147Rqundyn3HOOyuyhYTsfoXzNM1A6hbaWoKE8D86wndVMK%2FUhFU4x12dZKbz42WL6t0Qw%2FCIxmrgGTOwkex5HkUotBD7R17InHnj298DTX2f0MW09eAxMu%2BuoEpNqStUK4Sfsnnhx7GBfJzf4TwAKyjfipq76ruKnqL7bW0fMkJdGjuknocebg%2FoW2G45xjS8CJ8zbZEDmA77u7KhO4GfpowKCWsPERC4gFqyOrTxV5hgc9adrvOf%2BWIl6kfnSeJz37uXm7LTr7dbOWKVDH0RXnI3jy68q%2FkFKDP3D1QcKl30mQ9OHT%2Bcor4CzSdR4ExfxGVN8OJnh%2Bn97GUoY7JQDA5mlYnf%2B0%2B9HSq1E0z%2F6T8aonbbq7bDaFGjjGn9Afneyimmj6Hg5BvUCa93qrUbdo8Wxw6cPy0Ug66qTBMckd%2FU0TeI%2BtnqbVJ99xYl%2BOP41iV%2FgXZ0i2nNjP%2FCsM01%2Bf3bg%2FrBu%2BFj9U%2BcO314TE9BtAVAmK6XxLwI0haZ7q4sXuZCfIPrshqOS2VBd%2BKChVTwX1dLiOYCamR1AKaGCPvpqAu6YA5BiKcLtIm2URBed9vPzahCptKm6hpi%2FNn25i%2BqXlUudyVDZ0aq1BGMd%2FldMTMnigf94yrSvrWtw37KDm9ufe%2B995qPOCIS6p3B5cfYprLCdIqiAXQjbcDESSfML3%2Bup73RSC07E3BQHHs%2FHZsd72vD8UGzskgHMW22hdxjGunm05Wr5FJXgvvTpPD9B9N%2B0gZX3%2Fo%2B2z3p4tjzvV2t9ZE6hurvRLvwimpwx3ABnvB71%2B6pqtjMLIMX%2B%2Fv7P448EUxEmefBNPxBj0RP8XE%2FDYfpr7mDmv%2BIxqFc406xULD2eyfmf9m9U5kZvbiHKSsiL008kP94sV7yETJqFhUw%2FR7fXTubz0pcGB3oj%2BfjXrEqq4ZPzB%2FxNuJpsJVcECzwhxLtiFAiSLs4%2Bs5xnoYVPxDnVoQ52MakqDszwNx3m9vc%2BRTmFh1lQl4Eej7tuaJk6Fwjt8eNt9jOWqO0bd6Rl2i%2FVLOHeVuYuWU3CMOosw7tUzjss8T0241H6MBntuRocHIoqfodXP5ZrVI7xJtAZ1dzghExqbjCkYYSOFhTQUzbt5xzTGtZGCJO7GRUO8m%2BuN2scP9LmZg%2BJ5oPu%2BJYtnuOpvZGUZR8vH7Vq1j7BndMf39vJ%2FfhOMh1tLynt53k0SaeiKWFXIPnwzT8QcWkLGAWDTlplhctiA7qE%2FjreynhA%2BacJRwi%2FokFj0UZUViFRF8XLyigVShBUBGibrikVbhUyItQiE61sc7myQtBq1Uk99Jg5it0Dmn2RHiou4aO4Vc0cGT4Q0n01zOii%2BkLkdXhayxV8eZuh7ndb7JtvNr5e61Ov6Hcbe5gYKDSJpAMcua2euLiZOivVMbH1pc3bVjn8cN52iQybQs4z6oq08SeC5B9li2mX6ok%2FDY0gC0ZQ4o42k5y%2BSda96jU6kHNZ1dLKs7qZhXXuhZTAmfIHgwkTRe9HGIaZxjKt9m4OC9ORrWTTNLMbtYyYPpQdfnxY0doNLWcaG%2BmF7aLWmCpOqZ6FQihwB1zkhvZEPyF%2BIb3zxRGHZmLtKMX8ZngwTT8QRK1pFkY0lN19fKFOKgPpDD28905txi7q3%2FiyqKvizS4v75NT%2Fc8%2FVVW4Tojry6le%2F8mlV4oW3dMZ4%2B7q6tqZfLC35ABU%2BrupSDZuk2zJ8JDm0LzMVzmMG34Q19i0RdEa%2Ft1TwPIVxOY27Jpg5U1fWUvus0doJ5XGJEBg%2B4%2BDWkFD3WhTAzaAAK8C6ad8Ysyq1yYW0DAzZsz71NZYBrvnWwGITmpP5RKj8NNzUTLiPLPtSq1sYN6ucRTmpLJ9jZxt8mUwBmyBxPltq0ML7bnCtM4wxzNStsH6mTEI5qkmV%2ByWrsEpk81GiRyZWyK7Z6tG1271%2BuSXk3ljqmThnP7Cf4Eun9aW16l%2B%2BZrW9Iyq6s9kn4UhcWW7Tt1VJElQBCRg%2FqX1fr37XQ310vWP5G%2Bj6XhF%2Frnf8dfgRy4NpnUcUdiZjkLm7u7vp0hF%2B6o1Hs5kPA5tMWWb4QLObbQMax7XoI%2FlD8X0S9iRN8JA97XqJmBEh8%2FLX%2FJYtqJBUFstWzuzq9Nuz9I%2B9GWRj1x2t%2BaYhrxsUZb%2Bpphc2cKJBVbZmHjiBplPGA7ymfOGyqEXyA5gcAebSaFruU413PXoPyzZFlCaqGhOQL1hniquS2w%2Bb0pgbNkD7aQEhuyVjIhJzYnmMYzOzq0lkZ1MvIj2l1nayU7CJ%2BiGVxdLo2M0ai2SpS%2FUhtFgUM0zR2DxrAC%2F1XfW1teUa5j889M7QfdO4ZpLOFnMkdn%2FbyCnuXrfFBXJj55%2BWX3jN6JJM5Pk%2FLxSuKDf4uEXKWl4uewwhI31%2BNHATP0wi0V7l4KElJe14XKN%2Bx5sA7HMGwT83nRCqmOmCuI9twXIgag6CilP9jD37kgCGJF2NzRouPmqdMfiJrrSPs4dZhHgsRwX7Y4NorlL8EdDDmu5JeXVGyZhY1jcaGkiMPZmQWmYRUtFJuBlHoILEdtKIO2RmgZUf5pW9ZfnyZQrzN9zYD5KNx1sMaUwKlm6woplfAgjklhcAQotU4igOnxCYveYlrPMHZdH6Rekz4no%2FakELI0MX3EsqpAZawYWKQEF2oUxZDh8WstRwN3gf%2B3Vv%2BYjjsdpHMNwXQlD8U0luDm6Kx1cH2XJT8pc30yvBP5%2B%2F5hxZp1Q%2BcNwfQ6bVevF8m32o4duFCvcvdSkJDyGnQaGbtt1XM4hh9hH6I9UQlmLPozpnkQrZgDUHSAAgSHvzk375qV%2F%2Bij%2BbHN%2FZpP3zz1LhAwcOb2ZPdtug7uozU3NvAXbAt2mF4Bt3Iq9qMyCxvHXNo5KEUcHTSzwDS8l2IzsFIPgWV3dyPFtjYLLSPKP50iYAjUmSHVEVhcrzIN3Zz8HHV72ZjW4LkhPOB4jGufQHzDUKMQKfniHOfH6u%2BP1UkYTF%2FU6uqpk3X%2BZC1uHNCnVt%2FNm3t%2Fy%2Benz8noelLQYFJTNn1WiGVVFlXGQvljxzX2bkuGx6%2BVkITLGf4kqWyWpgfdHe4axYgMwEKXgDk6SzBCykbykxLtk%2BGbyN%2B3AB8k5mEViieuEsTQi%2FTu%2Bnb0Qr0K91KQzJ1XqFz%2F4eE4KGkOHcM2ewNCSzCT6oiJBjkGcwIUHU%2FKH8zhL0I94YZbp1GOduL3vGbCDZPv4MGZ23l2HdzvcsY9OvAXDRCEUD2RUrExCxsHhQw1RTyMadPMU2QfNgMr9RBYbnt%2BgHNQhJaRXanqgzAE6uLIR8ID70zq%2BYUPbQ9ZkWxMG0p5GG6Ih3VcoFpRxGIQB3GRkieeifxYvV3Nb3sLsNvOfNjtQjIPzNT5M%2Bc8hmKKk92dp9KY1gBo1c4qPj99TkbXk4IGN0li02c%2BWVYithBlKH9%2FOxVJSZYMT14rIQmXM%2FzR9vcpN%2FjuRQirxHYQhYUuAXN0FmPkQb0bhvYU9k7k7%2FsqPkjMwyoUT%2FwXfKgX6d317eiFehXupSCZ8cAjyvUfHjgwMIeO4QT5sIbGGWYh0QfmAJT0mDGb%2FiBi4oHYpElmn8gbJyPPsw7qSz1JR%2FQXACY4QNuCWdg4JtHOEbTENcqric2KadgMwsUIgX2eL2WIcD23KD8aKLAE6pJo86aUgOSnuRyuReYbWdsUIyoTGlSc88biFou8se1USxSLQRzERUqKVz0vnRtPkdeY4mHDF2C%2FLXRuEpIppmpVnU8QXM7VcvXcej%2FlMK0BUNae%2Bfz0OhnRk4IG639k%2Bsycw5ZVoauMdcrf9VbokJYor5WQhMufJPizpFKYd040%2BO6s6U1I7CAKC7cEzNFZWNIXh9ztQe0p7J3I3%2Fdl94HOwyoUT3KdTsRFend9O3qhXoV7KUhIeVWu%2F%2FDAAY85vmMYMAuJPjAHoKTHTbfxH6DOXYkDT%2FV5jfKaxGZnMzguxkJ0SoLvddH8gkdJ%2BVFr3dqMSLR5YxtHd8GMCDsKGepVHLwtjfU6t1UwkntXd6ABvOYuDuIiJWvKOFzWcKCOvMakwqt3XTFdJT6oPbW8J9AuFJ%2B%2FooSJ1iUqSe5hxTQCoOtYe%2Bbz0%2BNkRE8KbT5BbdLYshKxhSgHlL%2Br5bUSknD5bII%2FSSrfze3JfHen6ekO4mChS8AcnYUl3TjkbvgnsOOZKN9H%2FzXzZBWKJ1yHoRfh7ubtTEtepfdS5VW5%2FjM9u3gOH8P%2FP4bXPh5e4KK8g8SeYJJoBdWs1LPARp2SoMo%2BNJN%2BH32zHlAzIwrdk6CrZySYohC8LUyD3eYLIfdOXMk1VXQ1vGDO5pVg0G5CJLzGKxfi9EpGKsQHRWSn22n62uR8Sm%2BtrOK8L3EPA9PprAVoz3R%2BfgVORp8mps0n8siyErGFKAeUP7zW2whBuPz2myaOI0nlu43DkK5rTtNTjDhY6BIwR2dhSVcn74abY6m%2BifJ9n3If6DysQvGEKsFx6fE%2F7F09a1xXEIVllSIfRSCQyoEUGwI2JAGRuDSECMyCwNUD4RSrIoaoevZ2al8lhCCosDf2KrZQoT5NqnQx%2BQX5AyFdqpSpfGfOjo7vG%2B4OPLZZuKeT9s3cufe9%2Bz7m44weRO0cwQ7kUdBVsVF4L8GD71fVzv%2F%2F9zfYE%2BBr8lyMn65e0%2F%2F8Y5UFvPb8WKKNxLefpzdnPiORnr481%2BBt1obbf5GLa3iJbIALi4PYhr24vMKOVK8x4mEuUtFp0FGiLc%2F68j8vNIwv%2Fl8GDZG10ODtOT0%2Fb9PJGGKsl61dyuP4ebMjOwkXevSgsj1St0UFUfLmt8j3%2F%2FeflJ7865Kte9wFu3KnSZYBw71lINEG8e1np%2Fkz8lTa9SJ4W%2FqUet9y78QzB%2FSCOALdkQga8RWec4MPao44ipPvLDp5ZEFDfjPq27M8P9%2Brr3gV2wE%2By7ozSfj6K2UzpfTkInsCqYET%2BMgLNvVti293j9VZa6ntnfqTEbwdlaSRe2euZDp8cy%2BwZiUeoNrBRSrgg5ohjuLkW4tONhY05Dejvj3r87OiYjvAb85FSjx%2B%2Ffp3ica%2BOCuxJ5DCH7DHbhFwmn%2B8im8%2FaQ%2FhrIUH97DVpFUL3now925qrmQ6fOkFVkj1gAaNdpyvQL25CDo2Tl7%2BlmAk3LwIGvKbEW%2FPFRXbA%2FqGUfNxrdHY47bAnsBWO4C5kANYfFu2kzhr4cGVDaX%2BZAveOjCOtgtXMh2%2B9AIbUpWfBY1cpGKCoCPjKJSXvyUYCTcvgoYVFVsL7mnUfEj5SIcv3AJ7grXEA7Jcm2hfyucpUiTx%2BJUNpUmr0twqcg3DlUyHr%2FMCazU%2B3UbEWL25CDqKFi8%2F0egk3Lw79S27YqvBBD6r%2BZhLNJbpyR5oXfsNgFybAMyJte3EDcWk1cA1DFcyHb70AhvImlPSIXEUJw%2FvdH3Brthy%2BPRGq%2FmYSTZT8IX7LvJsmGsTA2kF2E7cUDVloKJiw2ACn9V8TL%2FVaOxHNfZZUbGN4Fuw1Xzs3tFobP2qrKjYZmh%2BmED8vjUaW1FRUVFRUVFRUbFpxEUFQ4O2YwkJU4FgbLqpLpCCRAwqBsZrj%2BIYYY0FbaJRPD42CBMNDgoKPjapIF5zWDxEGsNTPL664gFZNuZrv%2BQn%2FMKqsWCF3CkMjOS8YGTBwgisU%2FMTYgUd69w2Wb%2FGkBOL%2F26Sq1zvvfDrfEIFiHqx3Jy5WsTISTHPOsJYFgbxNYxUEBzr1DhGlM1Nm2hUZBVF01B%2Bot4e5MEExmxaAeXzNU8Wl%2BTj1ZnImY2yBHRdJvmA%2BH%2B2Awrl3azRlp%2FsF1Z3BytkpzC4mkcwkvOCkQ6wMALryf2EWOlu9ehBnfkAgHHijhTpM%2BUSzvBPSJ0W3BLUiy4aqIDUMEm35VS72uxcKq6HIhXURBUDSS4JurMwEr4CmRrHKFddYSloE6cSWoV7jHboxkRLMHvu3guM2bQCLlySz9c8nWksXYSRWx0ZPokjm2%2B0li5PZDigMAByc3AHZDQsjksl%2FcRfyMLiZsgVyk7hmrL2kVyLMNLmBSP9obAwAHlf%2FITISEPemAIfzFCMPgAzFMh0gGYVtP46ozgt03YoreLePjU0xnUITD1hIjK6e1KoWwYTQXAP%2BlJb7jNfFYQhYCJknswt4RVKR3GMQnU0rz7aZEbx%2BFFpP8vTS0TTUNlEnX6zpwmM2bQC5vUl%2BXzNpQymcAG7WzBXx4ZP4si6v4X3E5%2F2D1pbkeGAwtT7oW0O7oCMLs1znulPjWdLy6%2Bqz7lC%2BSks0c%2BATmqXRopiGOkWxSwMoPxshQmROY78bgXetiHAdL5QBkeQ3gFHq%2BSyffQECxQo0zGy0loqQDEjMHPExqjwmPalwC%2FiiM7cxhNq5QcHqthGUmIvMBGyuGtX%2BP%2FSURzDs5jwpQpXH22CUTwejxPHhZD2szy9VHSGiZY25Fdmz1FgzAAFQQ49Oamb3pmaYek%2Bc7Uw7hbsVqfVC6XR24LRPLnyPNDPQwYDglHfNgd3QEZr6rlJ9acjz2qaX1X3uEL5KQRNHB5SnvZxCiNtXmZkdjgtDAAe1fKEwPBKHtYCv%2BogYDrKtKzktMCJJYG7nmBFGsyHP2j2eEcFIB0A5v0GBDsrpuFHuZTxgJGss8Bmri0QWlFsI4ngTUcmNgxVnt45SE8AzzZGJgZcfbQJRtnx5GVhWaZwFqX9LE8vFZ1joiXD927sOXHGZDeyAQpwzwnr5EQ%2BP1NzLB1rVkvCU7c6nYijin1qFUCujB5tYiCDAdH5JjE6t9kOyOnHPYe4%2FHTi2cf79b1cofwUgs6VVnJuSs%2F8CEYqOjMyr4GghetAvvPihMDEbnzpBR70ASDb9GE7T7pAIi9YWrGW9QQLFGjnIGEBhwYoUHIgw0%2FGSMo2X2BMyKXA16nE4QVaI%2Bs6kgbU9T%2B3kUSQ3Z3YMLQ91qndzO0yYwXFGSNjklx9tAlG8fj7ZhXpE5RbcG9fn14qiokW2qUk%2FWbP0hmTMSsPUCD3HK%2BAjQ6snj3JZ2fqHEv3ULkl3llbDI8pQhrDi%2FgJbgt2%2B%2Fd0N9rODTIYEB3qvkss69kO8G1CDMuX0mFEfnrBfz5n%2F5WMh%2BMJVyg7haBdp5Vsw4k2CjAS8zIjXSsVtlAo45d%2B37mnL3sTWry6OJU9fXrxatGfKWc1NOtbpyMNaK%2FQ7AVkmiiq1p5gd9dQqrOthHQ0u1KqTihAMyXDZcZIis59YDZaZFLg1dZO4GTKd28VsvHkupT1v7aRkiA7Mr3dMPTsqU4NY6D3Ddm7%2BWxBjze5%2BmiTGsXjfzzApmbDFW2u0Ej%2FE3l6iaidzlJbs2OzB414qLzXAWGIguZ%2BQQFWznhnknx2pq6xdMoBhTKeMmlNb3V%2B0wtlqbeFx2%2BIO5ffNq4rjCPookC96qKr%2FAGtV14WaeWidYIiRQsUbRdFVW0ioA%2FIi0AAd1x4kxUheBEYSAzECyMEgsCRNoER%2BsVFmNCKE1GxxiY5flAjEYo4jEQzFBORhELn%2B86Z6%2BPhaBaWF7kbA%2BLMnXPPnNfcGZ%2Bfhf9EWzoYB63LXVBJsrP%2FIHghn79oKovjvGwsKQmMPwHDNckUS%2FTLMg09fQsVjzIp5QsCnMGNpy06FyiYkBNObaij9GEN5w10T53FMWM4Znoempn85Zyt6ihDkWxsrAsA7bUioWwca2AiSvOTS2%2BbK6Y3DhN9wExI1cIMOoEyc6NRyFtHUiPsZqUzaOyskvIvAKkSok1KVUHH4wWpfwjNKyl4yrVVigFDwafj0vQayqhzlI0YBkRRAbQ%2Bk4lC2fGQyjqdwhS4xaGtz7OSvWgTMexBEj%2BK%2BVUeBeaZMJOkoiNMkJlLnUA1F%2FHP8jj%2FBk7CoN1fu1JQA2bMUnpMenO583HtVGgo0r31%2FJtGMDLrcO1jgUendak%2BlfjOxrHsWnv1iqnsKezmO0sKxTQsJtyLNDM0xSwl2J9yNetrmTcN2S1UjJmzEFsc%2BcH%2FJZYQK3MuUDEhJ53akIRpI4Z4ixhsJL1CagOJSrig6yR%2FydiqjjAUncrlXC4ur1UBT21vNaprt6AN70uvUo418U9v8MkJwHWs3Kl54syV%2BsMNjMDHAr3KZ8vlCQJ4RMJHp2AyM%2B%2F4wQMf16zcqT%2Fw2RmNwMzsnOE7EkUBHY8XpP6r%2Fn0MXwCRjowVb%2FNdKEXWfwsrxAIpl6NhuW5N1nLtosL5q3dxih80W%2BGmOx7cENfW2IxPsIM58WfGmKKhTGIeaZjwd0Weah3zQ98bJowQBc1%2BjjBBLmUC05xySq%2FfKEje0lKPpU7hCgyYDIUZobylN4Gl2csdW2%2Fguhi1%2B%2FdgL3QAZ8cJ62Cb90KpAmGbzUYVp9yrVkq4HmBp0rXWmAnGkJyT3pdYXgxf%2FXv8JM2r727US3BzY3Tb1c7Qqq5TQ%2Fdr6s4Vilm7UyFu9D1rkGmVKikSgg%2B%2BCSHXG1iXj3%2BckOrUVqr%2B9Am5affQsRMYoc0tSBERaxESfJ3AmwzLej7rJX%2BZ1VUdZVANijgnDfluI%2Bz0%2B%2B2Gt4y4q8A773bcQtMacStOec3fXF8tStFdKK0G3cFwv7u7syl%2FuuRKb7ssWwJ%2FUCh74N985ZN8i%2FCP08Kthgew9TvEd5iFmG1pVcGwjwsGDR%2B3CoPeuvHA4mMsoN7072FR1wtYFNYEwfa7oD4LtdJ1VYyB4leqdQ9WivKihOjU3P3WHb9Ip5bjraZaUJQY%2FZmH3zYDTXqkCl5CxKsjALHEuOU12o90ciP%2FaqJ81gkYc2yClHJKoujHhUUlnrktGSRfVGnCOppXaEpas3aGYMTF7U1faioM8k79h43qTas3k%2BC0D4sr0GMv9Ck1%2FM2D%2FCXC%2Bum5n8dUpo80hCiyR3VvyNEhX4l8pBO%2FfCkinm6tiZu77pJ2NQkgZdjiBi6hZXchupNIHJ86MGgCHvyWYP632oF3qyQiBu2mCkmnVpqyPaJFAMWDfifp01%2FHOKu6oAjltPkdl%2FNdBLx5derEialXD%2FvlFVnVkYZCbAhbxnLa%2FYPHw7BG28hfkOgNmnzCQlOAGdRHuBsAmcGtADQuLK4G%2FccYAMku8U9Weksk4GUJhF3xW3uDdq1M8i0SHU%2Fr7rX8FVQghhqPG6ZWFQz724wFUkKqt8KnnV3F6ZVVLgp56QLWhCv0xo%2FHo72w4RF%2FbfRjo4dRCXhKpKPCgfxwJMc%2FJBDEHW%2BbOYr8pNEwrRt86xCPXBDB6wh9JVS7zI9Qca3ZG1IYR%2Bi3RPlsEzDm2AQp5RSi6CdFRA8lnkWvTviQjAx8%2BSrRCPMztpGRgKpICN591NIYzN0SLv46RQKI0BaeAJx6QWcA4yqL1Iu4CeubtTL8hV1rv3Qqs73A41MRS2J3TCPqN8pRtMYdVTK5GD8pt7JTbzx5DSB%2Ba4f4VQp4gZteFFNCYZJb7CD%2F%2BY%2FKUGQ3QApaVBGDR50mhKRTE%2BN4LE5zOw%2Bf7rdRdiTHbeOsRggrQy5iNYpaZY47%2FuKLxw%2F%2F5Ve%2FOOKbLMPuF71m7wAUvDbWgBpuIcfozduMPK01c2qaVrAV9TEKPRo99%2BnPkt8cHkSszLNMBwoDMBYtLwu9dUaP9xrLl2FluTcWeNoqWJadh8uXAbO0zQwzTC0KaMi7nQB%2BEJWQ6q0TdvVzp0ouirv4OaxJrkD9HextC6XABQHz6ZUSjseuDwtqpMWy3xnz%2BG%2BCVRzvQo01dLuwiBoF%2Fry1092PoUEtXzmPXKTgX2MeoEExP4gE8FEGmQMGMjibJIUpCdLPOAFjTsoEzBSunCp%2BVqTnZ5V4pp84yGZ2Dj9eXboo0BQzYEZGg59JCB72RO%2F6jkKLlEXUZZ4tPAkir7X643HHh4NAamoMd36btoYobnfNPmESwhHBplsjNXUXrd0dDejlWvpF4ecnwBfr1RhAvm1SRW9DwBwClt5JSmk%2BPVGpIu7Uw8Ggyaz01lkVsbk%2FCOnUgnHURG1mQuHaNZR%2Fh4wr5jWWXCY9l3vPx46l%2FfKz5%2BpJRt2tBH2YrXrXuRzeN77O6J3DbbSIkxjmnABQhoPxkLFzIYtX66jxWE4MnE9n5%2FAC32AAUrWy6lphyjwIPWZlpA3ZGCn5XcSWuyi23NqSCFxWFfu9YJUZR0tI9dYvnF2Z8lnYlKJFzWNNvEIdPspBmpCZk2GvYQ04Hidkz3BXktrh4eMejnehxhq66ZRhd3%2BEWQ%2Fz6ReYr9QjixCcoYEJ8Uwmc0Y8SYPMiCEKgiJRKoDg2SZgzEmdgE90UTn1OcMuduPIBDz1u5MnT%2F7hZflQ5nSGgfjaEp8uzICtNnXZdjR2eoeGsrqZgEf8pbju7TVCJgft1EJY7KBZAW8cUlNjDPkhPaK0et%2Bqq1iu0eJbND96giMGDEZ5pNWYgSh0k%2FhiXq3V%2Fx7styXymPipB9%2BA805SyrL5tGUlqVTLtXA05mlQTzbr7IS1BQqCjEvUsXKu3VhGVEoO28hPsJPNc1WM9F%2Bep3eo1TjOu%2FBO5N%2F%2FQvQmJi5%2FKf1dmTknQdFPCofpv%2F5t5rTUR13W3vpw8Xf3waSFLRwhziWhIIcdg%2BmZOT4qrSG%2F9y0MJys5KQoO%2BsGqZhyWkPzCgIaS8Gkq%2FyoNnYuaxpqctBzjHfNAW01e6FwZfEUxQ0yJVDEQiccLN1f1YQ3dOKVLKDGftkTHfKUeGXwz1GoGifI1EAnoSbT5EWbvt5AUSBczUNBzT2C5SFPYipzKt2ZTv34J7dNl%2FPkVfMEzO88LoPw2A47XplG27Tm9yzd%2FsumPrfiE7pk4xTFJKoS%2BFbEIWOH%2FXoPGJORL5eo3N2wXJBYOzDDlRmlyYQ7iltJGxaKrFWXIt3o1BgEoAm%2BX8YnatLybmBcpb5jL2MOjVqqtIcMOTzv9H7upwxZ8whJ1zKe3YQ7nUj45%2BVF9mjOWJRw675rFtzanXuZtBn%2FyfSsF0s5X5zSBfjslrqEA3P1A%2F%2Fgb%2B48NVhMH%2B089Q%2Fzx1J9mdLtgGEmieklWciwKEH9cxkEJ%2BU94K02ycJhPS0Gqi%2FoL759Em4QH2moEgzmLrx3xIcnM%2F2l%2FFInjB%2BKuPTjr8kqPVsWFwghFELko3SJeom3EhqCxDZeiCBXBrnQxsoPudHZruzsIY8dxZ%2FoPM85kGGd1cRbt6lgHO9Etqa1jUSE44oCpq8BwNQoxJkUIJSGQqElMcc9zzu%2Fw5J3jN1%2FzfY55%2F1Py%2FS7v7z3nPOf2HFE1vuUkdEM0R79JvKKDwkq1VxvUle9s9Nm78%2BcvhCThjQzdi1GAmcBAPxyg4i9AgANbBNdVRRoZr2k2AVvX8iU%2FXLjwH6qgNWpfTQ5wgk3V2ooq9X1HbT6S80iZJ3tPwwkQ%2BFL9IUFjLmY%2FuX3%2BrUszlY8IU0fXh4wS82Cl4NssAwS%2FPLNBjQjJmRdE064mHHdzsH7XImk3qJSzjC9pT8nvl0xFBhaz22Bk3K3yUR0lYLvNULsQUKbxse%2FPUxo6qDJN6ZpVViINT2UzFwOU0Fzm%2BL0LJx%2FIIGwq09MvRYE%2FN8Wllz%2BbcTXDBZ8d2cWIO0ESkZxttVmcWRVSyLVgqR5J%2Fsg%2BMza%2FRn3MmfJSJfoB8WS5ZXpdLfwnKakqv04KPm9e6o8Ut9wI3TwGmlOmh%2BFs3wd7BYlULGQz8q%2B7rnzmoruAPBw5dLfAY2dIpvgLMHgEW4TcpKXjrpH0CipIsCStbcL9c6gHHuCATXsUyp2x9Oih03mni6rC3tNwSt7pWJ8dBIhZ1dzvzqDKD3sawXfn5%2F5jAHRcEucVgMmNO91ImHDAPL%2FoohtLr7wSvYvyJbOnfM7vlQSUzCoZHEAQ1FFCO94Y%2B%2B1CEGV65bLcLRyDi73bEw%2F9m2NGjRozWRX0o4%2FlSFCHZ%2BUD%2BTu3uYblUyY5o11HPvOfwTZMm52FE4OdputuSI47LRan9Mop0lmHGJIcSZwrU978zIAeGLc3ZtTEafOW%2BZPJ6j26e1OU6edUJqT0ecK4SZfN4PvFLUf37yXcgSDTjN3A0Im9OnnasZBkxadOnDD52zfCVbUj5R57EpIp%2BgI%2Bfldt0Q79NxHpqzTXjfGEsjCAxUrmsb8v8wAHbOqqVC19KXrdUexeWsG954vTcKrBoKm9DCrfhC%2FsaQDfder20KHOjEGTpnF15ng8yrzo7XPRrjZ%2B7Gj5kvaUsFHEnQwoQSfyLqXUD%2FbKrK6IMn3n3JytloMh01RuR3uTK54vR8kcKc5xzW%2Bn3TMqpZ2mJ4SnjHaaiF8s6QKHW6dPHaI%2F7cZmurruGZLrckQktZCjRgwdOXZqudoid7L4dI%2BsexRHXAoxzh2Oa9BE9LU3sKaGbyOPC%2Bw6fviwEaMunZ5bpuPXijLN2A0MHeyVwXfI3Ngh5w6foOUOdPERG6ahLP4CxLEAOHvUocWeWa5bEhu1zz%2F%2F%2FG%2FWSZpYZFuqIHAbHuDMTBObUpWiBhWcNGhKG%2B97zxcPhhM74weBXz%2FHMeZDZ5FWHqPskk04MtTeAXIa9kYkcP7M6dJfOW7UN%2FCUcCKyY8XIDv12htdL%2BIjyzrv9yYdEmcY7o6%2FTFzo6p13DhvCvWqapS8UfI2IRVTp6yNkW8FzOOa65ZNrDYb4lVQvmLHaE66FlKjmiMux%2Fp58ThcfYcmzvX7tadtYlYU0zNuqG4WB7tEpPNiA9Erh6%2BJ7OQljJFGpA0UtHDLvw0m%2FLNfxxT3cfOwSb5p%2BYk%2Bg17TlpOJr%2FSyuJrNVKbR%2BoTDN2Y4ZOyycsj6EZdzOD%2BkgGHYj0ir9AavJ24mxCX11dluW6fy8ZMckDPrNW8tYbREiWYXde5QHO0BFxAFUpekV8D7K9f8pePBpO7gwOwni8T55jjO%2FNb%2BVWXt4qu6T9V26XFRYXFS1oV5P%2BShXrcVPLYTSeqA7ZTmoCD9fxEf3eBPoQmkSmF1orr7f8aoPmlIuGAyYNgkz7eZF0DUpOXCjnlk2dKLRFqDWYzzmuOePeFqv2KIi4WlVSPKunDFHDNAVM7WintNczaBBqOWeAaiclqyOhnmpaXNX61NuOkixAmwQwH%2BeOcAo1%2BoXGTZgsrYLwyPUafd3tLVJZ4r7n0P7Te%2FWwjJ6kdA2Ll7s7QHkZiEybVBgE7fQ%2FIJY4S%2B2g7yBWQHrFXoCu6XtepuFR9BdrkBGThMGz62vrYPx%2FjI%2F5ar8DPCRJbCSqNCkcKMUj%2FoovHmM13JnR%2BPr5jrHhMr5Xd%2BaMZRIo12IRU7idwRXUPKBdTforTay%2FqRvxmD9lRIx8FD4inXmcYR5FyvQ9mnWxhfSeNmhqK8wgyLTjOhHA32ppaNufLTQpc7NAWzR%2BpE3I0og1Cf1wUsKBhafn2T3J61rY5lMkV5JSrVRAAQ%2B80gXpJs3W7Pmo5V2pvpDnQJ7UsRXVQCsDLoh7itfIYI40bHgTB6dQQymVXlUi8SSN5K%2FFNTpam1H3V5PEiH3K%2FgpIudS3oPlf2hYsqQHD3vqu4VqqmvwyPTQ5m%2FwDoEaKg%2BsqR3o8r0VfgCFkN25XV1gUHVl7sWRI2%2Fzxja2Q5Nv0SjzAauOZ2EhUaTQNnsDJtzN5jjGPFt8Lb6UetElg444U%2FEVY0NuK2kSpy6kWKcvEuuwaqL%2FMl%2BRN6NvzUYLRd78iuZPKNIoEtK%2FTW37RoKmtMEMHR6aRJkF021o49jYcgMe1CmkSpUS6ANx8RpnHgVmYlRWApRZcWhUO6q%2FWSeqj4XgbiiBYUp0CK4cHPUjBqFBbGVmj1B2iShKlEzg6Ea4HOEQP7D7OxuYU6hk3gP1J8j6WcX%2Bp%2FmCTVCtrfX6153KpAxYtRYPtRXKY0fyPtgUtPjjd3SGFghvxNlQ1eWSaD64YMvxB%2BHe%2BGnFlsRdgqtdl3dL8Na%2F81j615eLs33SPeYBZBomACY4cVWkwDSuYwClOpuN70eUwd%2FpgKC4P7nuP1JajflaKwlysF8y%2BETqbviRxJtzEXDJtzjxVCBHBXwAXEGhEX6c3SqK%2FTVthAGUGQaaRY9VyBGu1lKIeuCFQ3qAtEsh9PgzzuWdzsCVnWvJjZpnTzp5urZZFZY0UVB74c%2BN%2Bq3aMg%2BqHER6gjsGEWn5XK3XADdCv1s1QgdBhAEl2QJKwBQkQfDY2p1BPLVf2LHF50DmM0ond2qAjN9HmQqu5og6omAVt9g0cZrRPStuClGl90tXW0rBT6tH%2Bm3mifDLNiAXNTfgDmuG9x624rZsh%2F%2BIvQLEk9L620tL8msgGwxeef5sZPn0XXt9uzjQx665HBNMgW8wETpEyHfGJhwZNO6WZLG40XRTU5bW8i3a1DetVrI0N4aabb3VfMsSDcso0TxsekS%2FW%2BOG76GWQVjVr5bWWXz29DwrWQ9X8oMj0Wdr1aJQIkKldIlviZKGQUtuizuMaBjiazJ72IlvDzE0ffth8pGlPvfYz7TjQsLt%2Bi3UlsEU5wgPUG6JGQOsE0ZYl8B9%2BEJoGfesDSMIuU3NSPfH5iHoynxploegclhvKY72gH9pJAKCiqAOmKBGrxTbRPiltC9Irhsa7TbXSeEesnufkRvMR%2FoBvRrFRlMl3K%2FoCrE4%2BlLUHXCt%2FLlHwjVZwVmbPv9UMXyLTvDn0BY2l1YdEJk0mcMLODNCfjuDbs5tqIA%2BGTJbbdQZp4Cu1H25Ek5WLtVERfb8cvmTM2%2BSW6TQfy24%2FcAzUSQdj3XbtCsyai4Ey%2F%2BdhwaZAmYMg0zjFE6%2Ba4dRFD8sG7tm%2B2doDFNtM6rfQLEM76JR31lyAmgTteJR26Z07duzY9RZMofTZe%2FPf0BzwAFYQWZIe7XBpaOkAulOPZAFbBgNIylFWHXAEY9%2Brtd8BnWZSomuEF8pLQ4Ix8n8KV7bnKzaKdmrQ%2FuQt0rUgyk5oC4jV88h0cPPiH9CO2hWCVSj2Aixi35vF7MstpvaKFkyJRrPnf01dme8nMh1unsTnJDdPuvkhIzLi7Yucqjv3zozNF%2FeO4JsOtb7o%2B0kmK6T8UFOHpc10aAo1sSYV0SUXnB2%2BXk6Z9rqpINPo4sRCjy06XrukV1KachENqn3Sq%2BYHQaZB9AdyLwDTBx6ADrQevqefegL7P73%2FKkdTq%2FurZNlURhvZabwhqGKcLEZ3kV3%2BOeABOi807KWdqB3d1gfyS%2Fh5ZBkMICke7ODvJ%2F3rj6HfTvsS9%2BxFiS4aDf%2FtX5f%2F421zK1OSwVAWs7OhEW24xgNSLYZ98Vxg9QHKNKO%2F8cnh79JWBKtQ7AWoDd3GWuHUq1YwNTXLwJsWqEhkOt6c8bmvSQ2dM%2FZzTSFVd%2B6490X589MRfDtGUMTBgEGK%2FTxIg2a%2FbPV1d7hYByqi%2FDIdJY0%2Fcso9HK0NcrJQZmfoQBxQVs1%2F1TKNrK5zOoqZhp3WWKExLQr508JkKfnEI3ZHsmwiNFwtvR54Q6d0w%2FtmaCeS6ZC8aAn67P3jYmmyGmE2kx7A4gCScsp0jMvzwIOwQPkDPtKwhq5VGjiJj5f67%2B9rG67xda00TYOHGphM89%2Fjkw9J1FWwCsVegNows7HXWxQ8S2tNyBSCofUZQaZzvZ2BbdLNk4jeAHjoD6K7NAFbm6%2BOLILvLi3xVu2UBPZjkEY6Qlu7cc9ErOsTKqKvFyvTax92IlBwVsGnU6G2Wj5UVzCW%2BlXJNAXLOR0hj7VZTk8Zke9ehtwuFxpw1jzh0Issm8po8zsxrqoXSL5qUYmENS%2BSja7y9%2BkT5KKxEA2zKcpl%2BCocruBPx5UC063b6t%2Fes7eh%2BUhG0aBkl3jECCPSNpP6Om3DNV7NJUhRAAYUI9N88uhWhO9a9AWoDbMnm2E5waxMb2y2PwZmId%2BIe%2BeXae1JC3Tz%2BF8WKHNf3P18egTT%2F57tAOFpc4JvzyhpXu0tJuBDkMbIcw60tJtUU6xJRUTSiMJlGsfbCLuRHNHYK8r8TKhPHqpnzvMrlGkCYON0BG7e9FJWeyNfZtndIFRNl5A5nvFjyLKJ0PBmeZKfidBz3ZtxKU8r0akruclG1U6f7hLWr%2BbWzj5ouT2QI3kQpJmiQg0uY%2B7FCFGtuj3we94HlRJWjQZOItdP2sW%2BVUOGDxp1uCB1lhIUIdN8csa4cohk0Rfg77MnM131etZ6PyYLbJuIm3wzT5T77ZyHnnTzdr69Iym0YTDFdvX0fD0cEXx76eBaHJf3WDccgjRGcgcumJa2rt7%2BYt3VRioitPIXKNPeNy8YzwZraLut5Uj1RVlBqz%2F4amWaewByL4ndvS15LKuRnTNffF3lgOYyMhH6MfbNjPJu%2B5vY5SodqcAhObfcNFuWTl3BfIfkziQbrRV%2F%2BjMR5LfqEWjo%2BVzE%2BxCyRuu0HCQqVLqMDMDmk%2BnM7VG%2FZzdY54zscsP6wPUT%2BF5r1lYjsmJzKsRVxB8WLtN8clS98hFziGTxF4gybT6Fx6%2BzwPZG%2Fc%2FrNYC%2B0TP%2F0eUhRnDa%2BtWRiF7fPrRheIqtasHsuW5949NG8M0ukC4wEOC4JHQICQX5ZWajlLMNtGkUa%2FV0nYrIKHcKk2nvm5ciFhuAhXZbr2XCi7KGeBBkmlhFN6C5QSv8xY2tuN4q%2FMG1m6w%2FvPDkGvNjmGT5tVLeKcHJCk7S4bKpKz7fgdQZJBuVuLdSZ7zggYa%2BU7L3L6NskwqVh4suo5%2B8vNjbjxv8HomzH0TWoXG%2FBk6otr%2B4Y02O4f3iRc%2B1UVwI6RYi03xwPDmtTD6RLP4CEXubM%2Bvx66w8b6P%2Bp%2FW9%2F9Ez%2FzE0SYxgocdfPfV4IKL3t2cbhnbdeH2b%2BGNVP2GRbzjGEXy7S953zHhRDgU6hH7lE0p3bIZmi7IhHu%2Fo7qNUt4I0gr54ATLtiTspNtVBlZipNJ01x%2FwCgyHTrAtVTsfOVq%2FwL73GUs5ShPLa1jferLe17fU6yTZLi1OWymIMRGDOETTVKm1dWDZ1hSkjUmc42WjLqVPGTeiBBux9A0ADFGrpeJ7sRLmzJz4fieJyh4Xi9yDOrpSmXe0InCRqm4saa70Akx%2FPqyjlyMxCZJoPnnSRBpEMxAvFX4C%2Fz2ys%2Fa0%2B5ZxrJiJWLI9vVzT3lc5qcNUJj%2FQfwFqU6v3n5BQYbrdqQTKP4MdWOSz%2BJ41aOMbhhNIl7zFelKb46Z2tbj4ao8C%2BD3fSWYubWzvct0YdBGPmBcm0982j1wsDpTH7cDJ7gwZNpqkFPfYPMjGv8P9WVhr2B%2BXjFAIsSaWD8FGzzV4Txufc9n5bd5eR3nGSDhd4vbS0g9UIpM4QpSsbfsqoMxBo8Ohhb1uDKlRydPJwkaDKyw7Cil8a4Rv4PcpwhDOmgZOjidoOHWuYZYSRCFKQb%2FOdC5HpMlZ5hYqQIJIs7KBMF3cB%2Fj6zsS7TuntoVYKFMctvSJdnPpT6EB5djFKee1emfPPbjCHG0dMwMoS1drNyeDU0AZzPcP4jkkxpyZQX5QTLgoP2ti5CC9yu8ekCQlXMiFl3M3PbheWnrW9e5JmVSkkP76DJNNM1nqMnC6mJ%2BrOWfpNi54YTn6Bz7XHLNntNGO30vuN9CN%2B%2FgeqssGzqyiofqpESECuvGL61Umf8%2B6rVjB72QqE6RycPl51sMoMRNcdFRJalWcTvAcORkcdFtZ3K6oVXVOrMQQx6uNY8hwJkOlZ5Mf4bqHDaKLPElsVegL%2FPbKz9bSb11lJcs1kP0ixtkX2RSi6U5LLBeCxK44W1SIvMPrT1vsauSPpPJk%2F90EZOWANGZonA7EbsJN8xZq36sTYsMbhJN3P0stChMcfSsz4FSKmKW9p74%2BZEnp%2F8dWRh8RsNrkzzQQIfQvlk%2B4wyigheqCof%2B5Rnss2cKWp0UwePdf%2F1VMu7qKIOS6eurK3mUI2EgPhot3dzgV8LgQZX4CLpdJv8cPFkW7bSsXlYoRAFbg%2F8HjAckREwqY2OU7kWVi2XtWzxfPUcCpNpHDU3NaHFIohksCTFX4C%2FbzClfZP601a3PWeB1QBalFY9sQ01dEaS%2FuKUv3OclMZPr7w5u28PVpsT63sagYzbBsg%2B6UDl8MvCB771dRkIceBYnvz0eecNnei8tnt1iZ%2BGt6NzEEyUdlJO0zIqn9YHFQKS9p4AYiLPT%2F56b67AnpZ4P4Mg07l7UiZD1CUP%2FSDSb%2FbJDHv8lNlmiqZgr83COH2841TbYamhDAtTV16q8aEagYA4OydaejxvEaOHKUdnONlkrLM%2BD66vDR2J4sRQiCJuj%2Fg9wu9BRkCq7SDTQ31Up2ZrOM1ygDIdGTApctRGFMkossVfgL%2FfZ5xHPzR6ZGjEZcrM%2BMSzYHG%2F%2F58XqT%2BEASgMGiKlF%2Fk7Yca%2FfsG4ySV%2B37RwdJKm%2B8je7IGTJp3bJGNT3qyrXV8jyrsr9zFG6b1o4ksy8G0GAvHUEwmjbKwoMJei1CaBW%2B5YI2bAf0Hcknr2HDIdvJ2wtIedqoFnN8h0ZPHGBn9ZMp27J%2BVbKuoiZFVLbssARYY9bptdwVmqpG8W0nhMoGhuPd56pN9qPd4mq7W5cV%2B9JIQschIJiGlx55VXMnqYbn442c4sa%2F2YzJN9bdiYyZd7cWJEJsPGTiUjYGAD5joXcXnNniNb49MszylIptm%2B3JL0N2ukIAC30P5c%2FAX4e0uaLtZwzus6QA4Myo%2BuAQcZ2hhB0fs7qFdiqqRwJNUXZ52T6JLQ2B2nqencKqA51BStpXEMx5htsmWl%2BtmzocFIZB1OMlmxosAcsolTSnz6PZx%2BOvDJ7ZK%2BsxwyHaOSsWUCXDM0OAFj5pBp3UXVRF%2BuTEdfonwK%2FrdkGavmzXQ77tq57LLxXkRFcl6d4CQfDP0b%2B%2FZyNagL09fTdexg%2FUvsYE9vTDAkBpfRw%2FB6gRxW983On%2BTJEK9A%2B8UY4TKpZHdQWOcnexvb3d28IHRk2XOdAsvBdwOT6chM6XKhkQITnCHES4GmpIALCJUbL5D%2BHiOtpFX0dqV1e00o7TG8%2B9HVvzAahFWIHz4ntT6mJyN%2FZ4oRxAOjTIdXD1NPfQhpNlyy%2Bj%2F8d%2FEYs5UdTXY3yGeXUCWW9hg1JuISv4Q5ZJNGXgix1twxImaO%2F5J4V%2BgPp%2F3kRCyzLhEa0IxgMLdywuFs0t4wNB%2F7v6gkGLAI0bgvizMUNaoiPNbefkbE6EUhLJGQ6NukxWxk1Oa6zVxnXJjPjtEdiWJAyDaR0cPwrcPhytxwpSYsu0LyCgKtJ00pAWk1u3iDRh15Wf9vFWhpmEJB6AjGZRO6Nzj4bqAyHRmkqcVt1lwG3MjpFujEBnYBRBx5gfT3ThtqLu4rtaKwnpL0PBD3C%2BvXYpbSs6jJZd96LBzpO5PxFB64%2FDLNgkEfFu5DoFfllmlSzmgToNiNlba0jrghIfaOX%2BIZe7qLh%2F%2FdCBDKidOPiJnhP5KLpfDP9472k61uQNKEBhH6iRnB8GpytxoHH3M2ERPT4ysZO7aExe%2Fh6Qa4oi%2FhFLNlV2ft7RULMgKwk40prQTtmU9EzkY7rn92PRdcmNbe8KBBDAjZiCED9rbdJ4eZH14l45%2BH%2FL9yOM9eACf4p7k16rVz6U%2B7Rg2JEeAhhI7gBGIKrA6%2Bg4tZgEwHNl0vcrRGx7EjRwK4ualAXQVpPwu5QK%2By9vMCye93GZHUHXBxn6lBchIivBzT7eTTPfO09c6wrC4WjuBbOvfopePzyzQL%2B3VAN9ZqVNnfszKXTKctsrLv38OMb6x79DTui3QIWJHJecwwzR2Dqngu4W3KY0uMA5mi%2FSxhrsGxXIQG5%2BDyILnDYG5yrDsHn8VvY0aTdkw28YorBBFSvyVPV8BKfQlSk88sLdX29grYKlXQbaSVCG1dZTORN5APpr7nfzIvbfRFqrg%2BIaCIQIT1hpMmM3oY4gw8XHZRA5nKYiaO%2F62gWAbtEJpCHuK54jr7vBGqUQmSCOA9MZKWJOpsqtbjhw%2BBBd9DwQXINFnvGaapR1YcgL7k8sv7ATd7J9JzF3CBds3rs3k3%2Ff2uLVqdJ0IteR4kGW2s%2BX2womik0x5Xlr%2FHwhEbemW86mXfKXWZPt0rDTj%2B6jGFAPSE6TYrsVagEeDOfDJtvU%2BPQXFVVMrH%2FcH87DTmqEsIExfKrhLwJmu0hPJu8E%2BURO7PCQSOZj%2BhD0kdA2%2BI0IDirLgQqRSYEcH2ftpPk4MPViBmNOlvCm1CZaVIGcFy8nSFLIaSO%2BnIrbpb5ytML0fax2g8TzS9E%2FaRU0XRbrlUpyb94oFfPsRBI3hNvEJqpwMQYaKgoqx85mI6Az2Jdkw4zJrUYjg1YbWSTd1pM5EE4z2SRTMoo9DXcK9MoxIkWXo6yKsr1U07mySp2nsSSIq6c0AyzRIbcu7jwWFLlfh%2BdmVlf%2BDm2ANWduR5A7%2BAUfavdSq3%2BPt3spJ%2BcGCgGMjGmqsVtUY6gWdsU0sLR6BQVGlk809ksM6iTAe3H5YGnL%2FEV7fbj0aUAxpXze1SGb73gzwy7d%2FgKVVcs743S%2FCzncb99FRzfIlsMtKCmQLesMSrnsdhKp3EnJEdxWVtyezZjOyALJYmjWw4wIVw12FG0DZiqLTvZOTgi7LW5eORlizBe3lFe%2FJ0BawEzfaQZtvmIC1cCO1j4wcBJXwfA54dNaWcucD%2FEifiTlugAzaMi2kXBBQJgfBRSryoVpm8JIfTooc4O9uoHZP2WFCfuUiCaQmUJaZG8AjJLCDl4hiH5DTCoJlGJUiy6l9q1OD8nCY%2Bx6ErSKZZCiu2zrr1vcpGxvLJRyVws%2FJJnRryHRAonTXAC%2FS26zRdusTh9%2B%2FIeUPH213KSI3kpIw1r4QVBTX1Py1bcsv1l%2FO%2BSeGIKRQccZuXJeZWEJrqYBkDLg04XlAeMRKyEZCA2VizKsqunZ1Ppt2wad3C0h8tlTvZadxBTzXHl6izCYbLAd50zTd9YHPYEgEN7ChdmV1butQzMByCYCaNrHWKC7U0sRqDuVEAqZzxOwMHX%2FAcfUKRKFH0L%2Ftc51R9FLKIZvE4pNlGXlq%2BsJdRYkxwoPNNYxlnanZ%2Bg%2BLo%2BTcBKt3yIz%2Fp2BQGYol3bBsRSvUGELmnG3czOHw9tpzgoXabpbYJ%2BLXomVyDhShMzQbOTtG6XOhTpQ0FMDeNSpCEE544Prn7RfLLdMyNsWXFZ9hZt%2F5pr4ZdpR%2BVwM0wy8%2BrFhpt69CBXeDT1gYdW8l%2Btvj7%2F9uuHW9ioO%2B4Te6CkREl362YNe%2FW2%2B9YGkMRLBwxhYJt93miokiRJRIbcxCVwy9uCROok6oBNW0ZM8qVeWSaNUb%2Fi4O%2F4l9W4E44jftgppMPFvM4Nml4FcCbLjE4LjfQ4hRQV1mEfz7YdcWKVVmk3A4iCQ7ILqu40FoIal7Ed%2BnJOOM3BA6%2BxHNsg1DrJmpZV7W%2Bl1VqtCXqo4BFNGuDIg3L2lxhQWLe7vDRgQAlQuGK19ZaExO6SkWAfmYnXcAIp13EQvNe0VneACL3zE73GYPD12Nr6JO%2Ft1H0OA%2BiFpVsSheyJXV%2BPkh857ShK6hRe9F4B5AU2rKCmPLQ5ZPpkBuLs2Zxc5TD%2BsDXNfpRHbgZ9hOteq%2FRtuIQDeACbdrNBstmfec5HgB%2FAw4fm0uphkxQme3PQ2l6mYUjPlXzpN4apkiL%2B3Wk8x6ckMflsOzIIdN0QXWNGJVXpglW5WRIVG213WlngqtyfQlp1K15Unm9bYnByeRGtXgioAn8a9aZoSClXr16jVU04mWToYJkgQcuNIoTUGI1tX%2FSeYYzPnLw0XN8W5Rytom1KL9Gs7Eqyz5tXOLTFbD4OjbQGW0cynOutENCQa5tiR%2F4wSeU4OI4GuuBeacOzcbK%2FoADonDnY4CRZNpF0hDWcLSzzxtA5KbWmfVp51EaHH09UjhgKp8cH%2F3h59qWqWRTulDVkBQUGBdHldGGAkq4RhWJ1sEA6xPWi5i4D82wMZYeqgncIeJX4Uz4dVYl2em1z%2FZRkSH46DiqmbtwpKRTBrStGkkYwAWONuywrnPSG3%2FxA%2FxpC5hbsvnRasgEldn%2BhOgu6xB8oH23OO1yKKy4H1WXO%2FfpCZGv%2FSeX6TyslhcHmTZsRcxPkrW6Wsl%2Bofcdd3oP4YAcZpp0ngfEVr5YA%2FBmSwwO9EFTe5sdZgpoAv9qX5c%2F6Ra7Bg5KMVHoPDBuMQ52oBmz1l08FyS6sfVEGzhKjTM%2BcvBRdUApS6PYpz3okNgs7BzabHxKyAlbm0X6qD6KIOzX0j3nhfhYeM5xow2gIMezvmcM3QFKhHjSK9ulV%2FVQvXm3WBAgzNQAGOGmRJIZ2Y6OE9YAYiSAB44cl92hwYG2I9WSTuU780MoPCWb8jKXD96jTGd8FPCz8TgKJUyjfmyUF0ZUHGlO2JyiLklPHKjDWnJxFL9Ypkuslo22zrv1a3EEvPZ5Ez6qUZNalc4xfFe0vayxGw7gArtFH4MdJhS9hd9vx9EzPGaGDKhM%2Bx34mrEOAUItn0eOSU%2BX6A8r7pfGe5OTlQhA%2FC0yfS680TmUaSaFS%2FpLwRBXrOB3BEeNnND99XVsqs9VFylHY%2Ff%2BPSLVbCiqeUH0wQdHGnmY9Sym8O%2FhX9fCUpw4egAl6WKi6g8cbTtstoUHkSF5pdjIKEMPH21u3A8uceeMX%2FD%2FpF09a1RREK38K%2FYWdtZpFMHKwiBEULAU7SzSB7EwSlz8YlFwUSJRwfhFJEQFBROXXXezvmjW1UgSglpF7Zwzcycn18ljCbldlvfefXfezNy5kzNnMpOmzptTfQuY7NoqqA9Btdvpra4toYsEXLJbyg4I%2Bw2657wQvZVlnWhG%2BPgk6dEiQ3cWSkQqCvRM7K4s2%2Bk2kSlim%2F%2FYQjBCoQSSmYeKA%2F7WQwGIkgAudE06ccNxzKbkufzG3soPIWD98%2FuXgFDXVr7Lu%2BOr5wB9PWfD0SOUgDUAriqv5Y0Bgkdlccrr9rKYznI7NNQhSgqwtYRiWf8rYz3F3sJylNnVLmN%2BM5Qksc%2F2UecLeR81kPluT7RIyl6qnlPcxgNEZsriFsDp4f7n09MpHksbmVLY3Bu%2Fmdl0cAjnAANWnoGfDu6H9aidnETSs49N%2B7MGpMRZ8%2BVWbPUl8Z9AxWKistUUgLigSjuFOI8akwUl2wtUQwTZqEvw5kOqqNtFVGaGf1oFcB47hejUN4WkyzKhla9sb6Eichub1LiwOV8sdrSqQcBJ5IwPHHyu87C1BJNtfV4sZCx%2BbiXELFwyLWXbg4AAw%2BM6fZHgtmWiduN9Q6chQzcVPyLnkRV9OCX%2Bqrug8QQGDGiuLmJEMOJCCURoCIZtgZ2i3fww%2F2FDOqNhw3EndIA3GlX60hpg5SDhNiTxf5XDVfGncPRKe%2FFVrtMp1KOGICkrTkHHDt3%2FeASLtdkCW7MuefIiGF1FExw7cphgUjK0olp%2FhGuGrDtpyeMayOLnxruX08wpbuMBkBnYVoNJh%2FtlpqkXGo%2FpQFT24L4hUOi6gkMwGLDxDHSVnr4J71tTO9GkZx%2BbdoyenEaRhJ%2BqN23MITF4ckgTCKHCSHSyXRQL5uihSkwWxO3FVOOWYpXfzc7aBPW5BiT0LCgzwz8Q6yV3ABv4VBSfYKgSPaa9hYpIeL0%2BH051xqoPK6PkjGdVRK7zcKpjCSbrrTteTyXE7FhGrLlDoz5FmsEZThMYuku%2BEZyc5J60HUGzLmz9Ot6%2BMTEiGKFQKEZd4LDjgDEvpqV0wobjtPybbrSWJqgM0OACeg0klOol8%2BsP8PBZ8RitdB2mgEVHomKe5RC94BPjch7B4nVDOIkK4APfx4YmTlF17SZJJnVDSXLNXLK8D9JA%2BBl%2F34413f0fAJmRFZ0j3r%2FBKfkM1bCTjyY3KO2PmWGVGPWZRB%2BiEyP4Vu%2BrPI34f%2B7diWDTJXvAMISLyW08lWT2sLuTzHKq46aT7ujZCymOZDS6PMoH76kSKlNmJ8A1d5DmM0MVXmzfWyhTh7k%2F8VpisRNjCdBc%2B6GBnKiLOu9O1WGytYk0ao6YzQiwd2jUg6QDHs%2BmKWHoDllROeOOadug3DhdUWKtIpREyf5tgT5vjdIZ4oaT88htutFajz020aL7mCOhoJfkkoXl60vZdTYFPGogKs6ridR0oO08gkXQDk6i1%2B5McMgdF8%2BNMHRmbkhRkvmaueSz%2BHcNfta%2FRyL3Sv8HQGY5V%2FHW95%2F2j11zobP1DMPSYNQGAzaeAV2nFbjgWx1CuQ%2Fa0ptN9yXiGKvcuJWNauUCw34KVyRiOumOnr2QyozGlkf54D1NQuXKDKJ6cwc%2BH%2B7SjTPsLb6Eq875gV6WyuZjva737dkNQs1yp3rcYbKjl9MYdcTscbrknRr1PtL2y9GT05QwdEcDwBnX2vvROF2MbGATF6jo7JRC9GldOgfC6sKNMCec3L1HgOn1YWsTSi7ZqnvEWroOU6hFs3SUg9VEREyW5BPMYV%2B5Vrmcj8qN68SoBJRktmYu%2BcRRcaz42f4O%2B3z%2FBwxCZrszxMjW9%2FvHFun5A%2FxTZyCyLWHAxjOQ2rKa95V59w4MGpNjPwyUyQxzcqh%2BX8ol5kzTSSfd0QdViqqB5VE%2B%2Bp4moVJlhmDcHfh8ZqiCmuDekocaI%2BTmEuEZ695%2Bwa5J6SIWUepUBw4aTJYtq%2FFqhpg9mLnkfuMfe1es4jYQRMHxiYBJCAEbBOeACyfi5OJCjJ0iheMuJE2qFPmDdKmvveb%2B%2BvbNaHgWDzEIXFyh6Qy7OzNv385Kd6OZAWGDHGuvY38iphqv0K3E1wPwq9SmAk14OAljPIyogy3zgB%2BotkPn0NK7gYneyvuRPQKM19%2BtBjef357AGDcqxpkKi6hUoU8vzJjk85ry80nq4ZpFwVDJkhSfw%2BUfvyMlGr%2FjfXzEAtYnSAmlaZq%2B2WAVF%2FCtlpCgacBeZwACKlv0LXv1yWuBsQ9sUscVOilmCZ9seFdgj11bBHqhklAD7vVJ9eCQ%2FlUyU5uHA%2BrDLLs4f9rdIn8S%2BHdRQ7OcE6%2BOu283dX8D9KzdH7s0WcfLQUPGrPW9N%2FyvINU7nGr0Z7Z%2F5fbVHHZbJb6%2B45boYzTh4SSMfBiRfwRFHjD0htpAZ0XsByb%2BMVz%2Bs0eA89pqcDOigjE0ysZBBcwi%2FuoTMya1%2F05veRBbC9fHS71kSYrP4fKXb5ESjd%2B4jwD7iAU%2BN8SMovMb32ywigvEVlfDU984TezEQEBlj76bVVRy9D6weR1X6KTAEvZW5F2BSy3cjEDfp5JSA%2B6diY%2Fb6QgJmTUcUB9m4eLc292inyOy1jW%2B8vYq9uvlYp6dtTrSZB0vB80yZu8bRoSrnOrtbv%2F1VFKuRM1KK%2BDqO%2B62fJ8CmsjhHCIKq5J0qbNUG%2Bjw7XVg4vEEXHAMIEiKOhuvF7PLiEruwigfBxVilgQqbDFqy0qfvN7y0l%2FGLGIaWOIzXf7wMVKi8buV%2ByhbANXHiRlF0zR9s8EqLnDkVic0wYnBLKPy2aLv4pVVcoSgD2xexxU6KbAkegzLpRZuMtDn7t0RH7fTERIPJRxQn83CxbleQqW8h5zCdBTuP6DUN7rNzHL8512a7M7xctB2yJitUYr0ilK9Xd5umoKFqEloEh%2BqbFqjCQ9nDiPzgKE31GbocOKmAS5%2BDKCtIBu8ZkQ9kLswysdBhZqlW2xmYbhQictLHziziOnaic90%2BbV%2F7QPBb4tMoxaoRm420OMCvtX5zPU2FIPKdx59vZIj5BZHIK%2FjCp0UWOI9hvVSC20M9LmR7wMf2gmE4GHKqUvvcHGCifoeUsaFoHA%2FSn3fcKCKpsl2eHWgoecvnL%2BuzG5Kdb56pBqauQBN5HA6jLmDNdUSnTzgAZctoa3ROFrAB2NolI3LVPDoQHpsl%2BWlX6tbxM%2BqEp%2FpMlOiad%2BIBUZvNtDjAtlW8zv0UAwqo%2Bx5LFlBEjvi9EMnxS2p9bF4Tk5qoM%2FxoZ05QtTHWYOozMq4EBTux7CXKvMqhAiMoIkezrF6x1KzwuYFtESWI4y7NErG5WbJcNlb9FWnuEUIL5NMMskkkzyzd%2F68TQRBFJdQBBJCdEgUUTpXUKehtIQUUVFZgooWVxF8hDSc3KMUB8k3jd5tRj%2FH7yaz19%2BUO%2FNmbv5YPu%2FOrFdaaaWVVpp%2Fi42fCNOr5Fm6%2FWD09iXc%2BH3Be2hbOfN3VK0IrPdXWAJo0d9uHQjlclzf754gDwLVBcpftZ%2FjGd4i9AKJJgA3jbAHpIaXxI%2BT2nksKPyCWvABFzbtZ5clt5NwGKTnWTYpPCovcddCHVXLOt6SpWW1tdS%2FereJrbzNxcy%2BOveGQGwGwdUmFPS48t72kmSugbXPBGuDRtuFAohMIcf1%2Fe4J8iBQXaB8SyzhodDwiLTHRGIDN4%2BwB6QDXpG0k%2F3CeSwo%2FIImwa9MC6gNVftck9xuwmGQnmfZjMKzyjN3LdRSDFPr5JAsLaytpf7Vp0I6ihLpaGbm%2FJt7Q44pDm3g6rwOaiuXH%2BzMR%2BYaWOdBYgUgNCanRQDfHLf6JnJc3z%2FnCfIgMN%2BF4ugq4aHQ8IhMk5lISABuEmEPyOseeEHSTvYL57Gg8AuaBL8yLaAOPs%2BtaYMi6CUcBul51tNF4VnlmbsWaimGqfXw1rPUX1vL%2FMu%2F8OneiNaYb1%2FVZ2Gdq3FvyDHRXAF3Z%2F0Xu6tP1pshcw18KZ5YAWgak64OgK1fiZGcWTmu75%2FzBHkQmO9C0WKS8FDoeCLUho1CQgJwkwh7JN%2F1wAuSdroUC%2Bex0NK0S4JfmhbwixoarLmSIuglEgjS86yni8KzyjN3LdRNMcxdeGtZWlJbC%2F1Lv%2FA%2FRpelWjsnulZfnE%2BYcG8IRBMk3L31Sf7cfbYeSplr4Km%2F8hpAaEy7LwXkT44ZnZ2T8zvz8AR5EFrjDrQOFK2gCY8IgTeRNhQcEhKAW0WYSJ73wEva2zRB6jwWWpr2SfBL0wL%2BUONhG4LALkXQTSQQpOdZTxeFZ5Vn7lqopVhM1sNbsuRIDGS1VZMr8S%2F8LdMQw2GiG%2FWv2yQo94Y8pdNbRQabZ%2Fjz6%2FsVsw7Q0MBb8W4AhMZ0SkJALglmAGswOZn20T%2BeFXk0H7irtAfFyEbGC38Mj8jweHlHSEgAbhFhInnRAy9I2m3qL3MeC1OahiT4pWkBNfCjYUUblosi6CUSCNLzrKeLwrPKM3ct1FIsMOvhLVlyJAaS2qoplLwSKv3CZ2px1NCirnSb5rNtSJJ7Q6D7k7%2Fy%2FXs3ns4djofpM30Y%2F98%2BZY1tInEr3i0ALfKZFvff%2FTFSz3l3%2BP1A3NXGeFWd%2BfjC0AIWpQpVKEjtDOqIitVhpHTldSoBKWhXGiSk1AorsGRdiMZowheTjYbMF212CINxicmikckmxEjXQM1axymFQRmEUd4GWKqDQH0ZlWGJu%2Bd3nvP8f%2FfOw5lz%2F%2BlM9nyC%2Bd9z77nPPc953p8fpWmpUBpLz47GDZFy3rDWnvf1FGBP8Ug%2FRb4HXxGFgvHfSCF7ja8V1Y7c3wlXZH%2FdGOjBVevPHI3hIeGC9ZnpoHH%2B8S%2B9HBlaD8zqfPoi7OK5QDwbn0kWxjWR%2BKlHYyIKc9FUwBa1yybgtkuM0OKRMze%2BtMl855ewOqw5%2B4uSyryu3bRy48yPYatxZqP5SC9u0K1gBymUHA1G6FiBz%2B4CaGmA3hXSR4XNDPKtJ9DgQcfvCbkvHO%2Ba%2BW7p0R8AMvVeV96%2BrsdPrzTW%2B84B0%2FibXK8vzsL4hpebsjO3%2Fp6NzXMNw93SOZpcp5tIOW9Ya8%2F7ggJvEHEk1vf4Yq%2FoXiT6mxQR2vk6tr2hyBlDwxX1ja%2BY9gpcdeOr%2BUW%2FuvH58BC9ALNJY%2FN4fOfYeHMru%2BgQ3jL58vhM8lz%2BnbxlHm2eieJ2tIJYa5rPCAYUt11qvMFWzLJ98Ngen7lJVudELYhpSRX%2FVls2ylW8sU6mnI4S6jmtJzXDUCg%2BEjgdgti7TrsAAW3WAwRLvzPbdEj7Mr%2B%2FL4z3CTgcbFo03e%2FZx8fZvlPnOzAXwM%2B%2Fq7%2B8gz79vsPP5PDbdteJZBvwr9ReYGG8Q455q4VjZx6%2FiEBmu1o43trSADQGe6TR%2Fn7K9RF7hzNw5%2FeIDBbBJ9C15l7RbcS6%2BG9SRGjm62hVhKvbRl%2FnrwA0Q9Nbpg2Srtp3SuJwzbzWhofIBcCceMeToKkRNDaPZycwO%2FbuZLc7wlAnXx6fSZ6L8V8ex4w%2Bj8Sj0dMLja7QpM80iSNWI2Ymx%2FvaE43bZ41vjNvCAYAXrM6ZxNg1aIGzfQtJxRVzz4aBBrL%2BKrkx9g%2FpDHu6V0I5k0YeYEaKQhy72T6ewyLr%2Fzu79X386ZnTJ4%2F5vqTZ5oDkacHV%2FMsZPzqJOaG%2BZwHHOXhMhvTbc366O6fMD2glh%2BWXI77%2F6yL4e2%2FDb76NpMOwgRYa%2FHosjP8HD0d2rDQ6euCgEXCU1%2BzzkKqofDblvLrWRY%2BubUBvwKOuo1yHzDqehzuzs%2BqwVpDgqEw4CtA0vGJdbW%2B%2FgYScj3ft4FL%2F%2B4AC6lRf669YtNy%2FMJCW2a5QV71YoKj5ovgG4SHyWivktY4IPjdo3OPx%2FIKu2W2rbjs0BP0UzRpDV1qsiE13Ey%2BPzxSee%2ByQgHL9RmMTkUef6mjzTU%2F37T90pOMYWqA2b99qm7myNfPBE%2B4q2dmufe4ZHae0FbTbwSf%2Bwi0p2weby6MKtWHR3HvL3OocMVf7bxHQx0gqrhjweAeztH78EVzlb7zMvzDpLF5%2BSyg2ntR6UjPiFOJA90MsoVeeVjzrd117zA5PLvdZz36N%2FuGKKJADXib%2BtcWckBixgtidPtftRkCsdL2Ebrht8oyAKvZX3zI39HSe4ex156cLcJ0B2ni6j7%2BxMP7eAGDbrSOPs0lo6paOr%2FQSBcusseW8utZpoYcvCOegsrsw7ZuT2ePCzqqcMHlmIIG0%2Fg3gpjOdY6e336DqcL7HN8Q1Mr4uAd%2FVjrvOXTFtlkAgHpZW4TMleK0Unr9UoFW%2FybyoPsSH6UO7cQ8wDJU%2BTOfj%2BQUBe6T2iu%2BU3PHF%2F2j3%2BM1sjl%2Fg5a%2F%2FyYwA2PylwKs5vpzOHALzaEGX2QprBw1d20%2BcdqcJmt6bdr2EUNjf6qR5AGfwyBV6H%2Bn6iz6cre3c87p9ps8Xzjz8GTYl9960CZPCvjsuXLkwkIornhHg8QKxzwak1UnjhvvuVkJo0lncD5ZQbBA9kfWkHAkKZQxDJ3v3pHha5e4JR02QC%2BT1QPCK%2FEPgZcr1i2FOaNIOtCRF5CRiZc2Yq0ZWTSTObxYof%2FiAIWO0Rb7%2Fm9tHyJNhtK2aoA1hdJWk6fDLFIuIj81D0akL1ZS1K2r4IRBuW0CB%2FTZ%2FXNg68ZE3kQTZfvM3jbyyt98uL82vJlh5GASohQF79cjK8eGSg24%2BlnITgg9K4QnwHAg6W%2B5Fx49yD3EXVNYGnj6NN%2BF0s3w9lV9e38CG7MIqQHlpeZ1Yc%2BmXv7rK6aLyCTyAtnTh5nc0kwVRCSAi0lLfbbtz3QCnsW312b1%2FG6xuP5p2ADlX79OkHY3djXZxz4dg7W05rF0Crc%2B%2BCz9AAgVw01m1nlRccRXg8UhsQUSXrtADSnLkaNt20jlCKAI5XKSeNEEhDnQ%2F3LojzdPCLgAjAblAXgHECwh9hMam%2FZ3%2FpjmUOgrMb4gl7xHpBsKNxUNIgH6lhbXetbm9OYD0DzNgaORpKggBNl1Vb3ycM9%2BSpyPvbgCB299u2rge2EhdPC6ofFs4IksC%2F4aDe%2FvNQsaQp0EN4QMxYAd9b2y45KBiirA9wqU4VhVFlS9KQAEeu9Q4MN0un5ttLYFTPFODwqcOEBM2%2FfJDPaw9bMH9p8L5hID70IpeKOeRDxHhAfTNFr%2FtIEos%2FI2SzBmD60NvwvrGJkcAcmh96FOIG72Z%2F%2B4VQxVrF1i%2BwiuBC%2F9OOLalXc%2BvccOZoI6pgMcDsTGTp4Gn6ZCSHDlS%2BhvpPDjGKEMNRycpxPEcwLlee70YT7%2FnAA7Q5RPkDXBsbgC8jsCgBvCR35TBMhq2nykgpCLH5mU8RfjogaVfPoBgUUzKKE9TmsqNqXoD47YITzOiDasVehd2oxwI543yHYW8M%2Fhtvf1GyBhew9EN%2FFeY1H5f6SUHOd%2BsW%2FQdQc0j1UALNY%2FM4RRd%2FnLJuPA4pir%2Fzp0g%2Bnf65UdUC6y9OxlpR7ALd3zyyhUCUQcQP4G3NjB1iobXBJSR0JvQEQD7gfcJfQpxo63huxusXUEDVpBnyOWgWbdtp52RZzIQW2fyNABzXl2SIwAy5moThDJR5TSFskkrTwGWlW7p3ngaJyOCgyCvwqYq8DIPawMG32Ww4eCAJr5%2BRsMelpPxFOE4LkpWOkS37KIETwMmmEgVRvUuwtMleXcAkuoJmW2U7z7kaTv%2F2%2FPd3edpFMrGcu6Xq%2BI8zbAdQMipD%2BrxFmgBc%2Bok3yO5%2FPsFiBR44yLNSAc8Pf3yAm%2Fd4Kh5Uvx9hFdLTP6VQMli27Uc9ipCHk6WqLXA%2B3xMWsot1v3A%2B%2Fg%2BhXIj1f%2FyWLtYHU6NcG5DVv1SxTQeZ0C4lNiYiQ3P0wAMMVLlyEHcyzdjH1xol9iR%2Fjgy0P0Q8OkvkUl6sad95MEl8TiyEN7cHtbEOxF6nuVnNxotGCSnYeeVTohwtcW9aME2xAHAI8jydNdZh%2FwY1Ce406StfVb1Ptd9IcvT5maWNXb6Y5ZS3ijf%2FcbTX5096QINgNwFC31%2BGAqgAMdYnjaHEQ0NnJskG2lxgvpGevmTJk50%2BYQLIc3w6XhWFOPpGxwSlMdhbT2O1whxuUGFKAfIdw%2BKrwZvHvadPO1OCpcEhZZydTzjc%2Ff5hdzoJUKNEVUiaBFfZmXVYhHTe%2FC0FT5uZ5zRVZhJrYhG349Vjnzob8VDpA95mh8Hw3cAXbjUWRHkuThPi1PCJdvOmH2%2F8%2FvrsWQOa2VZ0NOacswRIYNQw%2F6uKsh5nGbQQsOP%2B6ioX5SnHS6hQ37EWR7EvFx8GVXvk8eOd3Z9a81MDqvC%2BsNhpWeDs1wYmaHfeLoTUSR4JINJDQEnoIbXR3iaOL%2FUSsK5qesl%2FbNHU3r5Y0dX3uKB4NZbwyrN04LYCLx0VTeQrXJJMcq5RqQOcQYGr5GGWLtuuhdxUtRNdtVb46m35e8zUW6kiXd88khY%2BwEjPsgqCNdHvZjeD8UCbMr8muxM1Yq%2BzBt94%2FXsxP6hH7k%2FeHoiajZvkIK7Opzn8VuRRTd7P%2BPU2jtvvRMfh8eSOawpMyOykHLibF7DHjoqryB%2Fe7rE7hp%2B3FtyqMUceTsQw%2BjyXwXSSZTvQSXVu73VYXHCx2N0iLjq3e7v81uvrnYaz3c%2F8nQHokjBIyn7TGG6a2%2BM8zTMQ3oPgkHN9VJPOsG%2FFlr%2BoO%2BNGGd8IUV5ujagibedoFuAWaWJyWN%2BWDUBBq%2BRhrn8xPoN7mvPqqkaPeoH3IP5%2B4wa7W6Er8plU9xqPAu7A4Iae%2B2fvJgGe0OxIHSS1Yr0NKDRV1O3yH%2BEdvk%2FbPF%2B4%2BnR3x0YqrYWzHLn%2BbPxrHGq0t6acAAHo34wZgKd07yt4Wlsf7ClsVnFniODUMO%2BGuY0VcYsuwelvLlNmbziojzd5sCtXQwDxM0p38P0GNnrmGQrfDzmNEqp3isWMzxklO%2BCdB%2FmRjk8fRhRpPXqGkJAy3kkQ0ArztPGy59fLz1%2FRvVObraBNKz4fQrx9N1B897d8SHd95yVPE6uhMEbvoBRD9WJ47Wym64eOCAnV%2FI7%2F0p5%2FQaVDBS3mXgWRcKT4PJ9IY5lEA6pFTGcxX33s%2BA8yzhr%2B4%2BnK0LVlhY4xguzlFrAUIT9c8WAS%2BmcjvN04HmTcsLcXJ4K1LBHhjs3q2%2Ba7K6BYr2UhklO39%2BzY%2FML9d43xC0Hd2PJWwEm2QgFzqw8pXo%2F8iuGh4zyXYzuN%2FtRBk8fxOuLa%2Bjz4JEscURtlKdNND6%2FXka6zMGU2jZ5w4qbtybN01NV8%2BapRD22wKMvvfomBujMgRzmqfckqytGXsFacFdk41nqwH5hndPG92ocyygWdJoznMV9Vxc8rAyq9iNPDxG3qS90m7WABdTxWhAhF%2BwfOqctT5ukE5NyUrqCvEsNe0yO13Psjl%2BwRe3dcn65VqcUUDydK4UKfxS2%2BG4cuExq4crTqveiecLgceU77emRUQ5PIwQDIw%2FmhKdIKaB1T5ynTegut96S%2BnGMfyvIWEyr9szS1bGTkYXEbGreaj2QQYo8mkes4VOWiD4ra%2BmVp7W28l9U0ETiWTDZofVtfr1lr4lj9RbO4r6bK3RGFJ%2FJT%2F1lT4%2B9sdrrshCgE6eYRieWXYBFKOTiXcGRdjF5nrcpJ7xCWY8adlVOJ8%2Bxu2bo48rILgT7ITn%2FSfC%2BJy5DhdVBFW11t3taTg2uHDpYWvVeQNXPZKkVojt7UJTH085L40LCbZ909whoWZ5OK984DfX823uMsrsgY112RenLnZWA%2BWvBCZmcvSCnecPLN4KKYbkqgqEc9U5ZS5yn2QNBruUw8awLp%2BCd2dHygYljJcJZuu8WiN%2BpNZvA0V9%2Bb7i8sXrP09U3siFZrBYE%2BFZL8E68q3xXowTlk04ikfQBOV8YNexq3TCnzpztAlXJ7uGRe0pJKBd%2FURjvT5SIS%2BfoHUFq%2BfNTKKIEkT2ZVr3nTqXqZ7LUEnTH%2B2UwGlGqU5ynly2H0qomNQNa8wxPp5RvsVrA7Ub1LuYOGD4WNqec50j8AH%2BKupua%2FffO%2FQTN25nwmkA2qCxrMcenxj8nRf5shBTnafYqkms5bDyr%2B5SLouw%2FaONYiXCW7rtfez7fj39TyvdTfBqhaZT1vOgN3WvYODRWCzKXWIS5ALRxVpikkwzlrWYobM%2F9dkdQyT9ylDxyqjvL7sFFRnM6ztOrS8SlGTkpqN44IVaRp5nukla96yYxNyufpZaiO1bhCmM5XAEseK0oTz8EEacmNQNaDxqejinf1HjAfyXaU%2FUuxlg33XxLjauHFW%2FQF2eQoCn8WSDsGsJEn%2BB4MwlkZfO08c9J9z228IvztPYU5LUcJp51wWU7dLabOFYqnKUJK4%2F6Q1VkNqV8P%2FD0Sk0hW9doiiwjtSC31xCLMMezJqhgeN56Rm16KPebmNN%2F8hoP5BLZPbjIaE73wtOlDCqakVNV9UacWSiiYVvSIKJ6fxRysO6gu79HllqC7nBsOcMsMzZLGl5Bnn7AmaI0qRnQMjzdm%2FLNYL0K8KNUvQtttp86RpizINQkHj%2ByXwophD%2BTs5eL%2BPtcLE3N0%2F4bdO9MnLNCu%2BSy1W6cp7X3L6%2FlMPEssqeJY8XDWYyDrQL997Uw4a0feJr53kj1bnyVMiqBR5nDIhxI3VrqhfIqXI74TCjRldr0UDL%2BZDGn3%2FWeCXAlv5y4yHbTnO6Fp0sZVDQj76XqvTpQJJEcStVbc6VvLjn2TJZanO6yLzphmHHgxEK6fEGe%2FgX2mTepMYcBLcPTvSnfDNargWNU75R6B0DfFWu8G35%2F67s7tOARCZ6p2fAJNDkztVsszRXkkMJ%2B78H0kcnJRp2N3ezREj%2FB01BiDFhALJ6lhpONY8XDWaT2E9hz%2B7B9mOrdlzzNuiwtyWqiLZniagWes1VDkBqZJD1DUOEaUt6mh2bKOKbJbtuBCII312lQi4usNW9O2xf13%2FnhNcFLRiViPlXvFeE8SvA0Iz4qzn5Mx16PLLUE3YNhxiGWRXGenrbAm9Qi2xnQWml5Oq58M%2B6kRxNV70KM9QiUO9fCCrn%2BbS7Kv3lTqTFBOkTzWEjrhC%2BZgrqcyP41P6ymQ4Opm1ZnS%2FO0HTaehaeQp1kBhpEMZym118IVLtuH0%2FuQp1k%2FraXTb9HnW3wwtRN3VeuOukU%2B6eRct%2BEamx5Ku%2Fbnfrf90RHhyXVehtOgFnbalT%2Ba7Yu20DXhPgrN3oVhOjLpVek3SW4R1TuIs9tuvisi%2BLiaGE%2BfR9o2B1O4i%2FH05FmaryEa4XnpKLDa8HRS%2BQYPh%2Fc6QtW7yGZb9ZSUPG50dsMHrlJy%2FfPr2EAoORuat9dnLxhBXTCy77JDKQmhq7AcsM94mvGsMFOdIbJgqiPJcBao3bSxwWVCtDGQ1Q88DUqgXYe2OEneIu4PUBlLLyx1i0zSiWtR02EsVpMeynTk%2B%2Fy0t1kDRYNaXGQRc5rmgH%2BnBeqCpNm7xB8g4oCEAmeT0ROq9%2FwZzqtSZwSfKt8p3Rtp2xxI4S5D92ZepWqEXaJ9sycC50eUb56O08N7HW2h6l1gs61%2B7l99a4Kt21sOOJK88MzaNWz0lzL46lHLLI57I6gLRvZRxaEWKyp8M2X7fcXTGENvuHsuA%2FCqFGHBdBukwlnq9NiKjEVsEh49fcrTVgdsT90i4beHHHWHBPPxB%2FdIKZHOfM3Gs2zTQzUd%2BQH%2FJ7ikglOcBrVoBjSnrUwiT8%2FTQDI5z3sgdwl3qq1vE77jqvfDElhexHPIKN9RurP5D8e24j4y1j%2BALzrPc6PVw31%2BmPN7Vb7pywzv9SGJWYynN25BC6GWtiMf%2B0%2ByaslCNuRNBfJwIIn7yAjqYrWWUm25znuWL%2FhOHGyv01c8TYOaHxlKkSyY7bnS4SwVnzvbPmKqd5%2FztPXVvP0OA8dlimk9kMDSNh9fk062hP6mxmo36aES4lYNGWz2j6IfU2X0msGfaU5HzAEhCy0bnb9KNXcoA%2FzYJuHbqt4%2BPfPx1TqekLlG%2BbZ0t81%2FONYXjmWxTtF7jnEUqPbd5N3nJlYYUb4ZAxC6d%2BwlMQvp3lD%2BdzlPQOeX0Cthbt33MzbOT8wO3Pi%2FEUGdcpqD8uiKAEdhJzqhoWMW2%2BD1GU9fQsf3kdO%2BZlcXvI6poclwlgQPuzqPHzt%2BEucB93%2BZPE0I0opiMZUtW5nglR6MbCEuL4bDN8LSmo9v0knD%2BB2t9kh6qBrUvwZfNkMNf1QUARrUD0Mf%2BjPNafMJNXUUZBHLBlyT80AGFzg%2FtqWjVb07fNcbDnHeGeU7LarWZkbhnBP2E5iFwClM6i42zYP73MyPKN%2BMAYh%2BZNI6U55rX1%2Fb3tl1wemVzML4TrGtuopxHiOo09FXgKf47kWuw9ghdCyVzpZsV9s3PI0odylAfUhrdrFg0fPjrm9bs4553d1fMXQ3qDyeJqwVMSpTuQ%2FoWvRKvLF3%2FCCT3dUAMQijpgkFBZKPb9JJdeRDWZTlxqD%2BLfiy2du%2Fq3sY1P5amtOxTyhkCSVukAuB856m6j2zCE9T9f4YApFDg2wR5TvV%2FEfGcv5WkKdxkv4GJrXkiEK3O%2FEh3OddZn5C%2BV4d7AeuveBmw0GOI8WHL022ZDqWFRHU6clOaXv%2BxU2%2BDd4fmlukrzw6ULOtfB%2FxNDxk2l7pA6nZBVPDe5EMUbNmXb1kDFOn7QyzRsJaEXQ0maOIrkWN%2F5bKOTHb5IrR0AJFTItRU48SG%2BTj23RSHdKD3KB7WIN6JSSj18IXq2NdDeqVkOnNqlkkePqe%2BcsoF7ymWP%2BCqt6zcaXoADbh26rexz%2BDQOTwyTAQe0b5Lt5f5v5lZfP04JG3Ybdlc0TPfYYEWjM%2FpnzTNeHZ%2FJDRMdKZYGoUQ3KxqqHY7BUJQZ1QEeobNilihSCAKFIEfJt9wdOMZHl9ZJ%2FU7MInCdZMppKxZr1BjT6JobNnUVk8TVgrgo4mawnQtaj%2BxRRPW9hu2VqoR1Oj5rElc0hbppPOe3DhEs%2FQix6cV1dbNUx1B2tQn1PDVqxoL00fZJGISEPP4%2BrQGpjg6Z%2FOZtQDmqI3PVtCTApXig4QT%2FgeXFK9P3bi8P3WzNjThuCyVb6L95eZVE5dlv44BIcpc0Rl2Plx5Zt6BRtZ8jgqsPwHl6pRDFFrqg8Ts5fEBXV6MkBWnGLZIANIXUR06iuepoMM7ZVwZtVr1WXO2IjfAEfoUhp9ILjpWVSYpyn4CDqaigzUoQ5sQ1k8fcmgEeOQ7ytRlYN7glGzaL6W2LAt9rjaWcAAgeIt0EaWFtl%2BtapCPA4J4qNaD1Avl4QUbMSdpr1ghKcn5rITvhDT872QGsPguk345vmod6CUNklgVvlO95dxYyx%2BK5unYfTMYY5oiqet8k29IqJ6p5Y%2FbyFlLbIS2CWgkOs6LqjTk3%2B5CFBCtOWAqEnkxb7iaTrImvfj0Hlao815Y%2BOShPdYyM0zn8758niasFbPyV%2BTtfm3exdVEZ5miujoasHFgavmg5btTcGoUWWf5S1g6eVPPQMUzABtNFkNH%2BOFghastt6Tak4%2FdB%2F1cuE7JKH8iX3yEjzNVrgl0%2FOgllJDH40nfFPACcgPZLwMk6xtle90f5mKiu%2BOLounme7sWukyRzTF01b55h6DBhRRvRMV0EHWUqtcXpgtHwiTu4ygLvJoQAnRmAPyNRGSy%2BfptIPMi%2BXV1KNpbEg5WTycRVkkO5eBrHJ5mo5kFWSpHjpyAjxbmKcvGzyicsKUOcCvQ3LgLghpNWpGDhngc0dZhgqWXtewyWEeeGgjdK%2Blg9Kmh6qtt1bN6QU%2FZ6BLdiKaa7OfbYqn2QpXTc9PSy1PQJJEwrfwAuSKt8XXcbCoyijffdqPzPI0%2FCVTmSMa5em08g3CHjKHUXr501ilYEzM9Gz6hI2gTk%2B%2Be%2FI01AaGMbduCkDlr8CG6zuepoMsdBR8VNPCaGyg7JsrjpCbTzWWXTk8femAwRIe28BMx2K9i%2BSBaY4ePra6tu5%2B190Z%2Bb5%2FFOy7YNRcO2zYtVrjwfS6dY2vbXPYRIA2QrEvdo%2BJKbPekrl0sJll%2F9CgDiAY7DtvlczQjqw5VAVmwwp57qtM8zR1VhFnq3NjDbUro3z3J09f4jw4%2BRxRM7%2BQ8l0PQWTXnV7%2BZApqY2KmZ9MnbAV1mnJVN6M2MIya22908DN4al%2FyNB1k%2B0UHWUyHlxobJu3bbkP7VLtjkxIX45pRY6u9gb5BjMPk3srVkBfi6JqpcxYu%2FWfnLN%2F8%2Bh%2B2BYxaZ9RMvBXxMxActZj06UNH3L3%2FSEf77h1Njaybj9RbMpdulyRrTmagK%2Fy0rXlPzJxmR509wYtW2TOsQC15bIqnKd7Uk7T4oeygMmuU737ladg0%2BRxRMz%2BtfLeJuzCieieWP5WC2sSzkrPpEzaCugjlnNjguPaqQSB33%2FC0dZAFXwGENtsRnUinfaefWrxrHRLca6fOQbCBoj6xt7I15CnXmHD0Aiekn3FoSW8KR0NIz545HQMet9AzgbF3%2BHLOdH1zFom5FAmm3lKsXubShY6ENWAqb2vrT60H2HbeUodtUDzbj5GwAgGjKFCzjZciZWPkhDBrxnSOcFhY5bufeRpH14h8jqiZn1C%2BmakSSThJLL%2BGgtrEs5Kz7xGfcERQpyl3eQUHFt23PI0DUx1kB0J1SN0inkIm7bv%2FeHq6DMALgOXqN6moT1EoV0MeGwoEGzh6DXB4tu7Y9rLn6KVLFlF2wYEhwOys4EDMBQx5lK7lWAy4u5RLdzSklUxgxCn8dJLwMFHqNLeFMqsRlUy%2B7cF7ucZL%2BfJuq7GGX3F0hnErG7QY5bufeRomdS5H1MxPKd%2BaqfIJV12OAKmmoLbxrHQv4EUpQV08B7qPeZq9yGCXtIXqEEamTNp3P%2FI0mWrJMrBc42a2FElRiDXk8aGI28LRzz2%2F8bVtzYjyPv3E6vxAoEESvPLtvY1rOZIeqrl0f9XCgvG0tcNPGRi3OHVKmvRIorWyKUkO0MM2qLbC7aiW3V83LIzv02AwaSf9zdPM4mOOqJ0fV76ZqcI%2BRmUZepWZun8Tz0rOJov0ENSD%2Fv95GioQnEBwkLVrdvcEpiOatO9%2B4GnbtW4tWG4LZc7fgJxnd0XgaAc9vLvdpz%2BbUf87EcXmxYzJGksPzfejycE98GigOZ3gaY1%2BQyzkm4fRjxEDkiAfEK4r0qBFFACTKTQwSvdef8tThjwNINvQQsbkiCb2jYH%2BY5IoD6IEHCpBLDJ1%2F%2Fl41giIhsTLZ1mEghot9i8vgPI75LKyCo2%2BH%2BOuwbiPZWnvqpBeLCVxjMgU1ZJE2neKp9Nktl3rnm9wLLdNbcMUwi2dhsU6IAhHb29p65D0ZztULeaLya43QByx9ND8ZhubYR3G%2BmLm9JVjevK0RL9FLOSbfJLuPVqeX1rKrCnpq0dMMmrFdZkIXB4WgBVKFVdJ6ael%2B1UVvf3GHYkTKfC0EHbUNcLVFbkc0fS%2BsRC9%2Bb7ABWDLucRxlUrUHimTArOeePlqsggFNaBwfgQI9QQg%2Fc1jh4O8icE3qJxw8b7BN8p9THOuSoQUvBPo8E41m%2F1xqLZhPu37OlmxycmKIfrg8iiZ413r%2FmPr9nfJPL0j0Y9nnUdBLUY4%2Bkhnl%2Fey2EGfvUygz7nbAHFE6i1zsBujMqxj0VZlsHal6vawjYLH667q690NKBbYjPva66vv4tfO7ji%2FKxExcpk16jTX6uoqJdeA4ZUTmIeWbc8%2BZyIqiXU9cpGh%2B4Sqkb39NoTzA2EOyUE2o%2FZOXV8%2BR9TwdFL5TuINXO5ecfLM8F2%2B7nbj67DEmVNqflIyivFDV4hnLZw1pQY5RYmXdyxiAGjAITW3Vw4fEHl0OMnvnVKDqEpy8A2mae%2Bybn0FZNzPkPvYJpp31yH8CidQOEWm3nLdqPFTyT25M%2BxuWTGH7pw7LU%2BDznJ5nMyxrnXNO9valKdjHyeIwVmo8xhSnmXyn%2BDoLy%2BIl8UM7isR7NL4vPPchQvnOg%2B8Q6EQM6hPn%2FHj01Kd%2FvBSf6QzMk5FzWl48OvmCtqiV92XPjDb5Q1W%2FR9nV%2B8b1RHEuxSpEpoU%2BR%2FSp0BCKSxFICQSKY6CG7sIUaCxjWiuuMbVybrCx%2Bneyfd85vyAA3SIDyFsLBDfRggksOkojA0cMh8V%2FwDzseOfn%2FftewdTvp2dndnZtzu7OzNrywIlUMIgJufW%2FX9qRof3QteNOKpBuySlRp41ernd1ywoh4bYU8485IYO%2FvVfOQJjfbXV%2Fj6wj5HAj05riuPS4bHzU15Zuj4bMK9lw8GviRp%2FKR%2FRz6TTgn8axvebTwZv8t4FIvrktTUm9tP6hoBmORo7PHxg3163KXYlL2WL%2Bf%2FIMPsUFQpvlvsH1ahGYY%2F9cXCIQ4Cym16XDvh3ZBjuxbkACUa0rQ0ngiQVExFAB%2Fj8vqu66PXdf0g8kSS8UkDVHzfdHGYcA9zI2c9573RsYXAdVvRwN%2FeNfn931rqNtzByA8p5xWOeVPDPIU%2By4nv0t%2B9dy1vvdkMqs4C5stPDbZtbW5v8oL8tCqEN9apJ8dxOoX%2BwN%2B9eGDzzt9OIXZGIlIXFJ6viGHBkdPh3ffvXJVBa304TSNnaR4%2BIY4G1KdFaUoNmC6U2epSn7JU1ZYd8izUsRrO9U8DZhEwfBmsrtJScODrqkMAPvRpiOCAULsus%2F%2FxWV1%2F9NkeClI%2FoKxmt6Ptc4%2FsFIDNhKG4j2FWfJ41H23CTuZgkGfe6hfqxK1iRMJ5J9SkqEv43exLOFTxlshMUtqeyhZsuUdODBfpDgknW4YNtMg8XExLB6Hj4xDI3%2B2RN16djzBNLckysv5Sup0kW5dgfh5SLhccziY7BdSILHbIKdhiempEbVs7ti6yC8bFBewjuHHktryIDEBKfJ9fuPV7l8PWEFIdFwafduQ5z44Y7EfjeXTktowjbaZ%2FIOEeOXrxBWNxa%2BTi7x7kDnbss9n03iPlVleNl5g10l7pW40dHjT1reovCDnVXuWRhMfoqS8nVByx2T1bKE4Lk8aMAQuGy7PrLVxMibvwxqI8oRuwD%2FNN5xjfRAmSb3oh9n5o%2ByaGNgB6d3lT4akPn6%2BtXUXSuVa3oyWyh8Doh3FEDU4RjbZVUtnDTUbVityqFADLV1rlLvgiht9bknlZH25V4WnhSSeIr%2FA267rEspg2AjZypanx5OTW4KhnokNUaDYIZuZnKgQqmgVUAcOdYym14CWuourJzpMcC5a9a5vB1MnpkEQqtIWeSbbjgrrK%2Fc1NJF0Xno5zcX9XGbMfhtaOauLG7GBGV%2BqwOYnn9rNZsJyloN7XGHqM20%2BpYWWe2UcW2gutXGlYfcDqeUSTwEy%2BkURZiIRQsQ33IozA%2FGxl%2FDPARtcGKfzrH%2BO4lgF7Rk5z1uN2MUtBsz4nfseyom0m8s2iuMYjw6nfCGoFSWVsN1TiabhlhNDB4ACHIzJkEEAF0fHyoPOm0hCdIkoJubBxnkJlpzoOOag%2FoGUzOJ4WAU9qgcqJ4Lv7qHoqSAjgFP3M5m%2BWfmjokkfB1SwIdWEPqNVyJNer647rzs0aqyN9OQ85GdQemyPezuLRY0K0OYjkbiAwXFSxATagJR4BaHf%2B0X98IGJJRUCQfB2Wh%2BpDH548APqL1SAF1c4zvdAfVC57OJqSpcgqm6BNPLL%2BQxqi4ki4aUPhfVSO1dFGq75W213ZOsFGxBCDj08lWufS3SeKJAm34ZCCcrzyfyYEAN51B0Srf0kMFAJJ6Nss%2F9XiJm5LwdSSBznIPJctyh%2BuKukKomesV4e7dS5RU2u3%2F8pNSMJBTb7mXAy4qcA0dV8YRbv7R7p7d9b%2Bwd%2F6sbQRBFI%2BVsxQUEJKIA4LYkEIQQiAuTJQyvQqXLlKlcuEq%2BPtDdvRkfocek8Gn9l4ldmbe%2FDsZa7WzguCoBIOUTAdZZk8%2BHl8DZ0T9cqh8VP%2B0QMnF2IzhP%2F99bABtSRM%2FR%2FETIob2q%2BR%2FqCNUl26tcQ03DophoyIDaIwnaXnE1FaTXtMNp4HHm%2BdB1qC4eWpPz0MqVAFK7ep%2Fjw2GcBXj68lbmkuO%2FnDE9OWio9iOSkQAjhiqPTmnuhaDoKUPcX7mEV0MdLLVI4oTevhdYG8EUoJBSqaDLLUnH4%2BPSV9SwzYb1YeQUnLEEXBdTtyXc99DLGni5yh%2BQMTlOlXyt%2BoI1aVbC1zDjYNi2KjIABrjSVoeMbXVpNd0w2ng8eZ5kDUobp7aw%2B8hFSoBpd7U8ZWGXMW3NHpLp7%2BZue%2BNgrSN%2F%2B1S%2F2AmIueQ8GSe5J0YBC3FrV77e%2BkCfrXTImrY9%2FxOsTcCKcEgJdNBVthLxeJTfaUjYAvKAuUWGu6Je%2B12PcSSJn6O4l8%2FEXEJXpH8Vh1RdX36Zw63%2Bc6HjeoMoHGepOURU1tNek03nAYeb54HWYPiZqnFL08PqVAFKDkHspOr3a1OUwD7zcy7b18PiNdxAqFrostU5BwSSpG5TzEIWrpo8yh3O3QxkIVFFBNvfb%2FYG4GUYJCS6SAr7FEhPgEdAVtQFCi30HBPYHvTQyxp4qeJ9RIRl9UWyX%2BUlOrSLVzDjYN82KjOAJqEx1uuepPJSSpE7DTwePM8yBoUN0%2Ft85chFarglNPlRq7%2BP77eLXWdwjqgGdnNsitExiHhWuB%2BBgkELV3Mrz6hi4HE5rYh9PGLvRFICQYpmQ6yyn7j8QFSwxaUBcotNNwTWMwYbpy1JU38hFgvEXGpfJF8JynVpVu4hhsHcp2gysBTAFnLIyYysVSI2GjgseZ5kDUobp7afDWkQjWcsntx1b0ZMWLEiBEjRowYMWLEa9H1r4%2BZXMYrrgxNMPUPRPVHt8UUnfK%2F%2FiQAzGuGboAtIGBMB1gVEaB%2Ftp9J2MUyhTOow5QWdOo%2FKDTOREcQ54Gwzg%2BS8tRa8VCDxQyrKtz5yh7yypl8yVGZn3YB2JWJ%2FSL2n4o9NvbQyi1W9vrQySDmFkDysR3zgmEDgdlWIODUtLaqo0f%2FXD%2BT91fX2q6%2B1ly2QxsircP0lr8Gm0P%2F88dqvkJjOHBHEOdRLRUWD3O0%2FW1tWZcnr0VoxUMNtjc8r8BwSPwfZ9fv2lYQg6F2PLS09EdwKQkFD24NMaSBh5vBFDeFQLBpoYuhm2dPoW%2FL0LmGTJlMCQX%2FpdWn7yXf413PIr4tx%2BnpTtJJciSdeoOGkEfEMmR9IZJYbw2KKHrCuE7uX%2Fu1UHUSYAxCoYrJxaE0hjOL4aCXsCcG1xf0vGwAGwYRU9AYKqBdsn5XPGqRdFQwrOx12Rltb4GLYVHxVnYD2uDDKBML44rD3oAr9vZgZ5oOwaNkNjOEzgORbVgg2p8dtEXL9Ng7bZzCDLZ3nwRfC8ljt7uypQ1TiiuGVS7U4gXiXcFrxq3HLw5w8NOJhDwCwgn7w4K4iEhivTV5QVkOzL9QCD7TNO94kiQCBSlLyp3Rmi1jbhtAGBzsae2UMTO38yiOHsAGyT4paAyVv9L6TLJ%2BZzx7XVSRM%2F1r6h1qEkfRtT0SDKYVb9uYdbsxLPB%2Bfpqz0vaYClecTrji9aHbGToEzzqS8%2Fps3lsVOmzCbH%2B%2FAoP5SagWGL0u9Jg2TmE2to%2BOIPVbvxaRB1Fb2tLKasuJMlpgFYRavIC8urg9b%2Bef6h2ceJ%2BCuYQ8D0Tfy09oyICLiCDWeRBlvykbEXmSHNni1s5%2BD6nfScJumFqsysM4NXWJfLw52dOlK5mgiL5QtWt5i9MHsEFSbgIaQ%2BWvNGmXrt8Nj7qZoYr8EoRfsJOc3D06iq7tkQi4cN6%2BevkGs7QbU%2FS5qbJRBYcVJtpc8W3OFS7RNBnFsA%2FR6tizQuksR30TDXRozmS2f3xGMJif%2Fc4DnG5ghR7TxinMxvbZZ5N6%2BwkSueB58vjtpi0t%2BNiNnCjQwnNNxSWTdsrr%2BMQ8mVwXq9GE%2FYSWEnICqY1%2F86YduaZeEBcR2fnyIKq4UNUA6xmU0p6M1tMDNs1LCmuiEiAV%2BsQlJCvPm186e0Z0JVMU0ReumJcOKqew8dCG673LwrEiVP5Kg3YplszxYjzqZoYqchC%2BVBNn%2Fjino%2BjaHgn7JXg7xPXCrNsNaIMrVY0QzlecTu5WLH3FJ5domozpF4gwXjYaN2ZF8uYmhM428dFsPywQwKC%2F38upip1uYJ1Bj%2FnGVSqDxxYg9YVZg%2BDflXnyeBY0bem0qj%2BUEwValC7UHJT20sXtnOo0MdLexWpe9f1bVRwUEPRGsjfcND9hSVxEdNUAyVVG3lf3ed0hxv9fG4O7czxm07xNvdN1XKp7q8rDsM4Upbw3dmZnz6zhSsbg%2FELV%2FvQ7H5lJYOOhEubao0wR0J9VmbfTj3GlnXYJlocWwv69L25XN7PVzXqzWd%2BwM7veHTqrHEXX9iisQ%2B2vXy%2FMut2ANrjWRhyOK%2BwGcoVJ4u9y8ZUSTZOx%2BAERRhlAOiuOaRN1dDAI57O5%2FXnpYDA%2FF%2FUigtjpBtalfco3LsG6Xv0qTerxEwQeQ9YF30aeC69Woi3lYzd1Jwq0QC%2FI9R0bN2vKK%2Fq90kdKdDm7WP1kf97bupCzSaxOLhjcND%2BhIQMuIKJYCyTzgug%2F1q43tq6yjMv4M%2BMwGBQ1kcygQWFjmIFbQAcsTMAhZGRqYmKj2UxmGPPD%2FsgXTPiyL5ClHxyGLaziXJGa0LpYpxXaG8Idd9eO3XYta3uD7bo2Zb1bW%2FensraO6vN7nvec373ve09PNns%2BNLmn5z3n%2FfM87%2FP3fX5yHl5KLPxhtwN53oVz%2BWFVUGw2sNdFSNcoaF6z90xaSY2d3E7T6kG8JSU3GnBMG8tTqUqmNecbGu2ct8wyId3S2%2FKqKDVC2II527RYzXrauX7BabA0S6qEX2HZ3Tm%2F82bjHp6WJppZw8GWloMAG2bdIcgVUxTBlqCoOuzFjyl74a7JDdkN2BFr5554JnpiD4oPGFox5AwUAiVhHNcL7xLzlJ0o%2F9yr8jIhWPm505pJsST%2FsF%2BypwlKt31V9jGvesOeut1C9TBBnhCNYQ4VPHl6MExwt8rSbQEAJQr61jcIWbdEy35Q6RV4r9SRPPVMUaxeNBx9EB%2BJHCCxNnK%2FDTgNIwTwZIv7UKPXxL9YEPSIAdh822qJvRuibLjDDlB3Nm5V0Dyvan9a6SsstRFaet2mrvZ8LiPlVOqxPFAlydRpzfmGbCvqscgsE9ItqS0B5okyX1kSjLAFneHHWNkqAa2VRi%2FqHgBDtNs1SapEjopZydd7BhTjHB5EM2s7UihINTFimZlccYqi7faNf8a6PbkB7IW7kBug0CZ2xNrZE%2BBA94S0%2B5mU%2BAJFq8jYvUtJGP6B8C7dbV4n7GWNQmA%2FBcHWvix9kmayf7tD%2BZ%2Ba022%2BCJ4mU7r1q3UNjT50QmMDqF6kATSGOVTw6tPzJ%2BkZhincrbL011WAol8Xrszksu9ooamjheOFvNIr8F69sbP2gKFY1Uv9rGy%2BvYtEriCxVmHkRr8NOE1GeBDAkwUsfCGvZM0mZOqw2mDBShk6OJsAjjM%2BlKjqzs5aAc3LVa3wnVwncqNMMAabUF%2FxzJCVLi0ODp8%2BK7A7Az1d7dL9hjqokmTqpOYjxULeXYW%2BoTPjpaHBotZN20NIt4S2Z6tVQs7kj4Q8bXUZpZ%2Fxt9q7B8%2BMR9eHiajqNHqt5G%2Bud9SaVCkQejOrqyZcpT7FyiCoFdHM%2BkdG%2BollRuPcFEXd7bO6bnIX7IW7KjcyWXaE8ghPgFX1Cezz254HWrHKGVEIfq8krOVvgrtx57xO2Mva5Gu%2FeAYEKz9b0Kyxfp8VzwkmzztEBE%2BTKd361ebWEA4FVC8mCDSGSAWvFhOtOj1vo2cYJqp0iSzljlGuRB1uB3EexIUp7SieVHpteWOfN%2FayGkFaHa01W3i%2F%2BM%2FeglFqzwltVLcbI2eciW3Aac2yU%2Ff0F1HEUZoqWbMJd8Cw2uBRK2XoREQugOOMiwdA3XnpQFNbvjPk6bnrOT8C18l1CXWQ4xLjWRnpQOn8R5MTpaFiV76t2VRJMnXY3EqjQ%2F%2BxOc529J%2BZmr50DvVNWwjpltDWcCH9i7Ti8%2FR70s%2F4W81EowTWT5KYZskxw5ruLU2HoA78DmHFgotQGZu4U5Whmc3MnCeWWew%2F%2BO1rTaA93e27dN3Mq%2FAG7qrcOJEPedqeAKviCTzwS5E0QCuGnCkcySgJb7Iydd5d9s7vRPyy7cCNasaCY5PMvtWEInc6e4lKNw77itcoUrrxVe695Okj7VnZW%2BqgMUQqeLWQddXp0Z7pMLMyni4Wz61QonIC7Gz127AZCDf0loRe%2B45lGjn2SiS%2BbfrOXFdxuCSk3hJR6gAaNdejvB%2FxfYjNopzWPTDyoasSnu0YHCuVNVlNQM4QPNLVYHcigiVDeV1nRX5U3TkkbBMXKWYmaQruwp1fSsJmIGNh287IKM5M%2F%2Ffy1LnSQHe%2BrdExNUYcNieEyV7njcM0AM9CXlAq5g9RS03o3lAVZCHT6bivUaN5UxYTrgq76poMKYhV80MxTfvIjN5GhdBJ4mnWaR6bmg6vmVmghJSLaQ%2FNjFhmLNskAq2%2BJVfQ2tIlWzf1KgB1vADVaKjEjnh%2BhxZhVTxxEg%2FAiwK04qHS%2BNjIQM8xxaVRYyJb8O4SOsbrBF8muFFt%2Ba7i4MjY2MhgsUOUKjojEpRuuKPN06QqabbQVTgc8vQ7hW4xQZpFY4hVcBey9l4aTs8gh9kn4yFKU6US1dZ0AIVPLaIDrVVwQS9PAe%2BVYycGNpD47J3F0XP%2FkoeaDuw1Ss10DJ4d7M6hMG4Fvk%2BMoQZOK50v9To0DzS4KN%2BxJtuqAHISxCnnwAVMRBxtDcpuI%2BlOKUfs9WbhmeEzEU8zkzQNH8l6HD5DxoKy5z4wOjkr9HmxJKqkMbWNmM1DqDEXNXNTrLxukG4MyyV2z4v9QhkhtFC5RoPFZKROUSEoPh3Wz6JElzeMXlmWyUSgaWpO7w%2BfqnKNTEwp1gWFQYB8RCyz2H%2FwHDbqk2MTk9Mz7r%2BPR16FntL4uUvTl9iRSr8DoIFH5YmPdIHUEyBoxdOC8zAzOW64NOof6B327hKMz%2BsEXyZELsbC2Qszs7Mzl84N9wI3tnrp0wWR0g139A71NEElFY4Wife65yN7WWxWVKzOZ1qoglvI2lPBw%2Bm5VDbM0THPNqISdahxXy0KlFvmhXiXDF1o9oI%2FdtOiDYkP75yYAfA6WiulghiGz48KxwLfR6UBS1OhDSb2wn8A0KOoW2ggH5qdRJP6EJBzAZLfPheBOAErw2pA0ri%2B64t6TIAZpEo5f1MxOhVRTpBJeiUojyFjPWeKAMZ%2FQfFPzw8qU3PEyc03W3ZLNMXGaESGS4cT5QWnwR76CanRvIbFjDJqniaWpoK0OGc0uxm6vAG1cXJsajaJp6k5dRXyVa5CcdQwqSimPeSj6VHKaec%2FqHk6ANz%2FDrwK1v2gI%2FQ7GLjJOJHrhcZGzk5MXi7DpREOwN1x3HR3PdBcvxN8WaFbxPawLvTsFHBjWaLcD0ab0g13NIxwKN3Hj0dcWxlQEY4%2F0GgcH6vgLmRNFTytZyfUfO35oCpP16OgPjYKzZCs2fysWXL%2B2Kmub1QkPsgpPKGtQamitEHPmy71yj3igVrl7QiTfGrWgPSAjgnDTcWVNJEdMFbzmR%2BM5LdlZon9w7AyVhkgkTOul7ljAswgVWnQBTyeiDbWeZmkV8XTZCyEK1VGNjtphr0PTE07dY7m6zHHnGKCauqap8J%2B8xK3qkwpC0ezVZ0upuYCPgXlyAF40solSfr%2BMefyzhsZ%2Bzzth7KyGdhcwdWSK4L0K8mGyEejFyex2tyN4D94gMOlFL8XXoWqPE2%2Fw2MRCBmR6ztB6bCMbMwdxgHHcbM0OUu0MW6Hfif4srdbnYlos3GRKH5hMNop3eqOhhEOhm2NtOvN5QGVzfaQaeaRCu5C1sward4zDjOfoac05GlIVbztPiSrrP0RLTl%2F7Igzomyz7uXYccGf1hqU6tDUZR65phGK%2B1YAnaINkOEMRKiGSOHTo91U80lkK1drvTS1xI4pztzaNesUTNaM60fjYwLMIDUN73JMG3IrzCS9ep5eh7QiyMjddbA6ZyKmpj957ubfkjnGFBP%2FmljUaTztMOaX3iNJCA8%2FCEy6PVV4WjZhWUyk0j9oYEN5fIhimuIz9I%2BZyzufIRkHU0MvzKEGGO3%2Btbe%2BpRBiPBP5qHtgAKZWOX0oPmjI00uWrqnO0%2FQ78AlDru8rRJTeW3JLoxyQy%2BpN1axCcPKwE2g41J2DY8JMRGs4Uw1YkRmgULqdCBYR3Q4nVewFW8uAyloT5vCgUZjLk5qowazRBUk9A3ScumbNU9pG0GHjA2iy%2B%2FfC%2Bl21%2FM7bb7%2Fz7ntXsT3HrpkDjDOKup7vxyjBn9r6oQceWlvjXLWzF%2FqxqHGzGMD1mM6MorQD7K8cKXzSV%2FMNJcqS36CBmbb9E%2Fml3dP1reExAdY5pgEJ2qjFHS%2BT9P%2Fj6ftXIvQofn94h4sTBox7vp9knPKJ2xZ%2F%2FX7iX18ZTy%2B%2BWa5bccJCxv0w8Beq8LRqM8uXLPnacgcyBW%2Bc74wOrhtj6JxcXpwdTbb%2FhlNDL0wTknSeDy4YfoEnjshHzW25XJu6RG2y2PGQp5ck83QIvGwSLOMo%2FZAtjXHAcWPOBtOsQnDysBMGaithxlozETEbBEBWycONhRmgTunOtneK9EWMtpbRKmR5mLvYjG5GurKFTkh0DVkza5TZxn7PZv99WmxVaOxyiWiJgY3pU3th1y7cu2elVvcUBcKfXvqiGGfMnAChRPz5g3W4IgHvA7FXAK3znysMWApe2VDNj1CituuFD3ZIT561X46ny44JEI%2BAjl4wSxPBWLiEV8fTZEpNVNuwRUSamoeEKrfup33iRnUxkRLH03Vvds8ZP1sxbsFJ4k7FUOYLoLlbb74FBg9RmxPENHku9o%2B9J%2Bk3tWpFed%2F2Qlmwn%2Fz69Fu276yVXcH3xBH5CL5gGJCM884fT8PSbDRKf6lsac705sCcIH9136TztHuZweDBRNTZ8NeKBoALRlPphpXsWBQubbKoWZTmHLeMFFre2AScCs5NoCpPm0NKnoSndNe%2BPzpzwDuhtOEJYWatwo0NhCi%2ByrOcSGI3iz5Hnn%2Farehm%2B3BlM7YxiUyUdkjvWKhO%2BeDttmAvGFCIfPB9gVrcFf1qj4M7foIOA7JqS8WgafXzxtOLb5KE8tVPbgBMpW1ThCrnDp7c%2FLNfWRkNnHogW6bJ6VtUSmLcsrHQouBy2lG0hSYYrYtpYprBxoa2o3AN%2FKo2gZWo3f0O0ceK46rf%2F%2FHm5xCuzNATF2Y1vCjJE6JlMhthXniaJLRLKR3jdhG8SchbYU6Qv9FgOk8zlC%2BOCdiU%2BAR1Kt9Rx2C0KN2dneYXc6p0nP25gJ5fC2Jb5ig95J2mrKMdlfWwZ7aSMiKJgMFTKjvOqzYU7yTxDzUN3jJn4f9BOgEh1b2EvB0uzhiqt7YZVDTz2zAWfAdII7rtyXYu2H5n0XQP5C3%2BZb%2BiWHEQ%2BHs33w6rydlS3RG4aes88vQN13568bLV6ykErfvRDr4wxSaW5Vz%2Fc1NQuBuwc6n29N2YFhDWfau%2FR88fl9OOjH%2FmSsT0NQw25tXnmeRupnZX%2Bwqy39asigu4P6xYu3sAK0pPXJh9uAN0soOpwPPE02S4LULpm5xnx8XkAU27qWbDFk56Ok9PuFD%2Bo2vW1vATlwarBtRcMBpKN%2F1izuXFUxpespk74bGdjamC06kW9syi%2F7Khynax5gmci6k4fbhIzlU88ri82ZjZZc7WmTXiTSRfT1uQ6i39IyMfeYjjXhvGgpdE4ruKSsAF%2B7vzPH7YY%2B4P%2B9VvOV3%2BV5CD3Hdq4mOLWXw8carPZUvPK09%2F4ppFi00KGo2QoGjXJPquYd1sVCjpwUuMj1BrT%2Fd7Pyk7pAqLpd9khI5HeLS0yyevQEyjYRxstDhkMivFIdaXYTF%2Fw5V%2F%2BqpLLdwneUiAmQ73Dsv4h9kplyROkaXnh6epGD%2B15rs1pCtza%2B2Qs29PUTlK52l7AgbEsuROMCOEopZ%2BMReaqp7KfV18ErNCyB%2BH76ss%2BBX0jOJj03rJKL0L51dZJcAy9p3m4NLgLXO2ufVwZ%2Bj15Otjny3VW8YxegdPeYjjXhu%2BEmY2u0rZHvK0ZKpEqWf2C87M6jzNyIP5PIlqO388DcFmYtCSKNwOzjDHXDFms25MFZqdmnB5DHQYpcenYcqrSvDlWy2TxisThoP7VySmDdxOzcaj0Oq2bkjn6d%2BYQ%2FOmhSjebnq1hgKOFV0Ml3sHmRrH56Gli7XIo7XzytMwYu4hXWkzAwFfAa3wCnkapmByJzgX6r%2Fu%2FqAjU%2BkXYwpJcsWE1RXGeKbjg%2B52JqmEPE3jVVbyts9%2FAXUmWM0HRpTccZqDMjOyg%2F%2F6F%2Fz1vJ5JrwfbHM%2B9wysGyCfieDJvBMlS1Xh6v1O2izlf9a6qe%2Bu%2FaU8zTXr%2FvPE0EeyZ8xyEOZJTVpx1I6rQ%2BLkxCb4g35BO4pS2uGAYvmIG%2BEJmvLLyB0ql3pAqpsPINIKNRzNvQKurSaZiRhjiwOP1zhi3kP2p9iDXis6hpctXQFFfsXwpaj%2FOK0%2Bz3VLSlWuGLQYmSwJPX30nmOrZM3BadFbPL5ZYk4tx7TvKneZw754e6iscDj%2FiCT9T7K69Hl50Vt1T%2Bx4Z%2B%2FGJlez%2F2LvaGK2O6xy5y2LZOJGRiU1KsBKZmsYmSmwK2LHTpTjIDjQE1IoKkFWqtpbYqhIG8WcrVapWqoxWSI2LwAYcxUYEOwbhIiTsdYhll%2FWWFmxjbLrFfIXaBlJISTYqJBTlPOfMvc97z7zj8Q0b8eH3%2FEG8d86d2bn33Jk55zzP6fvR9k1IFKbrOGfTRCZ42ZS36Yxd0UcGpxjcAt5FFvvINPJAvzdyiFjVdihtmtgkXGWYI23TzNm2083%2BDyTMuEf2ah4XkNZlprcPknqptUyXkent%2F47DtOzqEm%2BxK8iI74N9EvQwbumKP0H8wuVEM93A1TkbUpumHu%2FW6Iv4bdp0%2F%2BFTg7r1r%2FrF8MXLIq0Z3LYw7NnTh9lJ6qRvef72oSzYcZmxCciWIVZ279BM4W6GeHM2TWRCLCsv1qYZy0Ij7KC0xO4yGBLeG70UM4jZoYnnK1fVdohsmhhiXHWviVf32CqcnPZ%2FiIOBWPRqh99L6lI2vsCemkpmmfaNy8i0HabnfTP9FjNjz7xzBHNp5u%2Fxn8kLYXkG%2FEb5dAPWI716bFoSF82mCbNKYaL9sZo%2BcLO7wVNJm%2FbxZfOiBxZ7fsvh1lDEylFL3O6SROH834Dbe2QChdxhSZuGMylpM%2B4l0EbFifJhQ3DAGYJrEdPnw%2F7BPZx%2Fi%2BrbNBMk4enK2zShmpDXdkk6utopHKQOZ5%2FUpexgEtRFLdMMY1lketd2A988kHqLmVnPspDXWbKKZf6e0yQkB%2Fvxn2h%2BYa8am35Vnuh%2F696bMKs0Jtq7vxmrxt770Lt7Xs3adAj6OmHG5u7%2FPCYfB03cxs5h3oLs32BvMs%2Frj1DiiuOxjyw4kzjUOEzAzdoDjXjpadNJj7DgQVJIk54qfnDT87u9%2BjZtVxkcydv0%2F586tG%2BPyd7%2FOnLiZ7af7saMz556122jCDBL6VLY00Uu0wxjITKNwzRAsjlTAgLOvHNKShSSVeDGQOQo8pD5oxRPQleJTa80QMZ%2B%2BMgIs3KY6BTWegZzysxHppmiSR%2BZH3sMzLSMzdMGrAhp39MzfwPfZCZMfHsWxVUcd7EsOpPuZBprHM6H3mdukbPChBIvTTIyIjh85YwJ8YOzZjxzDJlNM3Ok7jq9o08%2B64d1h9O1hByF9dfpIVimGcbqD4fpjruav8WNZYraSjz6DUgW1mQVhBvs4cYeMro86bG8wm2aRkRAxhtkOoCjjICMlHvMlmjmfr9ZIDoYy6pn02hpGZs2WEv7vjv7NzCgbx1gAfj65Aa55w%2FFQa%2B0e21xnoo5k%2FDYb5tSTS1n2h3jMmqlxEt%2FrUKPMEHs9JbPtHOeRjV%2FcKNY1XbobJpfqtrnafFICjUEPBGrVvQ4jsJa5%2BmLX6bbGMbqt8P09Lu%2F3PQN4EcxOowr8qP%2F4JkLlv9PakEKQ5PZyCI3l7KRvKxtmjknNMrdhFk1AjLaYs8Y076bfRKYc1LLprmN5in3%2Fi9PBkYj%2FTdgnkOeJ6RgtJjZIXXqb79t3O%2BDSVxj3uHA5HJD6bebfd%2BEjrkOAsbkSpZveZB4adlGN9IjPBBVzhmZeXBDbNM8UbC3vN8b3FIIRe7uA8UVOQrxl9Tye9Nu6i%2FT9HeFMJameUubGTKrzXZqcZkipnEDitMHpAi33h7NyWfzViYDiOke996L9eOytmnMXwTI0M0zMdGMarkIFuFZ2LrvfhPpJty6Mze0nk37P73zzx6aJkBALj%2FubyAewy0BnQvnzAC6z0AgGOs%2FlL1SxwBCpRtlopp6DNV25VuIl66isuj3umQ2zauEsOXj08jw0fSMPcKw2Bs4CpUOuEZ8mlm0mWUapx0u09w4c53RMNZuDSv%2FJaBudDRq36nJZl%2FYeSvZUdOtt382J0%2FyucTLC9My582aNY8gn8vPponhoJPLUFlvWIIoARlYrMsjIjNNCKMOKhUXm8dw1LdpXSaXLULK%2BjJiNPzf4HGTgUhCaD8fWQgUvoFAMNayV%2BooPpOvmIAtuSWXbwOxlq58S4GXVlSWAkwwKHpPL4VNG6USrxKaks0jQ70IMUtwvBwOQFgjSSFlQz6PjFm0mWWaSP6wTNPBVZyljFMQXSBYqLLMvcV%2Bsn1fYGJiMp3bevtn475%2B3ktj8Imerk6BH3QRdnFZ2jSm0wEywqJLTHTIEqUrNyzRbL2HrRkK81jL%2BjZt0LLliOYqsc6bShQR%2Fw30ljNZCwC3bnkfFgcQCMYaGLaoQx4F2woqKUK5IwA3yqaCE4Gji5NMDEaH%2F9F7eils2jYfvCqvM9mJMznbUuMFcAd8OE%2BfChyFAERww5rP9w6wzRtZ4zmxTOPRMluzEoiiNT0vnxfOMETZUbjv52T7vojRdknvaZuOiDbobyRmUtYJkR5jt7p8bdoDMugvIyDDFmuGXEvkBrHWXNXJDCytf1Ob7sMX1iDgG5F1pRyDvTvAa%2Bn%2FhpiHKBD3bF0vPOg93SUIZP1zhGnz0BV0AlaM5EWDyl20jdtDjs4ngwa4O%2F5H7%2BmlsGnwvfDkwNcZ2T0ZbJXUYps6c174nBlHIY6ytrrVwWVNvlXiAnT8p5fpfmZruoQR5kF5NxzYUczA%2FGQn%2BvLgNIpnGfRfP%2Fvok4FQuQ02KTRITih7Dv70wuVr0x6QUfGX8YTcVUmNwhJdnr7pF0sU0apt04%2FrScig4%2F0%2F3Gwm9OLm8Ez5N3zxs9irRXyB5w3R2CfDMvZZA4H0lnQqdI5S54IjGfyVcQyS5brh73A4LKOl%2BQD%2Fg%2Ff0ktk0yj%2Fx5ODc9hl1qZl6x5QG5fNCkrLt6XBAroOfnjx%2BUgcD9Jll2rI1mdhpX1x2dMaFy%2FSbbgbmJjvd17mKnzNl0yf49UsQhts6oeTkL%2BLhD17mNk1ARuQv2xXYEVwKM5ZoWj1D2q7YZcamr2nOhQ%2BPpS24504WdtMr%2BWS69yJosmOS7tViXt%2BfC0vq4PEB4UFXlnijT9%2FlIs0IYlLn5ODZChnwmZILmNUoaNMFDosm%2Fe4H%2BF9Nm0YF32FDFssCkklDOOTv869zWn34sOtv5iKvn9N3mMFbg%2BdkouTZMZEut0xbRrn5Nkp6FHZkVUZMSNIXyH%2Bcq5okY%2BzLoQs%2Blbbp9%2F3Xj8nzrx88U0G%2BvwoWJdt8cxJuJQU7%2BcjyNt206Z3gcw8Iky82tZw7IpvmINIRZ7ez%2FoEHP3xfDd77xXw0OzOyzxOSx%2BJa%2BlqWzMfn9eG9%2FR84y%2Fwd%2FooSNNkpX5AAvY%2F590X1F6eFBz1Uc9m19%2B23%2Bl8qHhrz96nzzqETpz4kaf%2BH5Oxn7Q7uvbn15qYQ%2F6u19wZX6xjCEi%2FWpq%2B5TjBuxqZG%2Fj667XPq7jDubCGjK4uj8ZHJZEmyJRPeU07v45VyOtbzymLiiDp3At7QnE0jSDmPfTl0AcXtrw96Rhj7OOieUejezagHpfLQARCUrLBiKVxe7keplIg39JxI8by%2FWmTiN6jNngqaaDYNORKsuwKA0yyqWQtUZrmbem4Q6cww5wHD0%2FXUHRVmwVQljo8emflEKMX2sVqh4AhKxWwKPBcBNCkuSOz0eTr2dXIOHRXdn3z4wbHDBw4c2L9PT%2FzrSMbjdbbt6N%2F77qHD7yk78f73XG2dERWL8C4yc97s6y%2F%2Bl%2FeR2ThuBFer%2BoWGwqZHjhp7hyDayHrq3PbZLtqcTTufeWZ4IxC5x5Z7giZb2u%2Fp2PRAic%2B%2BYfinR9oOYY236ZedGAg9s%2Fdu%2Fzx2eoG021PVeBle%2BsFIKuvuhPzSvUdO%2F58Q658%2F9%2FPjA7vhZlCAxFEuL%2FNdSTMDsR9VMUOdPX3mfFn0qQZX%2FMNzZyLqXja1nZHVRyOdZ6f1xpuhgtoD1HODcJL0lzWx6T7vF0tmh6dHFnwilJCpW6kkhHipBVbkr9hSyLNrpWfdq6Xq2UHXquDJDfTETwWv889y0OjN1cBjLMtTCiLI8gaex5JsLIuEcOPGA85mfqGLt%2BnfEy9Xx0wrK1UU03Bu%2B8yZePQXZDHl3jsf26Yu5KYx4%2BAau00tKsJBxilkAZ9969ixUpxcT%2FLrnE2vd0IQespHxtUV549T5sWKKOV8Y8Sr3ib5e3XPiAl9QcAHR2SJOPHjQ%2BKkeV4aKh2VyU5EW1l6lHU4XukPgq%2BFNFjYuUy%2BNH3hxz58bbEq6atRNH0NOL%2FqzRapz3anr3T6Ter5QThJ%2Bstim874xSjpkZGKztVScRX%2FdDPQtejPl%2FRUKq4%2Fac8zVXcWuqFaLfDXOPFzYXc6etDI16plzolHZSGnDN%2Bp%2Bdmck%2BCKnjP1ng7AzjkHF2XT96LC9xwJRjHOgsWQbvs8pxgYyUiZVeFTyOlS5DM1RyyqOuzrcVyOUsiAz%2F7aZBEZunrcAyELt0NOCEJPxLK49cYpGOePKJznF5DQuN8XabFxG4T7O6jrhiVi7y4QBkv1yb%2F9%2B9WbCcrf0LREeEODTetWSIPFQjqxYQvlOVuV8Gr8S%2FmjUhn78hhrn21SkZx6fhBOkv6yDd6mn8v4xSjpkbllk3bmKvNqifRF84UgWHRK6XbP09WHh25RVV4SmPXEzwN4VecvcNDI1pRnbug3GuvqBLq33b0BbpXJDdUMCHCxSSYMxso5uAibnmP1%2BsG9pWWlrLjO7u102%2BdjzMZIRjKzPO8RdSkzcRNWKw9bLyNY9ilkfzoLgqFrZDxEGrkdckIQeiLnhBtmeqt9OC8%2B6KHxv7KYWkS1YvVXt2gBViUM7loks9BYGOCJdQ6Wv3Ld2uIaGyzpWaO%2FUtbgtAEIibyi6Zutekovs8F30eLbC0yP8mShR8n4y%2FyoU34xL25klLXrSG7tjdpX0NfNwCw85gbq5sXueSLB7fZJU7H2QRW6KqiiB%2Fw1gEZ0lFd0cNCwcvcq3VBQfsUpJKgit1bzujr%2FZju8CQ5rFVVaK4r4dD6CLpd3D4VN%2F02o16%2FcW3rmvHBWAgZAKdJtn8kFIyMZFlOXqpHTpSzETb4bnJG0HBZCILCVT9IIoYMDntshSi43NLX19uTXFH5spPHL21j01FGiWU1z1HPH8qCEwX89H5uIyuriiG3spXMNljxmv1KUWnO%2B%2Fl7rZmjxJ1jhllfvFtl0zl9W7SjjF6P4kXEIbt%2FkFs%2FpxhsqIub4V9gM6GMmdXPJL9vY1U1fAGEcVKEbpPMRucE8nPjlfEBHO3WQFyeLJl4u6xAKyq847ma0d9xat4hHh3V1pt9jGYTFDu8mYq2axTnJbY4pwKey3t57uGtj7NGhXv8T67eqSV84JyyB8CsCpcitiVfnekdGMpKzHmeqRk7XF7YkMzgth667iLOiW5nrGWkkVIaSx3AwAMWtd1ykgsKPzQubn2GAIzoIzgTEyZaI5UoYPOeP%2FeriiW3spXMNFvlfO3WXMVd%2Fr3UztJjtL3RSj5Lxl5lCsZXO%2BMUoqZF1un2TWzzlQI9sxUAa8i1sBvCYgcgIgv9FmJxrrocvGarQDTIXqOk%2F0hO%2FOx%2BYzg160BAdWxvQoSh0IMOd8T4fQi9329NChnV%2FVE4%2BEef8pcbB12kmTDjSpI2G103abyQ7Eas8hBLd4htEWctfnT39%2FoCwBG4Mtfe5NaG6x1aRkcxKOmkSHaM7GV1XgHorXWu0HHPdxdxSYehbt3M1te2QkwlZrCXhdimWxeZx0w2SqcgAR8QqqhCnsER0KmFwvLp4Yhu8dCZsMNd%2BpRi15kP2e52bocU3%2FAUmBWSE%2FrJSwXJ%2BMn4xih8ZhxDvm1wFr4mCpzLSkElfkc2APeZxY4OM4ybX1%2BcUVWCxCpEqepO%2B8qVx7sTvDxqiY2uDfjikxwS%2FIjHKYbfNorV%2BTY3jnGfOm7lIoo5mwnAdptE04VO6sb3hY1dlERwMyU1ar%2F91qcj6U9Td37MTLIEAVgEch62GU%2FcYaDKSnZALUpX%2B%2BP7XWRIur0uRUCLd5fEy7Tkgy6GXqympRilIVMtzIvCDSzZkEtiMTOQ3rQFv9WIGOKpGfd3NCnEKS8RcEAbHq4sntrGXToUNOtyvU4xac5L9XudmaHG3u4C7mV5O6C%2BjgubmzqBfLCNuZBxCAvtKKoExSBw2Ox4tmwF7zJ8e3q4yPPDLNhkxVMcWumr5Y8eOFlAB2qYPGqJja4N2iB7dGu23r31ht83DdcLvyDinpLhJHfJfnjt5SBOSdrGgpzeayuv4VUDiwkzK%2BwW2X61CADn7v0VZD9TrP3bs6KF3EVvfsl44xRQAHcBxCfWCbJyMZIODAuH48cDevm0bWBIup1vJ33yDmSDVZfrMuSC%2FODHAItE29LcrSsmEL2ZZcOr8w7HjNNqxJQ84kfMW7tNFC5qZNCFOk%2FC%2B6iuMdcyvLp7Ypnjpqg3Gu18DtWb4p9bN0Lm7wCT7nHAZo4JiaCbSL5YRPzIOwa%2Bz3jaHgXzQ7DhhXmnV9kJXLb%2B9ve1j6OAzUXToFfyySzKye3i4dqc2H%2Bdcu%2BmH%2FXsHjhx9%2F39OnTz23oGBd8iY7Izm2CmVUNfdIHFhx4NQhPp%2Fjxwt5PABlYMDGlvv29GrybpgCawQlSTU39u%2Fr5D9Bw7LD5J8J1%2BFlyWJ7rGlgTo0r0t5Z4Cb3eoyjZsXcuTggQY5eOTovrxN%2BywL2nT8cPoOhI7YcngiyKru04fug0knj6B4X%2B2FHSPrWLS6VHBouGovHYQNbuSvKoFaM%2FzTXuNmaHEtL%2FBu0MsKlzEqKNZ1DIlPMuJGxiFwnb1yhMdjT0a2O2LjcnFOGDUy6LEqIRNGjI%2BVDSpGA9INk7ew%2BBMSZ56JLvERb36lP5bXLLa%2BUWPr4p5dMLtCKObUUyLjkqANUgK6lwI%2BbZuzvC5lJze7Dcv0axmt3o9n01H5heYPZydvzA9n02QoHENRr%2FGjlrg2vK%2F2wkp6fkuuLqEbe5skJpKM7MWXHfrWl5SAUWsdYJweLRNm49OsQNRoNC9xI%2FsSmB26qpVvxZX1bPOCBBZbf7zHghJzZHlv2Afl1Ckb1%2BOrgCqP8Hdg9crp%2BoGUm136obJKmzF%2FWZuOyy80fTiS8EH5PqkaoqRlw5ChaGv7p1rySRVSTVpiYpnGmMT%2BoM6LGjUy6FfBy6uhTjE%2BVgqk0TyDq5RnIkjcytUJWbXCYutLl2hQokOO4TdwVaF6Th5H0EbzFqfC35HRTVdGGE4%2FFBSzSpy%2F5KzHnbQnm1GSlEpWL0Ldp63l9xMspIS2ADvTGH0oyxv1XGTQW86AReuXlhV9aTQwTAoCTHx5Q02opHRZbH3hfAtKjHV%2Be6pnZOkS%2BSoA9YZ1PqubroxQU49gk9SJJ9FJohmFzA5OrgnH0JZFf6KFpRsswM40Rhfy90aNFDeU0w6tO8X45pWV9%2Fnyd7l8SL68BXVAQpAoo2HTGdMQW%2Fc4VqpnBB8FfBWATsc6n9NNV0agXh2ltGdyYaY9mzmxnPqWtISSKrGEAHuRxpgJ%2BQ9DiluHBDrR2kKdYnx6khtGowmGScFHgC%2BvUfxQonoEGjadeOf4JkEJqmcE48JXYTyS7uro%2BsoI1Kul5IW42BmZ9mzmBNi31nm5JSlhKUQLsDONMRXyZ4rbeCHSQ2sLdYrx6UmuajQwTAp%2B4strVHwpQWYNIpdjRiVi66aeFRmXBG2QElBblyMBOp96NZS8EBcrYPN8ezajGEa9JS3x4j0rIcDONEaG%2FJMRwdGWM2CqYnw4yTmjgWFS7CdaCChz0zJaw6aJcAvVMyLjGsmvQi1djgRZtdSroUTxGV2jxiTaZ5oFjuGWtMSL96wUAXamMeZD%2Fm2WM2CqoCLzRmOGSRldvrwtaUlLWtKSlrSkJS1pySdZuO9mnmuN7Tcz0fN560xCz6fd2jmARwSOEL8xVRkD8bnFuBin8BpgxqUkp4ZAPVOLEpI5FR8t0ZE%2B5Ea3ZZ%2BH6yrdZ75nnrc4i%2BnH0MaBcgj%2BHrwPPS320%2B9kIAlNh9bGIbvWbR7c5HvJTHDNObsKhDBf4lHy3wC6yVKIMU5wwJcRLEY4SwYeA39d6crjCK8NiVPE%2BHgMEC7GUBsDtnroUGII1KOaBw7Rf5D3mRFKoffQQF3%2BebCr%2Bo4%2B9uz9onzOHhps10QRnRTPAAON78H7BLfeZ%2B2CRg9zTkIOjY5XCN8jtkZb%2FiAg5LiXzATXnLMrXkjHkcGNcvrl0Ws4yyO7OclsKxMccOAEdYvBIfKch7EirlaG3DjCz4UEZ2JxPVYXF2NIrFxhH4T4%2BiF4Pao5gC%2F9%2FLnYFu0VrDuKNbZyjJnnwa7qB%2BTYs49f%2BudMWLrNwWRRvFY6mWzPwECy%2Fh7uPuBdsAua5ZMyajSbyKFVA6STHUOAtQ5t%2BQMG6XvJTHDNObvChWQPniw0HZ%2BWR69pJ56BhZPMtphg42sh%2BQroITRDLEc3gfyXIjWGI5wyPhTJIGeG59TAxZi6QomiYioOPwSvRzVPxMF4fD4HhXxW38JttRwjJ8zRSM8rp8tQovWTbtgzN7FA1s1NPecRGJrNgSjKd1M6sWeAgY6Ic5V4n4J%2Bb6bNl6e09DRKMzi0aiJTxOQzAq1DW%2F6AQfpeMhNcc86udCG9ZYqHyVOlocAv00PJlNbBNYWPChPcwKu22NpaJveIDC0U8lT%2FYCpSWCko8n%2BXFckgt5XnvtKLMcUUrnTGlFl%2BCF6Pao4wi3lz%2BVxR8k6i4DBS0UlgENOLLS6mK5TtqZ8cy565if0c8oH5nG%2BquCF%2B1ygxdWhCQvElgevoQIVTlxRnzCl274tyXy9Ee6BmGt4E5w9RukMOzSUck3EPzEM2poVsG37QF88TXKcn%2BDeZsytaHA11gi%2FRUZrKoyeMg4ymXL4aHhUm2PhPSWYKukWrdJChbwzA7sd6KArrVPhJN9n9Io5KXIypIOUK%2ByC1pR%2BC16OaI7ZkfnseCELSd7DNK5CU3GExC2iPSVm3pz6IhT1zEws2tH8snvMdZAixFHOjrsbQ5Ls5CdUY8feDlQKJ5jH2h%2B8L9jmgs0d7oFv5Jrjjt9Y1eJRDc8AgMuMqQ6BVmiIoBpVQ0IsOMqJeS09w%2FTm7soXlIlgPIpm%2FpTTiVuC3gFuSefxRLl%2FVR7WcPOUgHUfbrrLSAUfwdESzDCjX%2FQB2o6MgyusLJOK6J8jut8oTU1tVBMq6p0BCLVeeXE2tp0o1T2hNvaef6lkiY2sY2hpqfQzw5srlASHJ4iyoCgNod4Lj09gXbLpYX68m2NSjOK8Lm1hhncOjXrMcULyCyYtFAsCBL0PrkQoJU1E1WQYqNWpCqV%2BP0eX7EvY5j3YLsh4sFMWbwOM3ZSbKB%2FwTh9bWAOAlg70x%2Bd6uFSEDeJWVUKSYBXpx05ee4LpzdtXY9JZEzVTKMKmLFkqE4NEbLQIrhHzHpiPCWmOCy3oi262tzDdZ%2FgvQ9drntkBcKQcsWhhcECMfESQii0RIy%2BWJAhKuWASv2G%2BlGvXwZzXID9bKG82xyeBXU0stUPlWqeRkQ1HItrGImlRvAzGTEvdyAeTeVkmSXgKXBAvs%2BQeW7jNmW7BlFJvYh76uj1oZ6KbJsTgc18lq%2BL1N23u3Pr9a5vhBVOB7fmvv9k3fI3CbrA4vVoufBsbK9Vt7e7euJ3mDO35DUNdgDe%2BIgy6JNlhpBoz7U%2B7DlRWB9ZX18Z%2FZIoMsqMzp0UpPMBeunKy%2Bumy6n%2FUVk%2BDp6XNQlksrhRp9ESt58RUKX18%2BKqnhtfNHZbnd3t7tW4RprOiJjEIVQqFXNq22kkuh8Oy%2BX7d3tbFVXGdamw%2FSQoi2VbLZD5Io6pKkIm1qlQ2wCxWErDcWbFZYm0VrWUlJJLSL1R%2FZWKkqR%2BIP0m5Y1z%2B6aGOrJm3BbR2EXVLL6q2A2xa35oZgm9jG9k3sa2OXErvYCcFNgCKr73PeM%2FPcOeNDfFMZFWveXzCeOzN37nnP%2B%2F08Kh0G2qx4nThYSuZkz9zhIXqKkjrhL0AECo%2FZj%2FFzQPtvz4QioEviwcmz1Ri4oTaA4gefogaSdsqRNhLZRshOhWX1BK5FAxilncY3BhsmiXBjP5j3njFUpBAf8r%2BqBINQdRp%2Fkt1Zw%2FXFERjZzu43DBBbicEifqO7M91IHaVOA5mK64XP1N3NGzP8phheA5h3fHH7fQmIpYxwATMOHlE2AEt%2FSN6MpmOd3ZZTnXiy13rBjK0%2BVhaYTvsB8ohctB30mYbRuzc7MpzL9Qmb8tvvDGd7iR0apBmJXXbirY50c0CLD%2FjuY20%2FCe5E1MAdhuRqOKQXFNYa2awRToMg%2FtwkZNyyUaxeH5Au5pTfZmuJQ8jIa5F8Ebk9801zI0qr97R%2BjJ8DK8%2FBdAAjqC%2FkmS1Pmcv1D3WBH00A0vRTXOHYc%2FoDaMJhgibmEdk6pOSj50b72x2ue3Jn6tOfPXfWuYD7g%2BXO%2BIXohXpVYBb%2Br%2BxPT0Fx8aensDuHbi05IXN4x1an5f2ey5E4MoqSODHB9cJnGhkJb0wW3ZejyOmvEehNv28IXJlV5lbLYCdpTKwgS1NMnT6Y7hrsBzWY4r6T29H%2FgpkI9osfPcAvN6ROM6OoCIOgucbrHzs%2FIei97WlBzW0X7N3h%2FF%2BSu6%2F%2BVINdQruNSElkt9JsBHdiRbbEklEqDbDV3XVF4tqSXZ5EOV9au1nxr5UNq7xYMRlInMxrfWixiB9%2FdEXROvtNLdPVFoVyCD%2B3sVSWF%2BF%2B8RQ4S3mgB%2FsNaeSzpcXr7ae4wg9n2gII4f4JuSvkQj7fPF80oEffvfT7S%2BOnHQPoUlxnZbd0ruA6VteS8AfhVf%2B%2FRnak5%2BS14cbYnWvh1oKGjCawLRvV6XG88Vl1epKEofmL6AxvTBbd70WQ00NUY3KFipoO9IFuf3CwJ6NMs0hLigFpIuWC%2Bt66qnpOtzUrPwtT7N4X7BRs%2FcI6ZQFyo%2Bo01M4gAdeKYwN8b8G27ki3AMhPaDvlFfOXjOy%2BwAI%2F15MGPY4pL1VYOqwU76T59M%2FDh4WZmKbuyvV42CG0C%2FCvAyV%2FAO1MmsiLXosUFg%2F%2FdUgmkDuuO0ERu6nkc8tlI6rQNXEleAqElkpG907GkkYW2d4p8mU0pFqayMqPu4ILwLWyNIUXQ657V6dJcd3VJhvEKecSTgLkmhJenVeVCLOqQh5XUCW%2Fht2ZdKFWXeD5%2FIY6jf%2BRp8vVaRJ7%2B3SaLLqH%2BVxpfCcFemOEnDrZeTyNPwrn%2BkCPMsIjjbm%2FOc37a4Sk3l%2B6o1N51EQH78av4XnBHp4jnzBrWIDcgDrNjKIg9h9MtfePfXAVzDrCVi9AfqDtlFfcTk6eyO47cuEjw4UlsRzaQLYGtJXOnZZIromcb9Bd3cy%2FKAuIXNJ5%2Brna%2Fnq9ZMPyXEuppuCE3RPAH4%2F0mS0cyxlbMhl7VivgL8i2LL803LcKXOw0PG8ljQx6nMmX0bTXArDtCV2KacdM5%2FunH%2FloxGimO9PN2CDihrrwfA%2BJs1sbhIz869Dpr%2B%2FE7kxabz3H6Kp8acbTnWPk6XKpEMme69VpIk7TgegiN37eVtKegn1AYJbO9Az0dQoyu6E2aev4%2BQH6CUyoCe%2FuG6kGQ8ewmgiS%2FhfMhlu%2FsBm3ELlBdZoZxcajHdnxSzOglTELZGclaDvF8B7l75u3%2B3YIk52%2B24qykse%2Bgs5KSy8d4uFTOcjNSu6Ov7PhtOWzoX5aKqAhLEAuufi1RKagwdhwPodli%2BPD8inV8ugwxt2aYwlIMWcmzScrKk3KSj1vkkbmeXvfr69WALaXlIbWfpY2licHXLczF4ZoRuJm%2BqTcrUbedqc11PQHC8z3sBjwzXpJLB%2BUGlBNQ0PNLtEKyTLXfzMwgdRV%2B%2BqfgC7GFwXPGyd7br6JpHWM8H5NTFo5Q2583f01JdjaUCf2oRqc63D73slK6lWkswdxc%2FCQLHxV10oIeMzQJpUR6dn7gjmf4hcOzdyA4n7BmE7fFfuCzChmhqZEUaaVFLpKyNSEtrMShvfH1g%2BLvVyr0%2BWCGgjX5h82bEaB4lVdKC6Huu6xtMcMp41QP639fsfqvpePXZ0w3XA%2BrzZBg3DmnGM7V615cNpauOOnArp2VkRZyhI3pEIA2J55nrzXauNpYqM73dSH74%2BI3Wc87ZrpkxLvv4StBA%2Fg7D4F53v0xlpVPNBQt7e5eW%2Bd%2FMOgn8d1Wl0kqU%2BryfPq9NluesVMm%2Ff1MYrN5%2F0KdZrWnYUDSXvJatpZicDMsA8ePd45MDh8ZmSwD%2Fnt0Jlg10OVSdUehgNIRgb%2FC1744joijk5%2FwXFEyJWFjOLEVeWNQzCzvexfNgltpzG8zfzpo07QZfW9ge6r7d7%2FtEnWbaRjjYGXqgTtMSNjI9RPa78j5NIe8mY8gOZZglvwU%2FEIo3S7roppjYnhcCNtZontYRNixeTaV8RaPPmEWlhr4qcGEItj3whDYUYkHQMjAx2SZGA%2Fimum8eEX8BV0YUbItwvO9%2BDG6PNUtT7Qkk63HFCFRhuoqgupiIfUZbXpxCGHT5M%2B%2BlCG2as85e09QteavF%2FgZFHpoXXXXXEV9PA74kXL%2BgDnOty%2BRnG6T3QLxxIKUiH5OLsTwbuL01rwDk1Ifcu1X%2FDCFzdhENHpYjdhQC1B9ugyjBC0BEnH4jUrV65Ww7ufOh1hoIZiIO0NFP6g3fvfno0y6TNBqkyOtMdBOD05OTV9NdRPuZG1CvFwWncgOt94gMCi2NhumJTUsRdTZFeFsldezGXEKRSGeyRkHLp2lrJMBXVtkK%2B2objNrHPfYOZQYsFMW%2BogOHjpVcfMdNV%2Fmq8QZPPoHhSU7yHf49Zyo9YgPQLZERQa9OR2ZoGRb78q3Tr1tPrpCDm%2FE3YbNbh0sq1OW9eavF9Hj1B%2BSutO5xuKW7rpcXCuV0Cr69A2Ii1KTaTU5hSB8O5q65M0lzRqSK3fwfuCF674N%2Fo8nX46ttFHvNmLTEtXyDDF8mXL5BWXYCXu8%2Bi04aFt3i9sOWz33vY0J3oi%2B7%2FqIe2xNceDfcJ2OXHZ6KemWJQibjASTnsceVbA7B1yJ2hhHAdGVwUM89AHM3K7iX5J3kiSVUisSWwfIz54GW0wcTMd1UVW%2BGr3N0nXTW01OHjpmqsGqJdgPvxVo94dKWanP%2BncIHVast1iNN9Kiyqgr4M6TU5Eu02utapLPs2oP9Vj8gu2Z4VFvW4WuLhRNEv6i%2FLd8Bejq2Os7covrgSfNLQa7Z1oJa4lpTan%2FcC7W4LT0Mr6HYTUejnvC17I4g%2FIQp1%2BMR6QxbNOQfl4zfLPLrp1yd0PmqVYO6vvjQUONliw2rHdW5r%2FSkvWrvirRS7tmwbBtMdqjrszaVP5vUoDrjobD6fjjjwrYBvtMoWKuww4VDtbz%2BoyynkZdLQnejpTyMaQ2N4hPoDP4THTVEWmbXeZzuZdWHHI2dLzx1aEi5wydfGtdMO5ORQ%2BNxj1vWsbmuF7NyMltYu%2BN7mLMzbR%2Fah1scmnyWfEq9f8QpACZPMNC1x06KXNN1%2FCX4zON%2FKAj9z3l8K5jrkfccHlWc2pLqW2lh11lEhHTqr%2Fm2bf84IXsvgTpzVwcEVd9ngSp6tYHbI6rZvtraHLaLhfHqNOW52aMUo9NgD2WW331pZeicX5vqmHmg9Te4xbaDidaW3Uym9YddyiFtcNjF1HXvLlzLiVl8jV8FBwvX0MOH%2Bu9az6ZqudV6bOnhkdxp6gLh7XFruZ4XN85WPMNDtmEQtiAEgaX8nBS%2B5MfC2NVDeXO4b6k81aRnNkjfttjuwg%2BjqYI%2BNvZjs%2Bi2wLKFtOIs%2F4S81dWTPIJtlMmAKj8yXBsoRdlHDOi1S7pkl16c3gk17x6IZNOi6pg55UaWfkdwNGQ2l6%2FC94YYu%2FwNksEWQOuuMWOKnTzFVNMhkahDHbyP3CquNhGDuRmUuiGbk%2B8EoHLb3YRJlwYhBs6lZ0BZToXvYarfyyyqUWNx5O05HXQNyo2Hl7nlqSQY%2FrzXoW0gOBTzJzBZ1oqtN8Xgf0Y%2F0an5m%2BM8DsYs%2F8FjspvKWYK45DljYvhiELbRI9xe3hE8xaurWs%2BpqwltXCWlZ%2BpfhNTYoVacrsTSa385%2FxiKg08wusAECnbaMCr4lMhJO70xiGVLvhMMnNS0SrVwLWwJ5KYAMXbkMhHBgi%2Bl7wAhd%2FI1Jb18j0RH8mPUsjkhMfOzpNJhjlfqFOwdj1v3vxqtWM6anJ82fP2JZeqW2zMMSWLNtfwhhYtFyJ7r%2Bh2h7aXHUDZgunaTXU%2BWb8v1X3DI%2FrTWuJ9EBd%2BGVh59X35vO64Fwr1nrM9H3LA8wuzrattYgea4uWByuOJpD1q81r7DAH3fhCZy3dnhPz2l%2BcreeECe3DxzWc%2BZINhQ6z5YTP%2BHqzk7uimaddDw7ukacvfdzJ3d0epdpl%2B5Zo9V33WPghAifF5ealCrXEXKDnBS908TcMZ8ekO2QCtjSQzBx1mkwwQC6hTsHYtbb35Manpi9Dr1WzP3r%2F%2FNlcj%2FSgoQhh7To%2Fw8KVdpJVGG%2F8pGjuN1TbQ5trtC57PB5OM0ij833JRufq29P19jBabXjqP8yXfc8m29FhAzUzJRWuL6J4LCvymOmHkKAmZpcXWocmEJG8bVZ5ZL3%2B3zHUBc9askZm3CPTG%2FpCRbQ3lBHx66mDJpyRbQrjEqnXGR6ThruxnrmraPG9lS0i9Cjw8P5eLeyLPITbWJjAOMBhHBKR12Ow%2FYBCmwkc2QInifiYwZ6z0koyMz0%2B6gz2eHWauzexIMn9sliN3Z6GFpnh6MuNjk%2BKYotmq2JffDfbcbTRnTRcHGnptEkyo%2BTwfF9QbQ8NuAmnkS9jOO0634HRZ7bcXO1tv%2But3jSgNLBjDGVNsh2G%2Bl3UqY1exZuBoTI%2BM%2F0I6gvM8HugdRwzHTSrPMADVL6CZi3dGY7qnTrDgQxcZIaDe%2Bq39u6rrYZS%2Fq0ZlxCgim9Zn4aDT9%2BWhAhzV5Hi%2B559%2B%2FCeHDrQbQhC%2FL1a2Bd5iHC%2BPNXfOcWTeDRgguFusKDFuyg6s%2BNXPpBJK2dR%2BHVaTd0SAth9%2Bg7%2BMjdbzUBbwGEZ3OoW7TgzKhb7iqgrEk9DGWfS0E2u2ySZ0Uso8dc0fRYmsU1%2FA05xWzzjRp%2FlbnO1t9uZxYnL0mA3whSFJtttnRp6VYqoL27ZPWYato6VeC%2B0Ds00zTK2u7%2FhETrJhc9actf5n6qKbWbWUt5nZNaSACtAH9pVhQHx%2B8y4xC6ABJmCFY3xbhQuduTvSIQVkjy0bRFhhj4h5Jxf8TpvKZlbGOuSSStKkydHxvh0gx2JsbkNelCL4WICOQqYCI3AOEm3Z06IxYY7AMM5wUE4T1VZ9w0bTpsGDO1HsQG1GauItA5THKPPcrcJp6HemsXxeN42arBTFKjIo04NvWKabG5mGuU5dsx5oXVcM22bVT4bHDqBQ9xCC5y1ZGVcwBw2ezAR9OkUJdDki5f%2FxXKTQTZgftjJmKN%2BwWCGlTByIPwfdrDn9Vuxkp4Qcs6reJMsdQ1iHrNtzXsjSRZfLUvj00qMxNy9RCjwbrkNNQib6WBTS%2Flz6AnC4FaDohelj4s7AFPvThq6VeVw3zDIGzDY22w%2FShBQY4cZ8Fhcx%2Biz3G2%2BArYEX8vgLQbVzpSyuu0URY9G5GPeNJnfTD9YhKzTXs08%2BKF1aKaj0fOn9Bj6O%2BwWCtUqeNaSyWUJAtaFOr1lPbGLVBZbNN8yky%2F%2BlMkgl1nQ3cXMUeMMYHs%2BGAaxhOlVfGV4H0TKTwg551e8xZBgBKdmlmKIqyGcDZb9fMX9y%2B4SUg7tFbBFBTa17HjOgIbuxkSmQpy0949fiQ7CedpDNUkG1TXq%2BNXQgquyw3yd9lhcZ46D7aH4%2F8Bxzm%2B48mdYs%2FC8JVGVadUpCjXU%2FjSZ30x%2F%2BWH8gdMqfmgdIgu2HGc5WvaAVXYm4Q2OXBY8a8nksiTrLMZgLTKLEYxBou7LQeSLNYP8GMHxeZmNBoP7zkVxaO2AB2FposLXSfwA0TvYGxpvWnB7QzW%2BRLOk%2BHIbVq98WEg5tKePg0Cy6hA0Vm3%2Fd%2BnLrwAKlYU4acVssqvT8fZQa1pr0AtjrHGZteDWSTAWtJuTuCr%2BOQ7dCPx5NbZ7lxnPO9ONpBgMuxpqb5rMb6alemO6RsLMvB9ah8iCgtoY9nezBnX4SIojlwXPWjK5%2FNAKPxYw2XGQa77FokSQxCZSuwNXxk2eySBcM1Hp6y5uc2Fp%2FgyH21zoznCooVbsEkFtxQRl8ZPae6%2BLiCCUMFcY3BK0SAtxssfOJlOnfe2huEUzemG6jBL%2Ba2DB8QeNdN%2F2htPuHAc3AnW9mVdz%2B00wllUtnrfC%2B22vtIbaTZP5zDTBUZ6xGJk1%2B4J2aT%2B0Tpin%2F7aBS%2BYcll4byD%2BA7%2F2k2FpMLt%2Fpx%2Bwnix0OMq9MsjleBmfc5M9D35Gkw66%2FuEMAfx%2BdtXSGAOKzljqXAaWWxm1MUErfDmbkLGozp3QMClzJOvHWNlmIk2DA%2BKITT7vtoXqLNvTCvGWs8ZO04PgDMtJD%2FnDazbhxI%2FC63up5I94FPIvGFuUVNNROmsxnpjW39xIxMl%2Bz7dJeaB12er1scfB1y%2BHFLVnBH4%2Bttdjl1klkgYhL8ne%2Fi4ngkPw5mAgXtIUbSg3U1p1o5a3CLHu9NTuc0mmuh38u%2BOurVivEiWJ9TmpAztNnaw9Fl3hWemFyao2foIKaP%2FTlznkT2PGMGzeCuOtNAwTP28CcdFhwvy3bKm2DqZMmoylyzLSWzfYQI7OJiuuF1nFNLwcETYHoecfsFjxr6efAS2QhCcl4Px3HLiIZbxy7qGsE5ShV6pZGIJKJ1LwimDNBcEudTql%2FDnqsjbDVW61OX71gBuqD0z3toTOX3p%2BcfM%2FiYmykgpo%2FTF0cj4XT%2FjmOcCMYjbveDBSLjOcNODILD1jMBtNImmyFhowxMw2Zzu%2Bal%2Bo8WyW90Dqz8RAuYYGozDG7hWJr%2BblqE1mAUjjGYFO6I4sebig1UFsP6fptOpT6aTgLT4Ab9c9BjyVrEihHxvd%2Bb2Koizhb%2Fk6RfATRdUyJi7A85YTT3jkO3QgueFCLNKFbXBrge9tSXTBDPHkZ8rsgTVaiDcuOmZ6%2BbORDds0DBpMjEH5onWvwBd8e460tEFvLzymfWOkFKYVjAQNDAj3cF6%2FMSCdpziB8Q9oyb3IWnjp9Ev456LHgO6KohRzZ6Fh%2F5mhTPYszs3SKWPgqovSvsSnxX09aOZ%2FzhtPuHMdvJwP5rWc4Uwuv5dIvKQ%2FYMZizCGr%2FuOUZhd2zYuGAy8PBIprp%2FhFi9WdP91o53cMmWj%2B0jp%2FXn8eThHIi84TZD4Bv4Drmzk5OX%2F7wg%2FFRO%2FWRHYrPwqMFrEP8c9BjVUOAGtza3j8gKFONiLRdggnWwTt6Vcim8%2BUYpmy3G0775jhO9VJOeYcz0SBVJSrdesz0xdYJs8%2BzgrH0ouh0hvJzpAjCAWCa6faMR%2FhK%2FdA6NL2uDeXxJKGcyPxw66AD2OI6mgZusXznxs5gNLrzl6HV5IzPj1Lp9l%2BlU4KDAFF0%2F64TbUCZ2k1cmVmS1UeskPXuCwH2O%2BUnrO9e0%2Fk%2Bki%2Bc34h34QAFpIkMfAY9qHrPDw5F5LX6GgvUQct74JBf%2BEq90DqJJDJfU1q9H8uBB8Isi%2BtoGrh7RTozgDBJHfphAAfJGR9JnAn35S%2BO%2FcxGl79oa0%2BjK1JQpiqJKxNPVsf6oaTPMuRooTAy9jvfsX6r%2BOg0p39frcvrlt1rGlJjrLd133vVdnuGYAOv1F5L9GQfdlGSfU5kXqe0qNN%2BYkvFdYS2kn72UCMAiQIOV8747KoGVXBT5ExMLwBlaitxZdxk9e5Z%2BqHuJ5caJR4Zx6Pzakd2c3TafQcRJnrMXmzDHfUYj5NJfY6II2rUfdA6SfY5kXmd0qJOewmoLa5jhCa%2B9v%2Bw9C1hLGd80IgC8vnombuxnMtBP%2BeuZw7%2BxPuh7mELlPOHRQVAKUL4lO6pGDgKBTOSMrnEYzxupyfnigxG8nwXWidR6UTmf0pLddrfqnLvCovrqA3cImrIKjF%2FZzhcOeMDsGZRgSrnTKABAGWKyV03%2FzxrPxRaoAogIfRj2%2FMp46eC0kvFTCT9M%2B6ox3icXVhzQ%2FDk9HAcWidR6UTmeUqLjqIr7PJXXMcyNHAH1hK2CPN3hvmVMz4C1iwnwihFzgRqD1CmllIZnTrxrP1Qd%2Fr%2BMDdqAgqZZt1TccFVVsxE0hrcUY%2FxOCvIc0Pa1ulhH7ROIonM55QWHUWPENdRG7ghasg2mfk7ml7AGQlY88q1j4lRcs5cvwrLmS6zp9PJ6Yfy%2FmGOFEJO9dc3U3SvFTOR9LmHeIzHeQ022XqF08NxaJ2kNJXI9ZjSoqPo12qjrWjghqghW%2FlwOH9HpLg75ESZw3TPfOh%2B33Jmp5PbD%2BX9w5yp%2Fpzqr2%2Bm6LZFRm4zE0m3f4bHguNJF1Yif%2BpCB5KOoleorcvupdlcDlvE%2BbvIiYKX4J75mcWJy5lIItdnSmsOMDPEFKTZFEN2603%2BYRHnzMTCJZJIIokkkohf%2FgC%2BmMOH9F2azAAAAABJRU5ErkJggg%3D%3D\";\n\n\nfunction $69e3cfcc1b264755$export$251f3d1a0977e048(a, b, c, d) {\n return ()=>{\n let t = b << 9, r = b * 5;\n r = (r << 7 | r >>> 25) * 9;\n c ^= a;\n d ^= b;\n b ^= c;\n a ^= d;\n c ^= t;\n d = d << 11 | d >>> 21;\n return (r >>> 0) / 4294967296;\n };\n}\n\n\nasync function $953cdf9ae7e8a925$var$loadTexture(gl, url, settings) {\n const image = new Image();\n image.src = url;\n await image.decode();\n const texture = gl.createTexture();\n if (!texture) throw new Error(\"Failed to create texture\");\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n if (settings?.noRepeat) {\n // Clamp\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n }\n // Flip Y\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n gl.generateMipmap(gl.TEXTURE_2D);\n return texture;\n}\nasync function $953cdf9ae7e8a925$var$loadFont({ gl: gl, description: description, textureUrl: textureUrl, id: id, scale: scale }) {\n // Load image\n const image = new Image();\n image.src = textureUrl;\n await image.decode();\n const texture = gl.createTexture();\n if (!texture) throw new Error(\"Failed to create texture\");\n gl.bindTexture(gl.TEXTURE_2D, texture);\n // Clamp\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n // Disable interpolation\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n //gl.generateMipmap(gl.TEXTURE_2D);\n return {\n description: description,\n texture: texture,\n id: id,\n scale: scale\n };\n}\nfunction $953cdf9ae7e8a925$export$dcd6c8b81927dbfa(glContext) {\n const size = 256;\n const data = new Uint8Array(size * size * 4);\n const rng = (0, $69e3cfcc1b264755$export$251f3d1a0977e048)(3447226902, 3732301963, 1546073757, 602736451);\n for(let i = 0; i < size * size * 4; i++)data[i] = Math.floor(rng() * 255);\n const texture = glContext.createTexture();\n if (!texture) throw new Error(\"Failed to create texture\");\n glContext.bindTexture(glContext.TEXTURE_2D, texture);\n // Repeat\n glContext.texParameteri(glContext.TEXTURE_2D, glContext.TEXTURE_WRAP_S, glContext.REPEAT);\n glContext.texParameteri(glContext.TEXTURE_2D, glContext.TEXTURE_WRAP_T, glContext.REPEAT);\n // Enable interpolation\n glContext.texParameteri(glContext.TEXTURE_2D, glContext.TEXTURE_MAG_FILTER, glContext.LINEAR);\n glContext.texParameteri(glContext.TEXTURE_2D, glContext.TEXTURE_MIN_FILTER, glContext.LINEAR_MIPMAP_LINEAR);\n glContext.pixelStorei(glContext.UNPACK_ALIGNMENT, 1);\n glContext.pixelStorei(glContext.UNPACK_COLORSPACE_CONVERSION_WEBGL, glContext.NONE);\n glContext.texImage2D(glContext.TEXTURE_2D, 0, glContext.RGBA, size, size, 0, glContext.RGBA, glContext.UNSIGNED_BYTE, data);\n glContext.generateMipmap(glContext.TEXTURE_2D);\n return texture;\n}\nfunction $953cdf9ae7e8a925$var$fontLoader({ id: id, name: fontName, description: description, textureUrl: textureUrl, scale: scale }) {\n return async (state, gl)=>{\n const font = await $953cdf9ae7e8a925$var$loadFont({\n gl: gl,\n description: description,\n textureUrl: textureUrl,\n id: id,\n scale: scale\n });\n state.fonts = state.fonts || {};\n state.fonts[fontName] = font;\n };\n}\nfunction $953cdf9ae7e8a925$var$textureLoader(textureName, url, settings) {\n return async (state, glContext)=>{\n const texture = await $953cdf9ae7e8a925$var$loadTexture(glContext, url.href, settings);\n state.textures = state.textures || {};\n state.textures[textureName] = texture;\n };\n}\nasync function $953cdf9ae7e8a925$var$noiseLoader(state, glContext) {\n const noise = $953cdf9ae7e8a925$export$dcd6c8b81927dbfa(glContext);\n state.textures = state.textures || {};\n state.textures.noise = noise;\n}\nvar $cc1f95a802d3b386$exports = {};\n\n$cc1f95a802d3b386$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"8TLBT\"), import.meta.url).toString();\n\n\nvar $60bad8092d68cd36$exports = {};\n\n$60bad8092d68cd36$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"a6fLY\"), import.meta.url).toString();\n\n\nvar $24d45412a1636771$exports = {};\n\n$24d45412a1636771$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"9wYW5\"), import.meta.url).toString();\n\n\nvar $c36d05898c99536d$exports = {};\n\n$c36d05898c99536d$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"5dueS\"), import.meta.url).toString();\n\n\nvar $d666cede4ea3b4a7$exports = {};\n\n$d666cede4ea3b4a7$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"2FNM0\"), import.meta.url).toString();\n\n\nvar $6f13d451c3b9a378$exports = {};\n\n$6f13d451c3b9a378$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"dbxmZ\"), import.meta.url).toString();\n\n\nvar $9de7d24f46818127$exports = {};\n\n$9de7d24f46818127$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"lhcMQ\"), import.meta.url).toString();\n\n\nconst $953cdf9ae7e8a925$var$assets = [\n $953cdf9ae7e8a925$var$fontLoader({\n id: 0,\n name: \"pasta\",\n description: $3a5376079691bbe6$exports,\n textureUrl: (0, (/*@__PURE__*/$parcel$interopDefault($7f7c1492fb383103$exports))),\n scale: 0.001\n }),\n $953cdf9ae7e8a925$var$fontLoader({\n id: 1,\n name: \"novarese\",\n description: $925c761d7b98a021$exports,\n textureUrl: (0, (/*@__PURE__*/$parcel$interopDefault($084c7c3945f93d44$exports))),\n scale: 0.002\n }),\n $953cdf9ae7e8a925$var$textureLoader(\"metal\", new URL($cc1f95a802d3b386$exports)),\n $953cdf9ae7e8a925$var$textureLoader(\"metalNormal\", new URL($60bad8092d68cd36$exports)),\n $953cdf9ae7e8a925$var$textureLoader(\"splashBg\", new URL($24d45412a1636771$exports)),\n $953cdf9ae7e8a925$var$textureLoader(\"splashFg\", new URL($c36d05898c99536d$exports)),\n $953cdf9ae7e8a925$var$textureLoader(\"splashMask\", new URL($d666cede4ea3b4a7$exports)),\n $953cdf9ae7e8a925$var$textureLoader(\"sparkle\", new URL($6f13d451c3b9a378$exports)),\n $953cdf9ae7e8a925$var$textureLoader(\"sky\", new URL($9de7d24f46818127$exports), {\n noRepeat: true\n }),\n $953cdf9ae7e8a925$var$noiseLoader\n];\nconst $953cdf9ae7e8a925$export$83691f04acd84db4 = $953cdf9ae7e8a925$var$assets.length;\nasync function $953cdf9ae7e8a925$export$3d05a4bb6d58dbc6(glContext, onProgress) {\n let loadTotal = 0;\n const advanceProgress = (x)=>{\n loadTotal++;\n onProgress(loadTotal / $953cdf9ae7e8a925$export$83691f04acd84db4, `Loaded asset ${loadTotal}/${$953cdf9ae7e8a925$export$83691f04acd84db4}`);\n return x;\n };\n let state = {};\n const promises = $953cdf9ae7e8a925$var$assets.map((loader)=>loader(state, glContext).then(advanceProgress));\n await Promise.all(promises);\n return state;\n}\n\n\nfunction $4d5479e188493b90$export$83674196993caf59(gl, vertexShaderSource, fragmentShaderSource, name) {\n const vertexShader = gl.createShader(gl.VERTEX_SHADER);\n const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n if (!vertexShader || !fragmentShader) throw new Error(\"Failed to create shaders\");\n gl.shaderSource(vertexShader, vertexShaderSource);\n gl.shaderSource(fragmentShader, fragmentShaderSource);\n gl.compileShader(vertexShader);\n gl.compileShader(fragmentShader);\n /*if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n console.groupCollapsed(\"Vertex shader source:\");\n console.log(vertexShaderSource);\n console.groupEnd();\n\n throw new Error(\n `Failed to compile vertex shader for ${name}: ${gl.getShaderInfoLog(\n vertexShader,\n )}`,\n );\n }\n\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n console.groupCollapsed(\"Fragment shader source:\");\n console.log(fragmentShaderSource);\n console.groupEnd();\n\n throw new Error(\n `Failed to compile fragment shader for ${name}: ${gl.getShaderInfoLog(\n fragmentShader,\n )}`,\n );\n }*/ const program = gl.createProgram();\n if (!program) throw new Error(`Failed to create program for ${name}`);\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n const log = gl.getProgramInfoLog(program);\n const vertexShaderLog = gl.getShaderInfoLog(vertexShader);\n const fragmentShaderLog = gl.getShaderInfoLog(fragmentShader);\n console.warn({\n log: log,\n vertexShaderLog: vertexShaderLog,\n fragmentShaderLog: fragmentShaderLog\n });\n throw new Error(`Failed to link program for ${name}: ${gl.getProgramInfoLog(program)}`);\n }\n return program;\n}\nfunction $4d5479e188493b90$export$ce4d37cf4027f102(gl) {\n const positionBuffer = gl.createBuffer();\n if (!positionBuffer) throw new Error(\"Failed to create buffer\");\n gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n const positions = [\n -1,\n -1,\n -1,\n 1,\n 1,\n -1,\n 1,\n 1\n ];\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW);\n return positionBuffer;\n}\nfunction $4d5479e188493b90$export$452eee33cf760b85(gl, location, value) {\n gl.uniform3f(location, value[0], value[1], value[2]);\n}\nfunction $4d5479e188493b90$export$7c5b44fc615e1469(gl, location, value) {\n gl.uniform4f(location, value[0], value[1], value[2], value[3]);\n}\nfunction $4d5479e188493b90$export$d421ceceafba9cc0(gl, program, uniforms, allowMissing = false) {\n const result = {};\n for (const uniform of uniforms){\n const location = gl.getUniformLocation(program, uniform);\n if (!location && !allowMissing) console.warn(`Uniform ${uniform} not found in program ${program}`);\n result[`${uniform}Location`] = location;\n }\n return result;\n}\n\n\n\"use strict\";\n\n\nclass $78f6e02f1afa4252$export$146b5478cb626851 {\n constructor(gl, program, resolutionLocation, textureLocation, transformLocation, nowLocation, opacityLocation, wavinessLocation, distortionLocation, fontTypeLocation, textColorLocation){\n this.gl = gl;\n this.program = program;\n this.resolutionLocation = resolutionLocation;\n this.textureLocation = textureLocation;\n this.transformLocation = transformLocation;\n this.nowLocation = nowLocation;\n this.opacityLocation = opacityLocation;\n this.wavinessLocation = wavinessLocation;\n this.distortionLocation = distortionLocation;\n this.fontTypeLocation = fontTypeLocation;\n this.textColorLocation = textColorLocation;\n }\n static create(gl) {\n const textSdfProgram = (0, $4d5479e188493b90$export$83674196993caf59)(gl, \"#version 300 es\\nprecision mediump float;\\n\\nuniform mat4 transform; \\nuniform vec2 resolution;\\nuniform float now;\\nuniform float waviness;\\n\\nlayout (location=0) in vec4 v_position;\\nlayout (location=1) in uint v_index;\\nout vec2 coord;\\n\\nvoid main() {\\n coord = v_position.zw;\\n gl_Position = transform * vec4(v_position.xy, 0, 1.0) + vec4(0.0, sin(now + float(v_index) * 0.2) * 0.08, 0.0, 0.0) * waviness;\\n}\\n\", \"#version 300 es\\nprecision mediump float;\\n\\nuniform uint fontType;\\nuniform sampler2D font_texture;\\nuniform float now;\\nuniform float opacity;\\nuniform float distortion;\\nuniform vec3 textColor;\\n\\nstruct FontParams {\\n float sdfRadius;\\n float borderWidth;\\n float borderSoftness;\\n};\\n\\nconst uint FONT_MACARONI = 0u;\\nconst uint FONT_NOVARESE = 1u;\\nconst uint FONT_NOVARESE_SMALL = 2u;\\n\\nin vec2 coord;\\nout vec4 fragColor;\\n\\nconst vec3 MACARONI_BRIGHT = vec3(1.0, 0.92, 0.63);\\nconst vec3 MACARONI_YELLOW = vec3(0.9, 0.79, 0.39) * 0.8;\\nconst vec3 MACARONI_DARK = vec3(66.0, 58.0, 29.0) / 255.0;\\n\\nconst float DARK_YELLOW_THRESHOLD = 0.95;\\nconst float BRIGHT_YELLOW_THRESHOLD = 0.98;\\n\\nFontParams getFontParams() {\\n switch (fontType) {\\n case FONT_MACARONI:\\n return FontParams(0.45, 0.5, 0.5);\\n case FONT_NOVARESE:\\n return FontParams(0.5, 0.1, 0.5);\\n case FONT_NOVARESE_SMALL:\\n return FontParams(0.5, 0.1, 0.5);\\n }\\n}\\n\\nvoid main() {\\n FontParams font = getFontParams();\\n\\n float x = texture(font_texture, coord).r;\\n float scale = 1.0 / fwidth(x);\\n float signedDistance = (x - font.sdfRadius) * scale;\\n\\n // Add a little bit of distortion\\n signedDistance += sin(coord.x * 100.0 + now * 5.0) * distortion;\\n\\n // This creates outlines\\n float colorMultiplier = clamp(signedDistance + font.borderWidth, 0.0, 1.0);\\n float alpha = clamp(signedDistance + font.borderSoftness + scale * 0.1, 0.0, 1.0);\\n \\n vec3 color;\\n\\n if (fontType == FONT_MACARONI) {\\n color = colorMultiplier < DARK_YELLOW_THRESHOLD ?\\n mix(MACARONI_DARK, MACARONI_YELLOW, colorMultiplier / DARK_YELLOW_THRESHOLD) :\\n mix(MACARONI_YELLOW, MACARONI_BRIGHT, (colorMultiplier - DARK_YELLOW_THRESHOLD) / (BRIGHT_YELLOW_THRESHOLD - DARK_YELLOW_THRESHOLD));\\n } else {\\n color = textColor;\\n }\\n\\n fragColor = vec4(color, 1) * alpha * opacity;\\n gl_FragDepth = 0.3;\\n}\\n\", \"Text SDF\");\n const textureLocation = gl.getUniformLocation(textSdfProgram, \"texture\");\n const textResolutionLocation = gl.getUniformLocation(textSdfProgram, \"resolution\");\n const textTransformLocation = gl.getUniformLocation(textSdfProgram, \"transform\");\n const textNowLocation = gl.getUniformLocation(textSdfProgram, \"now\");\n const opacityLocation = gl.getUniformLocation(textSdfProgram, \"opacity\");\n const wavinessLocation = gl.getUniformLocation(textSdfProgram, \"waviness\");\n const distortionLocation = gl.getUniformLocation(textSdfProgram, \"distortion\");\n const fontTypeLocation = gl.getUniformLocation(textSdfProgram, \"fontType\");\n const textColorLocation = gl.getUniformLocation(textSdfProgram, \"textColor\");\n return new $78f6e02f1afa4252$export$146b5478cb626851(gl, textSdfProgram, textResolutionLocation, textureLocation, textTransformLocation, textNowLocation, opacityLocation, wavinessLocation, distortionLocation, fontTypeLocation, textColorLocation);\n }\n use({ now: now, resolution: resolution, transform: transform, opacity: opacity, waviness: waviness = 0, distortion: distortion = 0, font: font, color: color = [\n 1,\n 1,\n 1\n ] }) {\n this.gl.useProgram(this.program);\n this.gl.activeTexture(this.gl.TEXTURE0);\n this.gl.uniform1i(this.textureLocation, 0);\n this.gl.uniform2fv(this.resolutionLocation, resolution);\n this.gl.uniformMatrix4fv(this.transformLocation, false, transform);\n this.gl.uniform1f(this.nowLocation, now);\n this.gl.uniform1f(this.opacityLocation, opacity);\n this.gl.uniform1f(this.wavinessLocation, waviness);\n this.gl.uniform1f(this.distortionLocation, distortion);\n this.gl.uniform1ui(this.fontTypeLocation, font.id);\n this.gl.uniform3fv(this.textColorLocation, color);\n }\n destroy() {\n this.gl.deleteProgram(this.program);\n }\n}\n\n\nvar $4ce98914b6676340$exports = {};\n\n$parcel$export($4ce98914b6676340$exports, \"create\", () => $4ce98914b6676340$export$185802fd694ee1f5);\n$parcel$export($4ce98914b6676340$exports, \"clone\", () => $4ce98914b6676340$export$9cd59f9826255e47);\n$parcel$export($4ce98914b6676340$exports, \"fromValues\", () => $4ce98914b6676340$export$a82be99ed2a44a7d);\n$parcel$export($4ce98914b6676340$exports, \"copy\", () => $4ce98914b6676340$export$784d13d8ee351f07);\n$parcel$export($4ce98914b6676340$exports, \"set\", () => $4ce98914b6676340$export$adaa4cf7ef1b65be);\n$parcel$export($4ce98914b6676340$exports, \"add\", () => $4ce98914b6676340$export$e16d8520af44a096);\n$parcel$export($4ce98914b6676340$exports, \"subtract\", () => $4ce98914b6676340$export$4e2d2ead65e5f7e3);\n$parcel$export($4ce98914b6676340$exports, \"multiply\", () => $4ce98914b6676340$export$2060d2db72cce88f);\n$parcel$export($4ce98914b6676340$exports, \"divide\", () => $4ce98914b6676340$export$cd007d971a5a2143);\n$parcel$export($4ce98914b6676340$exports, \"ceil\", () => $4ce98914b6676340$export$803ce6b71a0a94b2);\n$parcel$export($4ce98914b6676340$exports, \"floor\", () => $4ce98914b6676340$export$a3fe094919f356fd);\n$parcel$export($4ce98914b6676340$exports, \"min\", () => $4ce98914b6676340$export$96ec731ed4dcb222);\n$parcel$export($4ce98914b6676340$exports, \"max\", () => $4ce98914b6676340$export$8960430cfd85939f);\n$parcel$export($4ce98914b6676340$exports, \"round\", () => $4ce98914b6676340$export$2077e0241d6afd3c);\n$parcel$export($4ce98914b6676340$exports, \"scale\", () => $4ce98914b6676340$export$dcdf75081b88279d);\n$parcel$export($4ce98914b6676340$exports, \"scaleAndAdd\", () => $4ce98914b6676340$export$19cedf1da84ba854);\n$parcel$export($4ce98914b6676340$exports, \"distance\", () => $4ce98914b6676340$export$9f17032d917177de);\n$parcel$export($4ce98914b6676340$exports, \"squaredDistance\", () => $4ce98914b6676340$export$88e6ebb4fe54f538);\n$parcel$export($4ce98914b6676340$exports, \"length\", () => $4ce98914b6676340$export$f24224f1c91d8156);\n$parcel$export($4ce98914b6676340$exports, \"squaredLength\", () => $4ce98914b6676340$export$ab44e1323ffc8376);\n$parcel$export($4ce98914b6676340$exports, \"negate\", () => $4ce98914b6676340$export$aef51622e549b8b0);\n$parcel$export($4ce98914b6676340$exports, \"inverse\", () => $4ce98914b6676340$export$70ae2c07e401031b);\n$parcel$export($4ce98914b6676340$exports, \"normalize\", () => $4ce98914b6676340$export$a3295358bff77e);\n$parcel$export($4ce98914b6676340$exports, \"dot\", () => $4ce98914b6676340$export$94132a0e348806d4);\n$parcel$export($4ce98914b6676340$exports, \"cross\", () => $4ce98914b6676340$export$bb646b20bb93d339);\n$parcel$export($4ce98914b6676340$exports, \"lerp\", () => $4ce98914b6676340$export$3a89f8d6f6bf6c9f);\n$parcel$export($4ce98914b6676340$exports, \"random\", () => $4ce98914b6676340$export$4385e60b38654f68);\n$parcel$export($4ce98914b6676340$exports, \"transformMat2\", () => $4ce98914b6676340$export$b732428d73874bfc);\n$parcel$export($4ce98914b6676340$exports, \"transformMat2d\", () => $4ce98914b6676340$export$3e55bc4b3707dfd3);\n$parcel$export($4ce98914b6676340$exports, \"transformMat3\", () => $4ce98914b6676340$export$f0bfa0a0024626ee);\n$parcel$export($4ce98914b6676340$exports, \"transformMat4\", () => $4ce98914b6676340$export$5ffbd13800309d59);\n$parcel$export($4ce98914b6676340$exports, \"rotate\", () => $4ce98914b6676340$export$bb628a54ab399bc9);\n$parcel$export($4ce98914b6676340$exports, \"angle\", () => $4ce98914b6676340$export$944b09d2ad10b378);\n$parcel$export($4ce98914b6676340$exports, \"zero\", () => $4ce98914b6676340$export$7f9972325ebfd559);\n$parcel$export($4ce98914b6676340$exports, \"str\", () => $4ce98914b6676340$export$42d51816ce590c93);\n$parcel$export($4ce98914b6676340$exports, \"exactEquals\", () => $4ce98914b6676340$export$f2599a5cf1109d8);\n$parcel$export($4ce98914b6676340$exports, \"equals\", () => $4ce98914b6676340$export$e9bab7fafb253603);\n$parcel$export($4ce98914b6676340$exports, \"len\", () => $4ce98914b6676340$export$fc1400facf92c78);\n$parcel$export($4ce98914b6676340$exports, \"sub\", () => $4ce98914b6676340$export$f93b5905241a7cca);\n$parcel$export($4ce98914b6676340$exports, \"mul\", () => $4ce98914b6676340$export$6e3a27864ab166fe);\n$parcel$export($4ce98914b6676340$exports, \"div\", () => $4ce98914b6676340$export$159d9494db57879b);\n$parcel$export($4ce98914b6676340$exports, \"dist\", () => $4ce98914b6676340$export$6c4a311cc157c764);\n$parcel$export($4ce98914b6676340$exports, \"sqrDist\", () => $4ce98914b6676340$export$2422cd6c492a8b3a);\n$parcel$export($4ce98914b6676340$exports, \"sqrLen\", () => $4ce98914b6676340$export$99d8dd3f32a3435);\n$parcel$export($4ce98914b6676340$exports, \"forEach\", () => $4ce98914b6676340$export$4b80e395e36b5a56);\n/**\n * Common utilities\n * @module glMatrix\n */ // Configuration Constants\nvar $78ae820aa9ececfa$export$fd293b15f47e270 = 0.000001;\nvar $78ae820aa9ececfa$export$b67359430d3b1b2 = typeof Float32Array !== \"undefined\" ? Float32Array : Array;\nvar $78ae820aa9ececfa$export$5ada478c8a628231 = Math.random;\nfunction $78ae820aa9ececfa$export$cb2c0eb57f5e532c(type) {\n $78ae820aa9ececfa$export$b67359430d3b1b2 = type;\n}\nvar $78ae820aa9ececfa$var$degree = Math.PI / 180;\nfunction $78ae820aa9ececfa$export$408b8ee5959eefd5(a) {\n return a * $78ae820aa9ececfa$var$degree;\n}\nfunction $78ae820aa9ececfa$export$e9bab7fafb253603(a, b) {\n return Math.abs(a - b) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function() {\n var y = 0, i = arguments.length;\n while(i--)y += arguments[i] * arguments[i];\n return Math.sqrt(y);\n};\n\n\nfunction $4ce98914b6676340$export$185802fd694ee1f5() {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(2);\n if ($78ae820aa9ececfa$export$b67359430d3b1b2 != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n return out;\n}\nfunction $4ce98914b6676340$export$9cd59f9826255e47(a) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\nfunction $4ce98914b6676340$export$a82be99ed2a44a7d(x, y) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\nfunction $4ce98914b6676340$export$784d13d8ee351f07(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\nfunction $4ce98914b6676340$export$adaa4cf7ef1b65be(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\nfunction $4ce98914b6676340$export$e16d8520af44a096(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\nfunction $4ce98914b6676340$export$4e2d2ead65e5f7e3(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\nfunction $4ce98914b6676340$export$2060d2db72cce88f(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\nfunction $4ce98914b6676340$export$cd007d971a5a2143(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\nfunction $4ce98914b6676340$export$803ce6b71a0a94b2(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\nfunction $4ce98914b6676340$export$a3fe094919f356fd(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\nfunction $4ce98914b6676340$export$96ec731ed4dcb222(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\nfunction $4ce98914b6676340$export$8960430cfd85939f(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\nfunction $4ce98914b6676340$export$2077e0241d6afd3c(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\nfunction $4ce98914b6676340$export$dcdf75081b88279d(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\nfunction $4ce98914b6676340$export$19cedf1da84ba854(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\nfunction $4ce98914b6676340$export$9f17032d917177de(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1];\n return Math.hypot(x, y);\n}\nfunction $4ce98914b6676340$export$88e6ebb4fe54f538(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1];\n return x * x + y * y;\n}\nfunction $4ce98914b6676340$export$f24224f1c91d8156(a) {\n var x = a[0], y = a[1];\n return Math.hypot(x, y);\n}\nfunction $4ce98914b6676340$export$ab44e1323ffc8376(a) {\n var x = a[0], y = a[1];\n return x * x + y * y;\n}\nfunction $4ce98914b6676340$export$aef51622e549b8b0(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\nfunction $4ce98914b6676340$export$70ae2c07e401031b(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\nfunction $4ce98914b6676340$export$a3295358bff77e(out, a) {\n var x = a[0], y = a[1];\n var len = x * x + y * y;\n if (len > 0) //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\nfunction $4ce98914b6676340$export$94132a0e348806d4(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\nfunction $4ce98914b6676340$export$bb646b20bb93d339(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\nfunction $4ce98914b6676340$export$3a89f8d6f6bf6c9f(out, a, b, t) {\n var ax = a[0], ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\nfunction $4ce98914b6676340$export$4385e60b38654f68(out, scale) {\n scale = scale || 1.0;\n var r = $78ae820aa9ececfa$export$5ada478c8a628231() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\nfunction $4ce98914b6676340$export$b732428d73874bfc(out, a, m) {\n var x = a[0], y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\nfunction $4ce98914b6676340$export$3e55bc4b3707dfd3(out, a, m) {\n var x = a[0], y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\nfunction $4ce98914b6676340$export$f0bfa0a0024626ee(out, a, m) {\n var x = a[0], y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\nfunction $4ce98914b6676340$export$5ffbd13800309d59(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\nfunction $4ce98914b6676340$export$bb628a54ab399bc9(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0], p1 = a[1] - b[1], sinC = Math.sin(rad), cosC = Math.cos(rad); //perform rotation and translate to correct position\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\nfunction $4ce98914b6676340$export$944b09d2ad10b378(a, b) {\n var x1 = a[0], y1 = a[1], x2 = b[0], y2 = b[1], // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2), // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\nfunction $4ce98914b6676340$export$7f9972325ebfd559(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\nfunction $4ce98914b6676340$export$42d51816ce590c93(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\nfunction $4ce98914b6676340$export$f2599a5cf1109d8(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\nfunction $4ce98914b6676340$export$e9bab7fafb253603(a, b) {\n var a0 = a[0], a1 = a[1];\n var b0 = b[0], b1 = b[1];\n return Math.abs(a0 - b0) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\nvar $4ce98914b6676340$export$fc1400facf92c78 = $4ce98914b6676340$export$f24224f1c91d8156;\nvar $4ce98914b6676340$export$f93b5905241a7cca = $4ce98914b6676340$export$4e2d2ead65e5f7e3;\nvar $4ce98914b6676340$export$6e3a27864ab166fe = $4ce98914b6676340$export$2060d2db72cce88f;\nvar $4ce98914b6676340$export$159d9494db57879b = $4ce98914b6676340$export$cd007d971a5a2143;\nvar $4ce98914b6676340$export$6c4a311cc157c764 = $4ce98914b6676340$export$9f17032d917177de;\nvar $4ce98914b6676340$export$2422cd6c492a8b3a = $4ce98914b6676340$export$88e6ebb4fe54f538;\nvar $4ce98914b6676340$export$99d8dd3f32a3435 = $4ce98914b6676340$export$ab44e1323ffc8376;\nvar $4ce98914b6676340$export$4b80e395e36b5a56 = function() {\n var vec = $4ce98914b6676340$export$185802fd694ee1f5();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) stride = 2;\n if (!offset) offset = 0;\n if (count) l = Math.min(count * stride + offset, a.length);\n else l = a.length;\n for(i = offset; i < l; i += stride){\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n return a;\n };\n}();\n\nvar $ab7f6dc0910e1ef7$exports = {};\n\n$parcel$export($ab7f6dc0910e1ef7$exports, \"create\", () => $ab7f6dc0910e1ef7$export$185802fd694ee1f5);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"clone\", () => $ab7f6dc0910e1ef7$export$9cd59f9826255e47);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"length\", () => $ab7f6dc0910e1ef7$export$f24224f1c91d8156);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"fromValues\", () => $ab7f6dc0910e1ef7$export$a82be99ed2a44a7d);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"copy\", () => $ab7f6dc0910e1ef7$export$784d13d8ee351f07);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"set\", () => $ab7f6dc0910e1ef7$export$adaa4cf7ef1b65be);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"add\", () => $ab7f6dc0910e1ef7$export$e16d8520af44a096);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"subtract\", () => $ab7f6dc0910e1ef7$export$4e2d2ead65e5f7e3);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"multiply\", () => $ab7f6dc0910e1ef7$export$2060d2db72cce88f);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"divide\", () => $ab7f6dc0910e1ef7$export$cd007d971a5a2143);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"ceil\", () => $ab7f6dc0910e1ef7$export$803ce6b71a0a94b2);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"floor\", () => $ab7f6dc0910e1ef7$export$a3fe094919f356fd);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"min\", () => $ab7f6dc0910e1ef7$export$96ec731ed4dcb222);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"max\", () => $ab7f6dc0910e1ef7$export$8960430cfd85939f);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"round\", () => $ab7f6dc0910e1ef7$export$2077e0241d6afd3c);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"scale\", () => $ab7f6dc0910e1ef7$export$dcdf75081b88279d);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"scaleAndAdd\", () => $ab7f6dc0910e1ef7$export$19cedf1da84ba854);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"distance\", () => $ab7f6dc0910e1ef7$export$9f17032d917177de);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"squaredDistance\", () => $ab7f6dc0910e1ef7$export$88e6ebb4fe54f538);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"squaredLength\", () => $ab7f6dc0910e1ef7$export$ab44e1323ffc8376);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"negate\", () => $ab7f6dc0910e1ef7$export$aef51622e549b8b0);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"inverse\", () => $ab7f6dc0910e1ef7$export$70ae2c07e401031b);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"normalize\", () => $ab7f6dc0910e1ef7$export$a3295358bff77e);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"dot\", () => $ab7f6dc0910e1ef7$export$94132a0e348806d4);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"cross\", () => $ab7f6dc0910e1ef7$export$bb646b20bb93d339);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"lerp\", () => $ab7f6dc0910e1ef7$export$3a89f8d6f6bf6c9f);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"hermite\", () => $ab7f6dc0910e1ef7$export$ae8865616f30561c);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"bezier\", () => $ab7f6dc0910e1ef7$export$b9c5f84610baddaf);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"random\", () => $ab7f6dc0910e1ef7$export$4385e60b38654f68);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"transformMat4\", () => $ab7f6dc0910e1ef7$export$5ffbd13800309d59);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"transformMat3\", () => $ab7f6dc0910e1ef7$export$f0bfa0a0024626ee);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"transformQuat\", () => $ab7f6dc0910e1ef7$export$c32adef9e939ce85);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"rotateX\", () => $ab7f6dc0910e1ef7$export$a59c8716592e09af);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"rotateY\", () => $ab7f6dc0910e1ef7$export$cf71e4d4ca4d1cfd);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"rotateZ\", () => $ab7f6dc0910e1ef7$export$ea6eae3365de5b9c);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"angle\", () => $ab7f6dc0910e1ef7$export$944b09d2ad10b378);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"zero\", () => $ab7f6dc0910e1ef7$export$7f9972325ebfd559);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"str\", () => $ab7f6dc0910e1ef7$export$42d51816ce590c93);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"exactEquals\", () => $ab7f6dc0910e1ef7$export$f2599a5cf1109d8);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"equals\", () => $ab7f6dc0910e1ef7$export$e9bab7fafb253603);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"sub\", () => $ab7f6dc0910e1ef7$export$f93b5905241a7cca);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"mul\", () => $ab7f6dc0910e1ef7$export$6e3a27864ab166fe);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"div\", () => $ab7f6dc0910e1ef7$export$159d9494db57879b);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"dist\", () => $ab7f6dc0910e1ef7$export$6c4a311cc157c764);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"sqrDist\", () => $ab7f6dc0910e1ef7$export$2422cd6c492a8b3a);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"len\", () => $ab7f6dc0910e1ef7$export$fc1400facf92c78);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"sqrLen\", () => $ab7f6dc0910e1ef7$export$99d8dd3f32a3435);\n$parcel$export($ab7f6dc0910e1ef7$exports, \"forEach\", () => $ab7f6dc0910e1ef7$export$4b80e395e36b5a56);\n\nfunction $ab7f6dc0910e1ef7$export$185802fd694ee1f5() {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(3);\n if ($78ae820aa9ececfa$export$b67359430d3b1b2 != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$9cd59f9826255e47(a) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$f24224f1c91d8156(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\nfunction $ab7f6dc0910e1ef7$export$a82be99ed2a44a7d(x, y, z) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$784d13d8ee351f07(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$adaa4cf7ef1b65be(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$e16d8520af44a096(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$4e2d2ead65e5f7e3(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$2060d2db72cce88f(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$cd007d971a5a2143(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$803ce6b71a0a94b2(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$a3fe094919f356fd(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$96ec731ed4dcb222(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$8960430cfd85939f(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$2077e0241d6afd3c(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$dcdf75081b88279d(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$19cedf1da84ba854(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$9f17032d917177de(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\nfunction $ab7f6dc0910e1ef7$export$88e6ebb4fe54f538(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\nfunction $ab7f6dc0910e1ef7$export$ab44e1323ffc8376(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\nfunction $ab7f6dc0910e1ef7$export$aef51622e549b8b0(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$70ae2c07e401031b(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$a3295358bff77e(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n if (len > 0) //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$94132a0e348806d4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\nfunction $ab7f6dc0910e1ef7$export$bb646b20bb93d339(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2];\n var bx = b[0], by = b[1], bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$3a89f8d6f6bf6c9f(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$ae8865616f30561c(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$b9c5f84610baddaf(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$4385e60b38654f68(out, scale) {\n scale = scale || 1.0;\n var r = $78ae820aa9ececfa$export$5ada478c8a628231() * 2.0 * Math.PI;\n var z = $78ae820aa9ececfa$export$5ada478c8a628231() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$5ffbd13800309d59(out, a, m) {\n var x = a[0], y = a[1], z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$f0bfa0a0024626ee(out, a, m) {\n var x = a[0], y = a[1], z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$c32adef9e939ce85(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0], qy = q[1], qz = q[2], qw = q[3];\n var x = a[0], y = a[1], z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n var uvx = qy * z - qz * y, uvy = qz * x - qx * z, uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n var uuvx = qy * uvz - qz * uvy, uuvy = qz * uvx - qx * uvz, uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$a59c8716592e09af(out, a, b, rad) {\n var p = [], r = []; //Translate point to the origin\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$cf71e4d4ca4d1cfd(out, a, b, rad) {\n var p = [], r = []; //Translate point to the origin\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$ea6eae3365de5b9c(out, a, b, rad) {\n var p = [], r = []; //Translate point to the origin\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$944b09d2ad10b378(a, b) {\n var ax = a[0], ay = a[1], az = a[2], bx = b[0], by = b[1], bz = b[2], mag1 = Math.sqrt(ax * ax + ay * ay + az * az), mag2 = Math.sqrt(bx * bx + by * by + bz * bz), mag = mag1 * mag2, cosine = mag && $ab7f6dc0910e1ef7$export$94132a0e348806d4(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\nfunction $ab7f6dc0910e1ef7$export$7f9972325ebfd559(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\nfunction $ab7f6dc0910e1ef7$export$42d51816ce590c93(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\nfunction $ab7f6dc0910e1ef7$export$f2599a5cf1109d8(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\nfunction $ab7f6dc0910e1ef7$export$e9bab7fafb253603(a, b) {\n var a0 = a[0], a1 = a[1], a2 = a[2];\n var b0 = b[0], b1 = b[1], b2 = b[2];\n return Math.abs(a0 - b0) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\nvar $ab7f6dc0910e1ef7$export$f93b5905241a7cca = $ab7f6dc0910e1ef7$export$4e2d2ead65e5f7e3;\nvar $ab7f6dc0910e1ef7$export$6e3a27864ab166fe = $ab7f6dc0910e1ef7$export$2060d2db72cce88f;\nvar $ab7f6dc0910e1ef7$export$159d9494db57879b = $ab7f6dc0910e1ef7$export$cd007d971a5a2143;\nvar $ab7f6dc0910e1ef7$export$6c4a311cc157c764 = $ab7f6dc0910e1ef7$export$9f17032d917177de;\nvar $ab7f6dc0910e1ef7$export$2422cd6c492a8b3a = $ab7f6dc0910e1ef7$export$88e6ebb4fe54f538;\nvar $ab7f6dc0910e1ef7$export$fc1400facf92c78 = $ab7f6dc0910e1ef7$export$f24224f1c91d8156;\nvar $ab7f6dc0910e1ef7$export$99d8dd3f32a3435 = $ab7f6dc0910e1ef7$export$ab44e1323ffc8376;\nvar $ab7f6dc0910e1ef7$export$4b80e395e36b5a56 = function() {\n var vec = $ab7f6dc0910e1ef7$export$185802fd694ee1f5();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) stride = 3;\n if (!offset) offset = 0;\n if (count) l = Math.min(count * stride + offset, a.length);\n else l = a.length;\n for(i = offset; i < l; i += stride){\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n };\n}();\n\n\nfunction $73a175dd57760e2d$export$24656b269d8df7d6(t) {\n if (t < 0.5) return 4 * t * t * t;\n else {\n const f = 2 * t - 2;\n return 0.5 * f * f * f + 1;\n }\n}\nfunction $73a175dd57760e2d$export$90385d25e9dc632d(t) {\n return Math.pow(2, 10 * (t - 1));\n}\nfunction $73a175dd57760e2d$export$5da70c9577229d30(t) {\n return t * t * t;\n}\nfunction $73a175dd57760e2d$export$1157fb72e7fbceb5(t) {\n const f = t - 1;\n return f * f * f + 1;\n}\nfunction $73a175dd57760e2d$export$45db2fc2f15997e7(t) {\n return t;\n}\nfunction $73a175dd57760e2d$export$887f6c7954385bcf(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n}\nfunction $73a175dd57760e2d$export$3daa4a78f444687d(x) {\n const c1 = 1.70158;\n const c3 = c1 + 1;\n return 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2);\n}\nfunction $73a175dd57760e2d$export$3a89f8d6f6bf6c9f(a, b, t) {\n return a + (b - a) * t;\n}\nfunction $73a175dd57760e2d$export$6012f4a80e6e44d1(a, b, t, ease) {\n return $73a175dd57760e2d$export$3a89f8d6f6bf6c9f(a, b, ease(t));\n}\n\n\n// https://evanw.github.io/font-texture-generator/\nfunction $2d02d91e00a4b2e1$export$176c1be5a99df233(font, { text: text, align: align }) {\n // Measure the width of the text\n let totalX = 0;\n let totalY = font.size;\n let maxWidth = 0;\n for (const char of text){\n if (char === \"\\n\") {\n totalY += font.size;\n maxWidth = Math.max(maxWidth, totalX);\n totalX = 0;\n continue;\n }\n const character = font.characters[char];\n if (!character) throw new Error(`Character \"${char}\" not found in font \"${font.name}\"`);\n totalX += character.advance;\n }\n maxWidth = Math.max(maxWidth, totalX);\n // Apply alignment\n let x = 0;\n switch(align ?? \"center\"){\n case \"left\":\n break;\n case \"center\":\n x = -maxWidth / 2;\n break;\n case \"right\":\n x = -maxWidth;\n break;\n }\n const initialX = x;\n let y = 0;\n const vertices = [];\n const letterIndices = [];\n let i = 0;\n for (const char of text){\n if (char === \"\\n\") {\n x = initialX;\n y += font.size;\n continue;\n }\n i += 1;\n // SAFETY: We know this character exists because we checked above\n const c = font.characters[char];\n let x0 = x - c.originX;\n let y0 = y - c.originY;\n let s0 = c.x / font.width;\n let t0 = c.y / font.height;\n let x1 = x - c.originX + c.width;\n let y1 = y - c.originY;\n let s1 = (c.x + c.width) / font.width;\n let t1 = c.y / font.height;\n let x2 = x - c.originX;\n let y2 = y - c.originY + c.height;\n let s2 = c.x / font.width;\n let t2 = (c.y + c.height) / font.height;\n let x3 = x - c.originX + c.width;\n let y3 = y - c.originY + c.height;\n let s3 = (c.x + c.width) / font.width;\n let t3 = (c.y + c.height) / font.height;\n // swap y positions because i don't know why\n y0 = -y0;\n y1 = -y1;\n y2 = -y2;\n y3 = -y3;\n vertices.push(x0, y0, s0, t0);\n vertices.push(x1, y1, s1, t1);\n vertices.push(x3, y3, s3, t3);\n vertices.push(x0, y0, s0, t0);\n vertices.push(x3, y3, s3, t3);\n vertices.push(x2, y2, s2, t2);\n for(let vI = 0; vI < 6; vI++)letterIndices.push(i);\n x += c.advance;\n }\n return {\n vertices: vertices,\n letterIndices: letterIndices\n };\n}\nfunction $2d02d91e00a4b2e1$export$31a38db804e6fe53(font, { text: text, spaceHeight: spaceHeight, verticalSpacing: verticalSpacing }) {\n let maxWidth = 0;\n let totalY = 0;\n for (const char of text){\n if (char === \"\\n\" || char === \" \") {\n totalY += spaceHeight;\n continue;\n }\n const character = font.characters[char];\n if (!character) throw new Error(`Character \"${char}\" not found in font \"${font.name}\"`);\n maxWidth = Math.max(maxWidth, character.width);\n totalY += character.height + (totalY > 0 ? verticalSpacing : 0);\n }\n // Vertical text is always centered\n let x = -maxWidth / 2;\n let y = -totalY / 2;\n const vertices = [];\n const letterIndices = [];\n let i = 0;\n for (const char of text){\n if (char === \"\\n\" || char === \" \") {\n y += spaceHeight;\n continue;\n }\n i += 1;\n // SAFETY: We know this character exists because we checked above\n const c = font.characters[char];\n // Center the character\n const charX = x + (maxWidth - c.width) / 2;\n let x0 = charX - c.originX;\n let y0 = y - c.originY;\n let s0 = c.x / font.width;\n let t0 = c.y / font.height;\n let x1 = charX - c.originX + c.width;\n let y1 = y - c.originY;\n let s1 = (c.x + c.width) / font.width;\n let t1 = c.y / font.height;\n let x2 = charX - c.originX;\n let y2 = y - c.originY + c.height;\n let s2 = c.x / font.width;\n let t2 = (c.y + c.height) / font.height;\n let x3 = charX - c.originX + c.width;\n let y3 = y - c.originY + c.height;\n let s3 = (c.x + c.width) / font.width;\n let t3 = (c.y + c.height) / font.height;\n // swap y positions because i don't know why\n y0 = -y0;\n y1 = -y1;\n y2 = -y2;\n y3 = -y3;\n vertices.push(x0, y0, s0, t0);\n vertices.push(x1, y1, s1, t1);\n vertices.push(x3, y3, s3, t3);\n vertices.push(x0, y0, s0, t0);\n vertices.push(x3, y3, s3, t3);\n vertices.push(x2, y2, s2, t2);\n for(let vI = 0; vI < 6; vI++)letterIndices.push(i);\n y += c.height + verticalSpacing;\n }\n return {\n vertices: vertices,\n letterIndices: letterIndices\n };\n}\n\n\nfunction $c37ee9b613b5e84c$export$ad946d13ba7b8603({ gl: gl, font: font, spec: spec }) {\n const { vertices: vertices, letterIndices: letterIndices } = spec.type === \"vertical\" ? (0, $2d02d91e00a4b2e1$export$31a38db804e6fe53)(font, spec) : (0, $2d02d91e00a4b2e1$export$176c1be5a99df233)(font, spec);\n const vertexBuffer = gl.createBuffer();\n const indexBuffer = gl.createBuffer();\n if (!vertexBuffer || !indexBuffer) throw new Error(\"Failed to create buffer\");\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);\n gl.bindBuffer(gl.ARRAY_BUFFER, indexBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(letterIndices), gl.STATIC_DRAW);\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n return {\n vertexBuffer: vertexBuffer,\n indexBuffer: indexBuffer,\n vertexCount: vertices.length / 4\n };\n}\n\n\nvar $26675c4f95835ef1$exports = {};\n\n$parcel$export($26675c4f95835ef1$exports, \"create\", () => $26675c4f95835ef1$export$185802fd694ee1f5);\n$parcel$export($26675c4f95835ef1$exports, \"clone\", () => $26675c4f95835ef1$export$9cd59f9826255e47);\n$parcel$export($26675c4f95835ef1$exports, \"copy\", () => $26675c4f95835ef1$export$784d13d8ee351f07);\n$parcel$export($26675c4f95835ef1$exports, \"fromValues\", () => $26675c4f95835ef1$export$a82be99ed2a44a7d);\n$parcel$export($26675c4f95835ef1$exports, \"set\", () => $26675c4f95835ef1$export$adaa4cf7ef1b65be);\n$parcel$export($26675c4f95835ef1$exports, \"identity\", () => $26675c4f95835ef1$export$f0954fd7d5368655);\n$parcel$export($26675c4f95835ef1$exports, \"transpose\", () => $26675c4f95835ef1$export$9cb09a71b7d66923);\n$parcel$export($26675c4f95835ef1$exports, \"invert\", () => $26675c4f95835ef1$export$6897c284b6f9f4dc);\n$parcel$export($26675c4f95835ef1$exports, \"adjoint\", () => $26675c4f95835ef1$export$33f3c024b4ae00a1);\n$parcel$export($26675c4f95835ef1$exports, \"determinant\", () => $26675c4f95835ef1$export$a04698f914c55ed9);\n$parcel$export($26675c4f95835ef1$exports, \"multiply\", () => $26675c4f95835ef1$export$2060d2db72cce88f);\n$parcel$export($26675c4f95835ef1$exports, \"translate\", () => $26675c4f95835ef1$export$d73ee8ef04f5226a);\n$parcel$export($26675c4f95835ef1$exports, \"scale\", () => $26675c4f95835ef1$export$dcdf75081b88279d);\n$parcel$export($26675c4f95835ef1$exports, \"rotate\", () => $26675c4f95835ef1$export$bb628a54ab399bc9);\n$parcel$export($26675c4f95835ef1$exports, \"rotateX\", () => $26675c4f95835ef1$export$a59c8716592e09af);\n$parcel$export($26675c4f95835ef1$exports, \"rotateY\", () => $26675c4f95835ef1$export$cf71e4d4ca4d1cfd);\n$parcel$export($26675c4f95835ef1$exports, \"rotateZ\", () => $26675c4f95835ef1$export$ea6eae3365de5b9c);\n$parcel$export($26675c4f95835ef1$exports, \"fromTranslation\", () => $26675c4f95835ef1$export$bc9e79e74e9fddf6);\n$parcel$export($26675c4f95835ef1$exports, \"fromScaling\", () => $26675c4f95835ef1$export$832ca188ffb1955d);\n$parcel$export($26675c4f95835ef1$exports, \"fromRotation\", () => $26675c4f95835ef1$export$926fc125ff3c666c);\n$parcel$export($26675c4f95835ef1$exports, \"fromXRotation\", () => $26675c4f95835ef1$export$dd47cc2f828c32ef);\n$parcel$export($26675c4f95835ef1$exports, \"fromYRotation\", () => $26675c4f95835ef1$export$7dc997d67d2b7f33);\n$parcel$export($26675c4f95835ef1$exports, \"fromZRotation\", () => $26675c4f95835ef1$export$ad5ddaedc8f405df);\n$parcel$export($26675c4f95835ef1$exports, \"fromRotationTranslation\", () => $26675c4f95835ef1$export$9545ac307f2a256b);\n$parcel$export($26675c4f95835ef1$exports, \"fromQuat2\", () => $26675c4f95835ef1$export$ff497f2be31cc6a);\n$parcel$export($26675c4f95835ef1$exports, \"getTranslation\", () => $26675c4f95835ef1$export$202e99f82f7f0395);\n$parcel$export($26675c4f95835ef1$exports, \"getScaling\", () => $26675c4f95835ef1$export$71dc54d92bd04b57);\n$parcel$export($26675c4f95835ef1$exports, \"getRotation\", () => $26675c4f95835ef1$export$df3937d3b537df0a);\n$parcel$export($26675c4f95835ef1$exports, \"fromRotationTranslationScale\", () => $26675c4f95835ef1$export$ddf9c55c9f2be172);\n$parcel$export($26675c4f95835ef1$exports, \"fromRotationTranslationScaleOrigin\", () => $26675c4f95835ef1$export$1def1f860edc4b1f);\n$parcel$export($26675c4f95835ef1$exports, \"fromQuat\", () => $26675c4f95835ef1$export$2ff2bbe382249af7);\n$parcel$export($26675c4f95835ef1$exports, \"frustum\", () => $26675c4f95835ef1$export$89b5708c387cac6c);\n$parcel$export($26675c4f95835ef1$exports, \"perspectiveNO\", () => $26675c4f95835ef1$export$4cf19729ec9a96b8);\n$parcel$export($26675c4f95835ef1$exports, \"perspective\", () => $26675c4f95835ef1$export$541149539f3a4684);\n$parcel$export($26675c4f95835ef1$exports, \"perspectiveZO\", () => $26675c4f95835ef1$export$294bba99a6af0c0c);\n$parcel$export($26675c4f95835ef1$exports, \"perspectiveFromFieldOfView\", () => $26675c4f95835ef1$export$58ae211c788e338f);\n$parcel$export($26675c4f95835ef1$exports, \"orthoNO\", () => $26675c4f95835ef1$export$c5f65ef3eb668f27);\n$parcel$export($26675c4f95835ef1$exports, \"ortho\", () => $26675c4f95835ef1$export$4f2167e613cfc87b);\n$parcel$export($26675c4f95835ef1$exports, \"orthoZO\", () => $26675c4f95835ef1$export$b1d31ea7b4d854e);\n$parcel$export($26675c4f95835ef1$exports, \"lookAt\", () => $26675c4f95835ef1$export$d924e14fd6d9aa66);\n$parcel$export($26675c4f95835ef1$exports, \"targetTo\", () => $26675c4f95835ef1$export$aa67782f4dc9e52c);\n$parcel$export($26675c4f95835ef1$exports, \"str\", () => $26675c4f95835ef1$export$42d51816ce590c93);\n$parcel$export($26675c4f95835ef1$exports, \"frob\", () => $26675c4f95835ef1$export$326827e8268e9cdb);\n$parcel$export($26675c4f95835ef1$exports, \"add\", () => $26675c4f95835ef1$export$e16d8520af44a096);\n$parcel$export($26675c4f95835ef1$exports, \"subtract\", () => $26675c4f95835ef1$export$4e2d2ead65e5f7e3);\n$parcel$export($26675c4f95835ef1$exports, \"multiplyScalar\", () => $26675c4f95835ef1$export$c697bed75648cdb7);\n$parcel$export($26675c4f95835ef1$exports, \"multiplyScalarAndAdd\", () => $26675c4f95835ef1$export$553579f63bdd7137);\n$parcel$export($26675c4f95835ef1$exports, \"exactEquals\", () => $26675c4f95835ef1$export$f2599a5cf1109d8);\n$parcel$export($26675c4f95835ef1$exports, \"equals\", () => $26675c4f95835ef1$export$e9bab7fafb253603);\n$parcel$export($26675c4f95835ef1$exports, \"mul\", () => $26675c4f95835ef1$export$6e3a27864ab166fe);\n$parcel$export($26675c4f95835ef1$exports, \"sub\", () => $26675c4f95835ef1$export$f93b5905241a7cca);\n\nfunction $26675c4f95835ef1$export$185802fd694ee1f5() {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(16);\n if ($78ae820aa9ececfa$export$b67359430d3b1b2 != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$9cd59f9826255e47(a) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\nfunction $26675c4f95835ef1$export$784d13d8ee351f07(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\nfunction $26675c4f95835ef1$export$a82be99ed2a44a7d(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\nfunction $26675c4f95835ef1$export$adaa4cf7ef1b65be(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\nfunction $26675c4f95835ef1$export$f0954fd7d5368655(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$9cb09a71b7d66923(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1], a02 = a[2], a03 = a[3];\n var a12 = a[6], a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n return out;\n}\nfunction $26675c4f95835ef1$export$6897c284b6f9f4dc(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) return null;\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\nfunction $26675c4f95835ef1$export$33f3c024b4ae00a1(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\nfunction $26675c4f95835ef1$export$a04698f914c55ed9(a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\nfunction $26675c4f95835ef1$export$2060d2db72cce88f(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15]; // Cache only the current line of the second matrix\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\nfunction $26675c4f95835ef1$export$d73ee8ef04f5226a(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n}\nfunction $26675c4f95835ef1$export$dcdf75081b88279d(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\nfunction $26675c4f95835ef1$export$bb628a54ab399bc9(out, a, rad, axis) {\n var x = axis[0], y = axis[1], z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n if (len < $78ae820aa9ececfa$export$fd293b15f47e270) return null;\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n return out;\n}\nfunction $26675c4f95835ef1$export$a59c8716592e09af(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\nfunction $26675c4f95835ef1$export$cf71e4d4ca4d1cfd(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\nfunction $26675c4f95835ef1$export$ea6eae3365de5b9c(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\nfunction $26675c4f95835ef1$export$bc9e79e74e9fddf6(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$832ca188ffb1955d(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$926fc125ff3c666c(out, rad, axis) {\n var x = axis[0], y = axis[1], z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n if (len < $78ae820aa9ececfa$export$fd293b15f47e270) return null;\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$dd47cc2f828c32ef(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$7dc997d67d2b7f33(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$ad5ddaedc8f405df(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$9545ac307f2a256b(out, q, v) {\n // Quaternion math\n var x = q[0], y = q[1], z = q[2], w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$ff497f2be31cc6a(out, a) {\n var translation = new $78ae820aa9ececfa$export$b67359430d3b1b2(3);\n var bx = -a[0], by = -a[1], bz = -a[2], bw = a[3], ax = a[4], ay = a[5], az = a[6], aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n $26675c4f95835ef1$export$9545ac307f2a256b(out, a, translation);\n return out;\n}\nfunction $26675c4f95835ef1$export$202e99f82f7f0395(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\nfunction $26675c4f95835ef1$export$71dc54d92bd04b57(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\nfunction $26675c4f95835ef1$export$df3937d3b537df0a(out, mat) {\n var scaling = new $78ae820aa9ececfa$export$b67359430d3b1b2(3);\n $26675c4f95835ef1$export$71dc54d92bd04b57(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n return out;\n}\nfunction $26675c4f95835ef1$export$ddf9c55c9f2be172(out, q, v, s) {\n // Quaternion math\n var x = q[0], y = q[1], z = q[2], w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$1def1f860edc4b1f(out, q, v, s, o) {\n // Quaternion math\n var x = q[0], y = q[1], z = q[2], w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$2ff2bbe382249af7(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$89b5708c387cac6c(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\nfunction $26675c4f95835ef1$export$4cf19729ec9a96b8(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2), nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n return out;\n}\nvar $26675c4f95835ef1$export$541149539f3a4684 = $26675c4f95835ef1$export$4cf19729ec9a96b8;\nfunction $26675c4f95835ef1$export$294bba99a6af0c0c(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2), nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n return out;\n}\nfunction $26675c4f95835ef1$export$58ae211c788e338f(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\nfunction $26675c4f95835ef1$export$c5f65ef3eb668f27(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\nvar $26675c4f95835ef1$export$4f2167e613cfc87b = $26675c4f95835ef1$export$c5f65ef3eb668f27;\nfunction $26675c4f95835ef1$export$b1d31ea7b4d854e(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$d924e14fd6d9aa66(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n if (Math.abs(eyex - centerx) < $78ae820aa9ececfa$export$fd293b15f47e270 && Math.abs(eyey - centery) < $78ae820aa9ececfa$export$fd293b15f47e270 && Math.abs(eyez - centerz) < $78ae820aa9ececfa$export$fd293b15f47e270) return $26675c4f95835ef1$export$f0954fd7d5368655(out);\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$aa67782f4dc9e52c(out, eye, target, up) {\n var eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2];\n var z0 = eyex - target[0], z1 = eyey - target[1], z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n var x0 = upy * z2 - upz * z1, x1 = upz * z0 - upx * z2, x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\nfunction $26675c4f95835ef1$export$42d51816ce590c93(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\nfunction $26675c4f95835ef1$export$326827e8268e9cdb(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\nfunction $26675c4f95835ef1$export$e16d8520af44a096(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\nfunction $26675c4f95835ef1$export$4e2d2ead65e5f7e3(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\nfunction $26675c4f95835ef1$export$c697bed75648cdb7(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\nfunction $26675c4f95835ef1$export$553579f63bdd7137(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\nfunction $26675c4f95835ef1$export$f2599a5cf1109d8(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\nfunction $26675c4f95835ef1$export$e9bab7fafb253603(a, b) {\n var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\n var a4 = a[4], a5 = a[5], a6 = a[6], a7 = a[7];\n var a8 = a[8], a9 = a[9], a10 = a[10], a11 = a[11];\n var a12 = a[12], a13 = a[13], a14 = a[14], a15 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n var b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7];\n var b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11];\n var b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n return Math.abs(a0 - b0) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\nvar $26675c4f95835ef1$export$6e3a27864ab166fe = $26675c4f95835ef1$export$2060d2db72cce88f;\nvar $26675c4f95835ef1$export$f93b5905241a7cca = $26675c4f95835ef1$export$4e2d2ead65e5f7e3;\n\nvar $e92e4eb8d35aaf31$exports = {};\n\n$parcel$export($e92e4eb8d35aaf31$exports, \"create\", () => $e92e4eb8d35aaf31$export$185802fd694ee1f5);\n$parcel$export($e92e4eb8d35aaf31$exports, \"identity\", () => $e92e4eb8d35aaf31$export$f0954fd7d5368655);\n$parcel$export($e92e4eb8d35aaf31$exports, \"setAxisAngle\", () => $e92e4eb8d35aaf31$export$4286ddefc8f49512);\n$parcel$export($e92e4eb8d35aaf31$exports, \"getAxisAngle\", () => $e92e4eb8d35aaf31$export$3f70be5e7d7dc51);\n$parcel$export($e92e4eb8d35aaf31$exports, \"getAngle\", () => $e92e4eb8d35aaf31$export$b363da9ded343252);\n$parcel$export($e92e4eb8d35aaf31$exports, \"dot\", () => $e92e4eb8d35aaf31$export$94132a0e348806d4);\n$parcel$export($e92e4eb8d35aaf31$exports, \"multiply\", () => $e92e4eb8d35aaf31$export$2060d2db72cce88f);\n$parcel$export($e92e4eb8d35aaf31$exports, \"rotateX\", () => $e92e4eb8d35aaf31$export$a59c8716592e09af);\n$parcel$export($e92e4eb8d35aaf31$exports, \"rotateY\", () => $e92e4eb8d35aaf31$export$cf71e4d4ca4d1cfd);\n$parcel$export($e92e4eb8d35aaf31$exports, \"rotateZ\", () => $e92e4eb8d35aaf31$export$ea6eae3365de5b9c);\n$parcel$export($e92e4eb8d35aaf31$exports, \"calculateW\", () => $e92e4eb8d35aaf31$export$fb72b72e8d764d4e);\n$parcel$export($e92e4eb8d35aaf31$exports, \"exp\", () => $e92e4eb8d35aaf31$export$b310ec824aaee37f);\n$parcel$export($e92e4eb8d35aaf31$exports, \"ln\", () => $e92e4eb8d35aaf31$export$876cb1b29620556f);\n$parcel$export($e92e4eb8d35aaf31$exports, \"pow\", () => $e92e4eb8d35aaf31$export$9c297f60e22e3389);\n$parcel$export($e92e4eb8d35aaf31$exports, \"scale\", () => $e92e4eb8d35aaf31$export$dcdf75081b88279d);\n$parcel$export($e92e4eb8d35aaf31$exports, \"slerp\", () => $e92e4eb8d35aaf31$export$1544d9bc2995de08);\n$parcel$export($e92e4eb8d35aaf31$exports, \"random\", () => $e92e4eb8d35aaf31$export$4385e60b38654f68);\n$parcel$export($e92e4eb8d35aaf31$exports, \"invert\", () => $e92e4eb8d35aaf31$export$6897c284b6f9f4dc);\n$parcel$export($e92e4eb8d35aaf31$exports, \"conjugate\", () => $e92e4eb8d35aaf31$export$7679f47e72c62560);\n$parcel$export($e92e4eb8d35aaf31$exports, \"fromMat3\", () => $e92e4eb8d35aaf31$export$272a1eb8e5a4b55b);\n$parcel$export($e92e4eb8d35aaf31$exports, \"fromEuler\", () => $e92e4eb8d35aaf31$export$7a404a587ea85af);\n$parcel$export($e92e4eb8d35aaf31$exports, \"str\", () => $e92e4eb8d35aaf31$export$42d51816ce590c93);\n$parcel$export($e92e4eb8d35aaf31$exports, \"clone\", () => $e92e4eb8d35aaf31$export$9cd59f9826255e47);\n$parcel$export($e92e4eb8d35aaf31$exports, \"fromValues\", () => $e92e4eb8d35aaf31$export$a82be99ed2a44a7d);\n$parcel$export($e92e4eb8d35aaf31$exports, \"copy\", () => $e92e4eb8d35aaf31$export$784d13d8ee351f07);\n$parcel$export($e92e4eb8d35aaf31$exports, \"set\", () => $e92e4eb8d35aaf31$export$adaa4cf7ef1b65be);\n$parcel$export($e92e4eb8d35aaf31$exports, \"add\", () => $e92e4eb8d35aaf31$export$e16d8520af44a096);\n$parcel$export($e92e4eb8d35aaf31$exports, \"mul\", () => $e92e4eb8d35aaf31$export$6e3a27864ab166fe);\n$parcel$export($e92e4eb8d35aaf31$exports, \"lerp\", () => $e92e4eb8d35aaf31$export$3a89f8d6f6bf6c9f);\n$parcel$export($e92e4eb8d35aaf31$exports, \"length\", () => $e92e4eb8d35aaf31$export$f24224f1c91d8156);\n$parcel$export($e92e4eb8d35aaf31$exports, \"len\", () => $e92e4eb8d35aaf31$export$fc1400facf92c78);\n$parcel$export($e92e4eb8d35aaf31$exports, \"squaredLength\", () => $e92e4eb8d35aaf31$export$ab44e1323ffc8376);\n$parcel$export($e92e4eb8d35aaf31$exports, \"sqrLen\", () => $e92e4eb8d35aaf31$export$99d8dd3f32a3435);\n$parcel$export($e92e4eb8d35aaf31$exports, \"normalize\", () => $e92e4eb8d35aaf31$export$a3295358bff77e);\n$parcel$export($e92e4eb8d35aaf31$exports, \"exactEquals\", () => $e92e4eb8d35aaf31$export$f2599a5cf1109d8);\n$parcel$export($e92e4eb8d35aaf31$exports, \"equals\", () => $e92e4eb8d35aaf31$export$e9bab7fafb253603);\n$parcel$export($e92e4eb8d35aaf31$exports, \"rotationTo\", () => $e92e4eb8d35aaf31$export$72d66f5842c00904);\n$parcel$export($e92e4eb8d35aaf31$exports, \"sqlerp\", () => $e92e4eb8d35aaf31$export$699b0866ca50f6cb);\n$parcel$export($e92e4eb8d35aaf31$exports, \"setAxes\", () => $e92e4eb8d35aaf31$export$937ca0a544b2d712);\n\n\nfunction $879d8210211d0bfa$export$185802fd694ee1f5() {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(9);\n if ($78ae820aa9ececfa$export$b67359430d3b1b2 != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$b4ad467060d346fe(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\nfunction $879d8210211d0bfa$export$9cd59f9826255e47(a) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\nfunction $879d8210211d0bfa$export$784d13d8ee351f07(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\nfunction $879d8210211d0bfa$export$a82be99ed2a44a7d(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\nfunction $879d8210211d0bfa$export$adaa4cf7ef1b65be(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\nfunction $879d8210211d0bfa$export$f0954fd7d5368655(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$9cb09a71b7d66923(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1], a02 = a[2], a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n return out;\n}\nfunction $879d8210211d0bfa$export$6897c284b6f9f4dc(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2];\n var a10 = a[3], a11 = a[4], a12 = a[5];\n var a20 = a[6], a21 = a[7], a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n if (!det) return null;\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\nfunction $879d8210211d0bfa$export$33f3c024b4ae00a1(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2];\n var a10 = a[3], a11 = a[4], a12 = a[5];\n var a20 = a[6], a21 = a[7], a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\nfunction $879d8210211d0bfa$export$a04698f914c55ed9(a) {\n var a00 = a[0], a01 = a[1], a02 = a[2];\n var a10 = a[3], a11 = a[4], a12 = a[5];\n var a20 = a[6], a21 = a[7], a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\nfunction $879d8210211d0bfa$export$2060d2db72cce88f(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2];\n var a10 = a[3], a11 = a[4], a12 = a[5];\n var a20 = a[6], a21 = a[7], a22 = a[8];\n var b00 = b[0], b01 = b[1], b02 = b[2];\n var b10 = b[3], b11 = b[4], b12 = b[5];\n var b20 = b[6], b21 = b[7], b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\nfunction $879d8210211d0bfa$export$d73ee8ef04f5226a(out, a, v) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a10 = a[3], a11 = a[4], a12 = a[5], a20 = a[6], a21 = a[7], a22 = a[8], x = v[0], y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\nfunction $879d8210211d0bfa$export$bb628a54ab399bc9(out, a, rad) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a10 = a[3], a11 = a[4], a12 = a[5], a20 = a[6], a21 = a[7], a22 = a[8], s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\nfunction $879d8210211d0bfa$export$dcdf75081b88279d(out, a, v) {\n var x = v[0], y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\nfunction $879d8210211d0bfa$export$bc9e79e74e9fddf6(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$926fc125ff3c666c(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$832ca188ffb1955d(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$68f5977575fae9bf(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$2ff2bbe382249af7(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\nfunction $879d8210211d0bfa$export$966b25ab6dc1b1f9(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) return null;\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\nfunction $879d8210211d0bfa$export$b74061472fe7c07(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\nfunction $879d8210211d0bfa$export$42d51816ce590c93(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\nfunction $879d8210211d0bfa$export$326827e8268e9cdb(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\nfunction $879d8210211d0bfa$export$e16d8520af44a096(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\nfunction $879d8210211d0bfa$export$4e2d2ead65e5f7e3(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\nfunction $879d8210211d0bfa$export$c697bed75648cdb7(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\nfunction $879d8210211d0bfa$export$553579f63bdd7137(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\nfunction $879d8210211d0bfa$export$f2599a5cf1109d8(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\nfunction $879d8210211d0bfa$export$e9bab7fafb253603(a, b) {\n var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5], a6 = a[6], a7 = a[7], a8 = a[8];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8];\n return Math.abs(a0 - b0) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\nvar $879d8210211d0bfa$export$6e3a27864ab166fe = $879d8210211d0bfa$export$2060d2db72cce88f;\nvar $879d8210211d0bfa$export$f93b5905241a7cca = $879d8210211d0bfa$export$4e2d2ead65e5f7e3;\n\n\n\n\nfunction $e38eb280d3b76273$export$185802fd694ee1f5() {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(4);\n if ($78ae820aa9ececfa$export$b67359430d3b1b2 != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n return out;\n}\nfunction $e38eb280d3b76273$export$9cd59f9826255e47(a) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$a82be99ed2a44a7d(x, y, z, w) {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\nfunction $e38eb280d3b76273$export$784d13d8ee351f07(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$adaa4cf7ef1b65be(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\nfunction $e38eb280d3b76273$export$e16d8520af44a096(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$4e2d2ead65e5f7e3(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$2060d2db72cce88f(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$cd007d971a5a2143(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$803ce6b71a0a94b2(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\nfunction $e38eb280d3b76273$export$a3fe094919f356fd(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\nfunction $e38eb280d3b76273$export$96ec731ed4dcb222(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\nfunction $e38eb280d3b76273$export$8960430cfd85939f(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\nfunction $e38eb280d3b76273$export$2077e0241d6afd3c(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\nfunction $e38eb280d3b76273$export$dcdf75081b88279d(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\nfunction $e38eb280d3b76273$export$19cedf1da84ba854(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\nfunction $e38eb280d3b76273$export$9f17032d917177de(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\nfunction $e38eb280d3b76273$export$88e6ebb4fe54f538(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\nfunction $e38eb280d3b76273$export$f24224f1c91d8156(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\nfunction $e38eb280d3b76273$export$ab44e1323ffc8376(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\nfunction $e38eb280d3b76273$export$aef51622e549b8b0(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$70ae2c07e401031b(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$a3295358bff77e(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n if (len > 0) len = 1 / Math.sqrt(len);\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\nfunction $e38eb280d3b76273$export$94132a0e348806d4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\nfunction $e38eb280d3b76273$export$bb646b20bb93d339(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0], B = v[0] * w[2] - v[2] * w[0], C = v[0] * w[3] - v[3] * w[0], D = v[1] * w[2] - v[2] * w[1], E = v[1] * w[3] - v[3] * w[1], F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\nfunction $e38eb280d3b76273$export$3a89f8d6f6bf6c9f(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\nfunction $e38eb280d3b76273$export$4385e60b38654f68(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n var v1, v2, v3, v4;\n var s1, s2;\n do {\n v1 = $78ae820aa9ececfa$export$5ada478c8a628231() * 2 - 1;\n v2 = $78ae820aa9ececfa$export$5ada478c8a628231() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n }while (s1 >= 1);\n do {\n v3 = $78ae820aa9ececfa$export$5ada478c8a628231() * 2 - 1;\n v4 = $78ae820aa9ececfa$export$5ada478c8a628231() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n }while (s2 >= 1);\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\nfunction $e38eb280d3b76273$export$5ffbd13800309d59(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\nfunction $e38eb280d3b76273$export$c32adef9e939ce85(out, a, q) {\n var x = a[0], y = a[1], z = a[2];\n var qx = q[0], qy = q[1], qz = q[2], qw = q[3]; // calculate quat * vec\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\nfunction $e38eb280d3b76273$export$7f9972325ebfd559(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\nfunction $e38eb280d3b76273$export$42d51816ce590c93(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\nfunction $e38eb280d3b76273$export$f2599a5cf1109d8(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\nfunction $e38eb280d3b76273$export$e9bab7fafb253603(a, b) {\n var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n return Math.abs(a0 - b0) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= $78ae820aa9ececfa$export$fd293b15f47e270 * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\nvar $e38eb280d3b76273$export$f93b5905241a7cca = $e38eb280d3b76273$export$4e2d2ead65e5f7e3;\nvar $e38eb280d3b76273$export$6e3a27864ab166fe = $e38eb280d3b76273$export$2060d2db72cce88f;\nvar $e38eb280d3b76273$export$159d9494db57879b = $e38eb280d3b76273$export$cd007d971a5a2143;\nvar $e38eb280d3b76273$export$6c4a311cc157c764 = $e38eb280d3b76273$export$9f17032d917177de;\nvar $e38eb280d3b76273$export$2422cd6c492a8b3a = $e38eb280d3b76273$export$88e6ebb4fe54f538;\nvar $e38eb280d3b76273$export$fc1400facf92c78 = $e38eb280d3b76273$export$f24224f1c91d8156;\nvar $e38eb280d3b76273$export$99d8dd3f32a3435 = $e38eb280d3b76273$export$ab44e1323ffc8376;\nvar $e38eb280d3b76273$export$4b80e395e36b5a56 = function() {\n var vec = $e38eb280d3b76273$export$185802fd694ee1f5();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) stride = 4;\n if (!offset) offset = 0;\n if (count) l = Math.min(count * stride + offset, a.length);\n else l = a.length;\n for(i = offset; i < l; i += stride){\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n return a;\n };\n}();\n\n\nfunction $e92e4eb8d35aaf31$export$185802fd694ee1f5() {\n var out = new $78ae820aa9ececfa$export$b67359430d3b1b2(4);\n if ($78ae820aa9ececfa$export$b67359430d3b1b2 != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n out[3] = 1;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$f0954fd7d5368655(out) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$4286ddefc8f49512(out, axis, rad) {\n rad = rad * 0.5;\n var s = Math.sin(rad);\n out[0] = s * axis[0];\n out[1] = s * axis[1];\n out[2] = s * axis[2];\n out[3] = Math.cos(rad);\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$3f70be5e7d7dc51(out_axis, q) {\n var rad = Math.acos(q[3]) * 2.0;\n var s = Math.sin(rad / 2.0);\n if (s > $78ae820aa9ececfa$export$fd293b15f47e270) {\n out_axis[0] = q[0] / s;\n out_axis[1] = q[1] / s;\n out_axis[2] = q[2] / s;\n } else {\n // If s is zero, return any axis (no rotation - axis does not matter)\n out_axis[0] = 1;\n out_axis[1] = 0;\n out_axis[2] = 0;\n }\n return rad;\n}\nfunction $e92e4eb8d35aaf31$export$b363da9ded343252(a, b) {\n var dotproduct = $e92e4eb8d35aaf31$export$94132a0e348806d4(a, b);\n return Math.acos(2 * dotproduct * dotproduct - 1);\n}\nfunction $e92e4eb8d35aaf31$export$2060d2db72cce88f(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n var bx = b[0], by = b[1], bz = b[2], bw = b[3];\n out[0] = ax * bw + aw * bx + ay * bz - az * by;\n out[1] = ay * bw + aw * by + az * bx - ax * bz;\n out[2] = az * bw + aw * bz + ax * by - ay * bx;\n out[3] = aw * bw - ax * bx - ay * by - az * bz;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$a59c8716592e09af(out, a, rad) {\n rad *= 0.5;\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n var bx = Math.sin(rad), bw = Math.cos(rad);\n out[0] = ax * bw + aw * bx;\n out[1] = ay * bw + az * bx;\n out[2] = az * bw - ay * bx;\n out[3] = aw * bw - ax * bx;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$cf71e4d4ca4d1cfd(out, a, rad) {\n rad *= 0.5;\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n var by = Math.sin(rad), bw = Math.cos(rad);\n out[0] = ax * bw - az * by;\n out[1] = ay * bw + aw * by;\n out[2] = az * bw + ax * by;\n out[3] = aw * bw - ay * by;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$ea6eae3365de5b9c(out, a, rad) {\n rad *= 0.5;\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n var bz = Math.sin(rad), bw = Math.cos(rad);\n out[0] = ax * bw + ay * bz;\n out[1] = ay * bw - ax * bz;\n out[2] = az * bw + aw * bz;\n out[3] = aw * bw - az * bz;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$fb72b72e8d764d4e(out, a) {\n var x = a[0], y = a[1], z = a[2];\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$b310ec824aaee37f(out, a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var et = Math.exp(w);\n var s = r > 0 ? et * Math.sin(r) / r : 0;\n out[0] = x * s;\n out[1] = y * s;\n out[2] = z * s;\n out[3] = et * Math.cos(r);\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$876cb1b29620556f(out, a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var t = r > 0 ? Math.atan2(r, w) / r : 0;\n out[0] = x * t;\n out[1] = y * t;\n out[2] = z * t;\n out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$9c297f60e22e3389(out, a, b) {\n $e92e4eb8d35aaf31$export$876cb1b29620556f(out, a);\n $e92e4eb8d35aaf31$export$dcdf75081b88279d(out, out, b);\n $e92e4eb8d35aaf31$export$b310ec824aaee37f(out, out);\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$1544d9bc2995de08(out, a, b, t) {\n // benchmarks:\n // http://jsperf.com/quaternion-slerp-implementations\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n var bx = b[0], by = b[1], bz = b[2], bw = b[3];\n var omega, cosom, sinom, scale0, scale1; // calc cosine\n cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n } // calculate coefficients\n if (1.0 - cosom > $78ae820aa9ececfa$export$fd293b15f47e270) {\n // standard case (slerp)\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n // \"from\" and \"to\" quaternions are very close\n // ... so we can do a linear interpolation\n scale0 = 1.0 - t;\n scale1 = t;\n } // calculate final values\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$4385e60b38654f68(out) {\n // Implementation of http://planning.cs.uiuc.edu/node198.html\n // TODO: Calling random 3 times is probably not the fastest solution\n var u1 = $78ae820aa9ececfa$export$5ada478c8a628231();\n var u2 = $78ae820aa9ececfa$export$5ada478c8a628231();\n var u3 = $78ae820aa9ececfa$export$5ada478c8a628231();\n var sqrt1MinusU1 = Math.sqrt(1 - u1);\n var sqrtU1 = Math.sqrt(u1);\n out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$6897c284b6f9f4dc(out, a) {\n var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\n var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n var invDot = dot ? 1.0 / dot : 0; // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n out[0] = -a0 * invDot;\n out[1] = -a1 * invDot;\n out[2] = -a2 * invDot;\n out[3] = a3 * invDot;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$7679f47e72c62560(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a[3];\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$272a1eb8e5a4b55b(out, m) {\n // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n // article \"Quaternion Calculus and Fast Animation\".\n var fTrace = m[0] + m[4] + m[8];\n var fRoot;\n if (fTrace > 0.0) {\n // |w| > 1/2, may as well choose w > 1/2\n fRoot = Math.sqrt(fTrace + 1.0); // 2w\n out[3] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot; // 1/(4w)\n out[0] = (m[5] - m[7]) * fRoot;\n out[1] = (m[6] - m[2]) * fRoot;\n out[2] = (m[1] - m[3]) * fRoot;\n } else {\n // |w| <= 1/2\n var i = 0;\n if (m[4] > m[0]) i = 1;\n if (m[8] > m[i * 3 + i]) i = 2;\n var j = (i + 1) % 3;\n var k = (i + 2) % 3;\n fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n out[i] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot;\n out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n }\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$7a404a587ea85af(out, x, y, z) {\n var halfToRad = 0.5 * Math.PI / 180.0;\n x *= halfToRad;\n y *= halfToRad;\n z *= halfToRad;\n var sx = Math.sin(x);\n var cx = Math.cos(x);\n var sy = Math.sin(y);\n var cy = Math.cos(y);\n var sz = Math.sin(z);\n var cz = Math.cos(z);\n out[0] = sx * cy * cz - cx * sy * sz;\n out[1] = cx * sy * cz + sx * cy * sz;\n out[2] = cx * cy * sz - sx * sy * cz;\n out[3] = cx * cy * cz + sx * sy * sz;\n return out;\n}\nfunction $e92e4eb8d35aaf31$export$42d51816ce590c93(a) {\n return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\nvar $e92e4eb8d35aaf31$export$9cd59f9826255e47 = $e38eb280d3b76273$export$9cd59f9826255e47;\nvar $e92e4eb8d35aaf31$export$a82be99ed2a44a7d = $e38eb280d3b76273$export$a82be99ed2a44a7d;\nvar $e92e4eb8d35aaf31$export$784d13d8ee351f07 = $e38eb280d3b76273$export$784d13d8ee351f07;\nvar $e92e4eb8d35aaf31$export$adaa4cf7ef1b65be = $e38eb280d3b76273$export$adaa4cf7ef1b65be;\nvar $e92e4eb8d35aaf31$export$e16d8520af44a096 = $e38eb280d3b76273$export$e16d8520af44a096;\nvar $e92e4eb8d35aaf31$export$6e3a27864ab166fe = $e92e4eb8d35aaf31$export$2060d2db72cce88f;\nvar $e92e4eb8d35aaf31$export$dcdf75081b88279d = $e38eb280d3b76273$export$dcdf75081b88279d;\nvar $e92e4eb8d35aaf31$export$94132a0e348806d4 = $e38eb280d3b76273$export$94132a0e348806d4;\nvar $e92e4eb8d35aaf31$export$3a89f8d6f6bf6c9f = $e38eb280d3b76273$export$3a89f8d6f6bf6c9f;\nvar $e92e4eb8d35aaf31$export$f24224f1c91d8156 = $e38eb280d3b76273$export$f24224f1c91d8156;\nvar $e92e4eb8d35aaf31$export$fc1400facf92c78 = $e92e4eb8d35aaf31$export$f24224f1c91d8156;\nvar $e92e4eb8d35aaf31$export$ab44e1323ffc8376 = $e38eb280d3b76273$export$ab44e1323ffc8376;\nvar $e92e4eb8d35aaf31$export$99d8dd3f32a3435 = $e92e4eb8d35aaf31$export$ab44e1323ffc8376;\nvar $e92e4eb8d35aaf31$export$a3295358bff77e = $e38eb280d3b76273$export$a3295358bff77e;\nvar $e92e4eb8d35aaf31$export$f2599a5cf1109d8 = $e38eb280d3b76273$export$f2599a5cf1109d8;\nvar $e92e4eb8d35aaf31$export$e9bab7fafb253603 = $e38eb280d3b76273$export$e9bab7fafb253603;\nvar $e92e4eb8d35aaf31$export$72d66f5842c00904 = function() {\n var tmpvec3 = $ab7f6dc0910e1ef7$export$185802fd694ee1f5();\n var xUnitVec3 = $ab7f6dc0910e1ef7$export$a82be99ed2a44a7d(1, 0, 0);\n var yUnitVec3 = $ab7f6dc0910e1ef7$export$a82be99ed2a44a7d(0, 1, 0);\n return function(out, a, b) {\n var dot = $ab7f6dc0910e1ef7$export$94132a0e348806d4(a, b);\n if (dot < -0.999999) {\n $ab7f6dc0910e1ef7$export$bb646b20bb93d339(tmpvec3, xUnitVec3, a);\n if ($ab7f6dc0910e1ef7$export$fc1400facf92c78(tmpvec3) < 0.000001) $ab7f6dc0910e1ef7$export$bb646b20bb93d339(tmpvec3, yUnitVec3, a);\n $ab7f6dc0910e1ef7$export$a3295358bff77e(tmpvec3, tmpvec3);\n $e92e4eb8d35aaf31$export$4286ddefc8f49512(out, tmpvec3, Math.PI);\n return out;\n } else if (dot > 0.999999) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n } else {\n $ab7f6dc0910e1ef7$export$bb646b20bb93d339(tmpvec3, a, b);\n out[0] = tmpvec3[0];\n out[1] = tmpvec3[1];\n out[2] = tmpvec3[2];\n out[3] = 1 + dot;\n return $e92e4eb8d35aaf31$export$a3295358bff77e(out, out);\n }\n };\n}();\nvar $e92e4eb8d35aaf31$export$699b0866ca50f6cb = function() {\n var temp1 = $e92e4eb8d35aaf31$export$185802fd694ee1f5();\n var temp2 = $e92e4eb8d35aaf31$export$185802fd694ee1f5();\n return function(out, a, b, c, d, t) {\n $e92e4eb8d35aaf31$export$1544d9bc2995de08(temp1, a, d, t);\n $e92e4eb8d35aaf31$export$1544d9bc2995de08(temp2, b, c, t);\n $e92e4eb8d35aaf31$export$1544d9bc2995de08(out, temp1, temp2, 2 * t * (1 - t));\n return out;\n };\n}();\nvar $e92e4eb8d35aaf31$export$937ca0a544b2d712 = function() {\n var matr = $879d8210211d0bfa$export$185802fd694ee1f5();\n return function(out, view, right, up) {\n matr[0] = right[0];\n matr[3] = right[1];\n matr[6] = right[2];\n matr[1] = up[0];\n matr[4] = up[1];\n matr[7] = up[2];\n matr[2] = -view[0];\n matr[5] = -view[1];\n matr[8] = -view[2];\n return $e92e4eb8d35aaf31$export$a3295358bff77e(out, $e92e4eb8d35aaf31$export$272a1eb8e5a4b55b(out, matr));\n };\n}();\n\n\nclass $aaecba02b59b3797$export$a001ee18aa9e474 {\n constructor(scale, translation){\n this.rotation = (0, $e92e4eb8d35aaf31$exports).create();\n this.matrixCache = (0, $26675c4f95835ef1$exports).create();\n this.matrixCacheValid = false;\n this.scale = scale;\n this.translation = translation;\n }\n setScale(scale) {\n this.scale = scale;\n this.matrixCacheValid = false;\n }\n setTranslation(translation) {\n this.translation = translation;\n this.matrixCacheValid = false;\n }\n matrix() {\n if (this.matrixCacheValid) return this.matrixCache;\n (0, $26675c4f95835ef1$exports).fromRotationTranslationScale(this.matrixCache, this.rotation, this.translation, this.scale);\n this.matrixCacheValid = true;\n return this.matrixCache;\n }\n}\n\n\nclass $a3a4915a66132fbb$export$5f1af8db9871e1d6 {\n constructor(gl, shader, font, vertexBuffer, vertexCount, indexBuffer, vao){\n this.gl = gl;\n this.shader = shader;\n this.font = font;\n this.vertexBuffer = vertexBuffer;\n this.vertexCount = vertexCount;\n this.indexBuffer = indexBuffer;\n this.vao = vao;\n this.transformation = new (0, $aaecba02b59b3797$export$a001ee18aa9e474)([\n 1,\n 1,\n 1\n ], [\n 0,\n 0,\n 0\n ]);\n }\n static create(shader, font, spec) {\n const gl = shader.gl;\n const { vertexBuffer: vertexBuffer, vertexCount: vertexCount, indexBuffer: indexBuffer } = (0, $c37ee9b613b5e84c$export$ad946d13ba7b8603)({\n gl: gl,\n font: font.description,\n spec: spec\n });\n const vao = gl.createVertexArray();\n gl.bindVertexArray(vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 4, gl.FLOAT, false, 0, 0);\n gl.bindBuffer(gl.ARRAY_BUFFER, indexBuffer);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribIPointer(1, 1, gl.UNSIGNED_SHORT, 0, 0);\n return new $a3a4915a66132fbb$export$5f1af8db9871e1d6(gl, shader, font, vertexBuffer, vertexCount, indexBuffer, vao);\n }\n render({ now: now, resolution: resolution, opacity: opacity, params: params }) {\n this.gl.bindVertexArray(this.vao);\n this.shader.use({\n now: now,\n resolution: resolution,\n transform: this.transformation.matrix(),\n opacity: opacity,\n font: this.font,\n waviness: params?.waviness,\n distortion: params?.distortion,\n color: params?.color || [\n 1,\n 1,\n 1\n ]\n });\n this.gl.bindTexture(this.gl.TEXTURE_2D, this.font.texture);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, this.vertexCount);\n }\n destroy() {\n this.gl.deleteBuffer(this.vertexBuffer);\n this.gl.deleteBuffer(this.indexBuffer);\n this.gl.deleteVertexArray(this.vao);\n }\n}\n\n\n\nfunction $97fc7d4a5f524dad$export$2a584d00446d5130(v) {\n return (Array.isArray(v) || v instanceof Float32Array) && v.length === 3;\n}\nfunction $97fc7d4a5f524dad$export$d6cc2677b70571e0(v) {\n return (Array.isArray(v) || v instanceof Float32Array) && v.length === 2;\n}\nfunction $97fc7d4a5f524dad$export$d8c6274be7a0275c(ease, a, b, t) {\n return (0, $ab7f6dc0910e1ef7$exports).lerp((0, $ab7f6dc0910e1ef7$exports).create(), a, b, ease(t));\n}\n\n\nfunction $1669b27dd88d6d65$export$2fbeab44c6eca323(vec) {\n return isNaN(vec[0]) || isNaN(vec[1]) || isNaN(vec[2]);\n}\nfunction $1669b27dd88d6d65$export$5c5ee632c52bc4a2(value) {\n return Math.max(0, Math.min(1, value));\n}\n\n\nconst $b62e014a4102e0be$var$LIGHTING_DEFAULT = {\n ambient: [\n 0.2,\n 0.2,\n 0.2\n ],\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n intensity: [\n 0.5,\n 0.55,\n 0.6\n ]\n },\n cameraLightIntensity: [\n 0.5,\n 0.55,\n 0.6\n ],\n fogColor: [\n 0.1098039216,\n 0.1647058824,\n 0.3882352941\n ],\n fogDensity: 1.5\n};\nfunction $b62e014a4102e0be$export$499f63eb5439a1d5(data) {\n return {\n ...data,\n start: 0,\n then (sceneParams) {\n const scene = $b62e014a4102e0be$export$499f63eb5439a1d5(sceneParams);\n this.next = scene;\n scene.previous = this;\n scene.start = this.start + this.length;\n return scene;\n },\n thenScene (scene) {\n // Traverse the linked list to find the first scene\n let sceneIter = scene;\n while(sceneIter.previous)sceneIter = sceneIter.previous;\n this.next = sceneIter;\n sceneIter.previous = this;\n sceneIter.start = this.start + this.length;\n // Iterate all following scenes\n let currentScene = sceneIter;\n let start = sceneIter.start;\n while(currentScene){\n currentScene.start = start;\n start += currentScene.length;\n currentScene = currentScene.next;\n }\n return scene;\n },\n addSequence (partParams) {\n const sequence = {\n parts: [],\n scene: this\n };\n let start = 0;\n let previous;\n for (const part of partParams){\n const partStart = start;\n const partEnd = start + part.length;\n if (part.assertStart && partStart !== part.assertStart) throw new Error(`Sequence part starts at ${partStart} but should start at ${part.assertStart}`);\n start = partEnd;\n const partData = {\n ...part,\n start: partStart,\n sequence: sequence\n };\n if (previous) {\n previous.next = partData;\n partData.previous = previous;\n }\n sequence.parts.push(partData);\n previous = partData;\n }\n this.sequence = sequence;\n return this;\n }\n };\n}\nconst $b62e014a4102e0be$export$a3a6a28ae8823b06 = {\n shader: \"main\",\n now: 0,\n sceneNow: 0,\n beat: 0,\n nowInSceneBeats: 0,\n sceneProgress: 0,\n name: \"unnamed\",\n sceneId: 0,\n camera: {\n position: [\n 0,\n 0,\n 0\n ],\n target: [\n 0,\n 0,\n 0\n ],\n rotationY: 0\n },\n texts: [],\n lighting: $b62e014a4102e0be$var$LIGHTING_DEFAULT,\n sceneVariables: [\n 0,\n 0,\n 0,\n 0\n ],\n fade: [\n 0,\n 0,\n 0,\n 0\n ],\n backgroundColor: [\n 0,\n 0,\n 0\n ]\n};\nfunction $b62e014a4102e0be$var$getTransition3DFrom(transition) {\n return (0, $97fc7d4a5f524dad$export$2a584d00446d5130)(transition) ? transition : transition.from;\n}\nfunction $b62e014a4102e0be$var$getTransition3DTarget(transition) {\n return \"to\" in transition ? transition.to : undefined;\n}\nfunction $b62e014a4102e0be$var$computeTransition3D(transitionOrPosition, fraction, easeFunction = (0, $73a175dd57760e2d$export$45db2fc2f15997e7)) {\n const from = $b62e014a4102e0be$var$getTransition3DFrom(transitionOrPosition);\n const to = $b62e014a4102e0be$var$getTransition3DTarget(transitionOrPosition);\n return to ? (0, $97fc7d4a5f524dad$export$d8c6274be7a0275c)(easeFunction, from, to, fraction) : from;\n}\nfunction $b62e014a4102e0be$var$computeTransition2D(transitionOrPosition, fraction) {\n const from = (0, $97fc7d4a5f524dad$export$d6cc2677b70571e0)(transitionOrPosition) ? transitionOrPosition : transitionOrPosition.from;\n const to = \"to\" in transitionOrPosition ? transitionOrPosition.to : undefined;\n const easing = \"ease\" in transitionOrPosition && transitionOrPosition.ease ? transitionOrPosition.ease : (0, $73a175dd57760e2d$export$45db2fc2f15997e7);\n return to ? (0, $4ce98914b6676340$exports).lerp((0, $4ce98914b6676340$exports).create(), from, to, easing(fraction)) : from;\n}\nfunction $b62e014a4102e0be$var$computeSceneVariables(computeVariables, ctx) {\n if (!computeVariables) return [\n 0,\n 0,\n 0,\n 0\n ];\n return computeVariables(ctx);\n}\nfunction $b62e014a4102e0be$var$computeCamera(camera, ctx) {\n if (\"keyframes\" in camera) return camera.evaluate(ctx.partProgress);\n else {\n const position = $b62e014a4102e0be$var$computeTransition3D(camera.position, ctx.partProgress, camera.ease);\n const target = $b62e014a4102e0be$var$computeTransition3D(camera.target, ctx.partProgress, camera.ease);\n const rotationY = camera.rotationY ? camera.rotationY(ctx) : 0;\n return {\n position: position,\n target: target,\n rotationY: rotationY\n };\n }\n}\nclass $b62e014a4102e0be$export$f195f25b42d46a8c {\n constructor(config){\n this.config = config;\n this.sceneTexts = new WeakMap();\n this.BEAT_LENGTH = 60 / this.config.bpm;\n this.currentScene = config.initialScene;\n }\n preprocess(shader, fonts) {\n let scene = this.config.initialScene;\n function sceneTextToText(sceneText, font) {\n if (sceneText.type === \"horizontal\") return (0, $a3a4915a66132fbb$export$5f1af8db9871e1d6).create(shader, font, {\n type: \"horizontal\",\n text: sceneText.text,\n align: sceneText.align ?? \"center\"\n });\n else return (0, $a3a4915a66132fbb$export$5f1af8db9871e1d6).create(shader, font, {\n type: \"vertical\",\n text: sceneText.text,\n verticalSpacing: sceneText.verticalSpacing,\n spaceHeight: sceneText.spaceHeight\n });\n }\n while(scene){\n if (scene.text) for (const sceneText of scene.text){\n const font = fonts[sceneText.font];\n const text = sceneTextToText(sceneText, font);\n text.transformation.setScale([\n font.scale,\n font.scale,\n 1\n ]);\n this.sceneTexts.set(sceneText, text);\n }\n // Process every part of the sequence\n if (scene.sequence) for (const part of scene.sequence.parts){\n if (part.text) for (const partText of part.text){\n const font = fonts[partText.font];\n const text = sceneTextToText(partText, font);\n text.transformation.setScale([\n font.scale,\n font.scale,\n 1\n ]);\n this.sceneTexts.set(partText, text);\n }\n }\n scene = scene.next;\n }\n }\n getSceneAt(nowInBeats) {\n // If the current scene is in the future, it means the user has seeked backwards\n // In that case, start from the beginning\n // Otherwise, start from the current scene\n let scene = this.currentScene.start > nowInBeats ? this.config.initialScene : this.currentScene;\n while(scene.next && scene.next.start < nowInBeats)scene = scene.next;\n this.currentScene = scene;\n return this.currentScene;\n }\n getSequencePartAt(scene, nowInSceneBeats) {\n if (!scene.sequence) throw new Error(`Scene at ${scene.start} has no sequence`);\n // Check if the current sequence part is still valid\n if (this.currentSequencePart && this.currentSequencePart.start <= nowInSceneBeats && this.currentSequencePart.start + this.currentSequencePart.length > nowInSceneBeats) return this.currentSequencePart;\n // If not, find the current sequence part\n // If the current sequence part is in the future, it means the user has seeked backwards\n // In that case, start from the beginning\n // Otherwise, start from the current sequence part\n let part = this.currentSequencePart && this.currentSequencePart.start > nowInSceneBeats ? scene.sequence.parts[0] : this.currentSequencePart ?? scene.sequence.parts[0];\n while(part && part.start + part.length < nowInSceneBeats && part.next)part = part.next;\n return part;\n }\n getStateAt(now) {\n // scene start value is in beats, so convert now from seconds to beats\n const nowInBeats = now / this.BEAT_LENGTH;\n const scene = this.getSceneAt(nowInBeats);\n const nowInSceneBeats = nowInBeats - scene.start;\n const part = this.getSequencePartAt(scene, nowInSceneBeats);\n const sceneStartTime = scene.start;\n const sceneLength = scene.length;\n // Scene progress is in beats\n const sceneProgress = nowInSceneBeats;\n // Part progress is in beats\n const partProgress = nowInSceneBeats - part.start;\n const sceneProgressFraction = sceneLength > 0 ? Math.min(1, sceneProgress / sceneLength) : 0;\n const partProgressFraction = part.length > 0 ? Math.min(1.0, partProgress / part.length) : 0;\n // Time from the start of the scene in seconds\n const sceneNow = now - sceneStartTime * this.BEAT_LENGTH;\n // Same for part / sequence\n const partNow = now - (part.start + sceneStartTime) * this.BEAT_LENGTH;\n if (!part.camera) throw new Error(`No camera defined for scene at ${scene.start}`);\n const transitionContext = {\n nowInSeconds: now,\n sceneNowInSeconds: sceneNow,\n sceneNowInBeats: nowInSceneBeats,\n sceneProgress: sceneProgressFraction\n };\n const sequenceTransitionContext = {\n sceneContext: transitionContext,\n partProgress: partProgressFraction\n };\n const sceneVariables = $b62e014a4102e0be$var$computeSceneVariables(scene.variables, transitionContext);\n const sceneVariables2 = $b62e014a4102e0be$var$computeSceneVariables(scene.variables2, transitionContext);\n const camera = $b62e014a4102e0be$var$computeCamera(part.camera, sequenceTransitionContext);\n const fade = part.fade ? part.fade(sequenceTransitionContext) : [\n 0,\n 0,\n 0,\n 0\n ];\n const texts = [];\n const potentialTexts = [\n ...scene.text?.map((text)=>{\n const textDuration = text.timing ? text.timing.exit - text.timing.enter : sceneLength;\n const fraction = (0, $1669b27dd88d6d65$export$5c5ee632c52bc4a2)(text.timing ? (nowInSceneBeats - text.timing.enter) / textDuration : sceneProgressFraction);\n const timeSinceVisible = text.timing ? nowInSceneBeats - text.timing.enter : nowInSceneBeats;\n return {\n fraction: fraction,\n duration: textDuration,\n text: text,\n timeSinceVisible: // If timing (enter and exit) is defined, calculate the fraction based on that\n timeSinceVisible\n };\n }) ?? [],\n ...part.text?.map((text)=>{\n const textDuration = text.timing ? text.timing.exit - text.timing.enter : part.length;\n const fraction = (0, $1669b27dd88d6d65$export$5c5ee632c52bc4a2)(text.timing ? (partProgress - text.timing.enter) / textDuration : partProgressFraction);\n const timeSinceVisible = text.timing ? partProgress - text.timing.enter : partProgress;\n return {\n text: text,\n fraction: fraction,\n duration: textDuration,\n timeSinceVisible: timeSinceVisible\n };\n }) ?? []\n ];\n const backgroundColor = part.backgroundColor ? part.backgroundColor(sequenceTransitionContext) : [\n 0,\n 0,\n 0\n ];\n for (const { text: text, fraction: fraction, timeSinceVisible: timeSinceVisible, duration: duration } of potentialTexts){\n if (!text) continue;\n if (timeSinceVisible < 0) continue;\n const textObj = this.sceneTexts.get(text);\n if (!textObj) throw new Error(`Text missing for scene at ${scene.start} with text \"${text.text}\"`);\n const textPosition = $b62e014a4102e0be$var$computeTransition2D(text.position, fraction);\n if (text.scale) textObj.transformation.setScale([\n text.scale[0],\n text.scale[1],\n 1\n ]);\n textObj.transformation.setTranslation((0, $ab7f6dc0910e1ef7$exports).fromValues(textPosition[0], textPosition[1], 0.0));\n // Hard coded 1 beat fade in\n let opacity = 1.0;\n if (timeSinceVisible < 1.0) opacity = Math.min(1.0, timeSinceVisible / 1.0);\n // Also fade out the text\n if (timeSinceVisible > duration - 1.0) opacity = Math.max(0, 1.0 - (timeSinceVisible - (duration - 1.0)));\n texts.push({\n text: textObj,\n opacity: opacity,\n params: text.params\n });\n }\n const lighting = !scene.lighting ? $b62e014a4102e0be$var$LIGHTING_DEFAULT : $b62e014a4102e0be$var$computeLighting(transitionContext, scene.lighting);\n return {\n shader: part.shader ?? scene.shader,\n sceneId: part.sceneId ?? scene.sceneId ?? 0,\n now: now,\n sceneNow: sceneNow,\n nowInSceneBeats: nowInSceneBeats,\n name: scene.name ?? \"unnamed\",\n beat: nowInBeats,\n camera: camera,\n sceneProgress: sceneProgressFraction,\n texts: texts,\n lighting: lighting,\n sceneVariables: sceneVariables,\n sceneVariables2: sceneVariables2,\n fade: fade,\n backgroundColor: backgroundColor,\n effects: scene.effects\n };\n }\n}\nfunction $b62e014a4102e0be$export$1c01f9aaa34375f(mainScene) {\n const lookup = {};\n let scene = mainScene;\n while(scene){\n if (!scene.name) throw new Error(`Scene at ${scene.start} has no name`);\n lookup[scene.name] = scene;\n scene = scene.next;\n }\n return lookup;\n}\nfunction $b62e014a4102e0be$var$compute(ctx, value) {\n return value instanceof Function ? value(ctx) : value;\n}\nfunction $b62e014a4102e0be$var$computeLighting(ctx, lighting) {\n function computeLight(light) {\n return {\n position: $b62e014a4102e0be$var$compute(ctx, light.position),\n intensity: $b62e014a4102e0be$var$compute(ctx, light.intensity)\n };\n }\n return {\n light1: computeLight(lighting.light1),\n ambient: $b62e014a4102e0be$var$compute(ctx, lighting.ambient),\n cameraLightIntensity: $b62e014a4102e0be$var$compute(ctx, lighting.cameraLightIntensity),\n fogColor: $b62e014a4102e0be$var$compute(ctx, lighting.fogColor),\n fogDensity: $b62e014a4102e0be$var$compute(ctx, lighting.fogDensity)\n };\n}\n\n\nfunction $9fd44832378de894$export$de363e709c412c8a(fn, delay) {\n let last = 0;\n return function(...args) {\n const now = Date.now();\n if (now - last < delay) return;\n last = now;\n return fn(...args);\n };\n}\nfunction $9fd44832378de894$export$61fc7d43ac8f84b0(fn, delay) {\n let timeout = null;\n return function(...args) {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(()=>{\n fn(...args);\n }, delay);\n };\n}\n\n\nclass $345fa7976de58ce6$export$cf1be2ef99f5762d {\n constructor(gl, quad, originalResolution, resolutionScale, renderLastToScreen, effects){\n this.gl = gl;\n this.quad = quad;\n this.resolutionScale = resolutionScale;\n this.renderLastToScreen = renderLastToScreen;\n this.effects = effects;\n this.colorTextures = [];\n this.colorTextureIndex = 0;\n const resolution = [\n Math.floor(originalResolution[0] * resolutionScale),\n Math.floor(originalResolution[1] * resolutionScale)\n ];\n // Create color textures\n for(let i = 0; i < 2; i++){\n const colorTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, colorTexture);\n this.initializeColorTexture(colorTexture, resolution);\n this.setTextureFlags();\n this.colorTextures.push(colorTexture);\n }\n // Create depth texture\n this.positionAndDepthTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, this.positionAndDepthTexture);\n this.initializePositionAndDepthTexture(this.positionAndDepthTexture, resolution);\n this.setTextureFlags();\n gl.bindTexture(gl.TEXTURE_2D, null);\n // Create scene framebuffer\n this.sceneFramebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.sceneFramebuffer);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.colorTextures[this.colorTextureIndex], 0);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT1, gl.TEXTURE_2D, this.positionAndDepthTexture, 0);\n gl.drawBuffers([\n gl.COLOR_ATTACHMENT0,\n gl.COLOR_ATTACHMENT1\n ]);\n // Create effect framebuffer\n this.effectFramebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.effectFramebuffer);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.colorTextures[1 - this.colorTextureIndex], 0);\n gl.drawBuffers([\n gl.COLOR_ATTACHMENT0\n ]);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n }\n beforeScene() {\n const gl = this.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.sceneFramebuffer);\n // Update framebuffer texture\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.colorTextures[this.colorTextureIndex], 0);\n }\n getScreenBuffer() {\n return this.colorTextures[this.colorTextureIndex];\n }\n getBackBuffer() {\n return this.colorTextures[1 - this.colorTextureIndex];\n }\n copyFromScreenBuffer() {\n const gl = this.gl;\n gl.bindTexture(gl.TEXTURE_2D, this.colorTextures[this.colorTextureIndex]);\n gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n }\n render(input) {\n const gl = this.gl;\n const renderQuad = ()=>{\n this.quad.render();\n };\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.effectFramebuffer);\n const renderUpTo = this.renderLastToScreen ? this.effects.length - 1 : this.effects.length;\n // Render up to second-to-last effect\n for(let i = 0; i < renderUpTo; i++){\n const effect = this.effects[i];\n if (!effect.enabled && !input.enableEffects?.[effect.name]) continue;\n const colorTexture = this.colorTextures[this.colorTextureIndex];\n const depthTexture = this.positionAndDepthTexture;\n effect.render(input, colorTexture, depthTexture, renderQuad);\n // Swap color textures in the framebuffer\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.colorTextures[this.colorTextureIndex], 0);\n this.colorTextureIndex = 1 - this.colorTextureIndex;\n }\n if (this.renderLastToScreen) {\n // Last effect is rendered to the screen\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n const effect = this.effects[this.effects.length - 1];\n const colorTexture = this.colorTextures[this.colorTextureIndex];\n const depthTexture = this.positionAndDepthTexture;\n effect.render(input, colorTexture, depthTexture, renderQuad);\n }\n }\n getEffect(name) {\n return this.effects.find((effect)=>effect.name === name);\n }\n setEffectEnabled(name, enabled) {\n const effect = this.effects.find((effect)=>effect.name === name);\n if (effect) effect.enabled = enabled;\n }\n initializeColorTexture(texture, [width, height]) {\n const gl = this.gl;\n gl.bindTexture(this.gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA16F, width, height, 0, gl.RGBA, gl.FLOAT, null);\n }\n initializePositionAndDepthTexture(texture, [width, height]) {\n const gl = this.gl;\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA32F, width, height, 0, gl.RGBA, gl.FLOAT, null);\n }\n setTextureFlags() {\n const gl = this.gl;\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n }\n resize(originalResolution) {\n const gl = this.gl;\n const resolution = [\n Math.floor(originalResolution[0] * this.resolutionScale),\n Math.floor(originalResolution[1] * this.resolutionScale)\n ];\n // Resize color textures\n for (const texture of this.colorTextures){\n gl.bindTexture(gl.TEXTURE_2D, texture);\n this.initializeColorTexture(texture, resolution);\n }\n // Resize depth texture\n gl.bindTexture(gl.TEXTURE_2D, this.positionAndDepthTexture);\n this.initializePositionAndDepthTexture(this.positionAndDepthTexture, resolution);\n gl.bindTexture(gl.TEXTURE_2D, null);\n }\n}\n\n\n\n\nclass $ed2f80146d39749a$export$9dde1d7d4d0d9914 {\n static #_ = (()=>{\n this.vertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nout vec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n })();\n constructor(gl, name, fragmentShader){\n this.gl = gl;\n this.name = name;\n this.enabled = true;\n const shader = (0, $4d5479e188493b90$export$83674196993caf59)(gl, $ed2f80146d39749a$export$9dde1d7d4d0d9914.vertexShader, fragmentShader, name);\n this.shader = shader;\n this.colorTextureLocation = gl.getUniformLocation(shader, \"screenBuffer\");\n this.depthTextureLocation = gl.getUniformLocation(shader, \"depthBuffer\");\n this.nowLocation = gl.getUniformLocation(shader, \"now\");\n this.resolutionLocation = gl.getUniformLocation(shader, \"resolution\");\n }\n setUniforms(input) {\n this.gl.uniform1f(this.nowLocation, input.now);\n this.gl.uniform2fv(this.resolutionLocation, input.resolution);\n }\n beforeQuadRender() {}\n render(input, colorTexture, depthTexture, renderQuad) {\n this.gl.useProgram(this.shader);\n this.gl.uniform1i(this.colorTextureLocation, 0);\n this.gl.uniform1i(this.depthTextureLocation, 1);\n this.setUniforms(input);\n this.gl.activeTexture(this.gl.TEXTURE0);\n this.gl.bindTexture(this.gl.TEXTURE_2D, colorTexture);\n this.gl.activeTexture(this.gl.TEXTURE1);\n this.gl.bindTexture(this.gl.TEXTURE_2D, depthTexture);\n this.beforeQuadRender();\n renderQuad();\n this.gl.useProgram(null);\n }\n}\n\n\n\nclass $e26936ed748f24a7$export$7005c9eb6671414d {\n constructor(gl){\n this.gl = gl;\n this.vertexBuffer = (0, $4d5479e188493b90$export$ce4d37cf4027f102)(gl);\n this.vao = gl.createVertexArray();\n gl.bindVertexArray(this.vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);\n gl.bindVertexArray(null);\n }\n render() {\n this.gl.bindVertexArray(this.vao);\n this.gl.drawArrays(this.gl.TRIANGLE_STRIP, 0, 4);\n this.gl.bindVertexArray(null);\n }\n}\n\n\n\n\n\nclass $d86083e3986cc42d$export$c8ff168db15089af extends (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914) {\n constructor(gl){\n super(gl, \"Fade\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\n\\n// Color to fade to. Alpha channel is used for the fade amount.\\nuniform vec4 fadeColor;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 color = texture(screenBuffer, uv);\\n\\n // Fade the color to the specified color.\\n color = mix(color, fadeColor, fadeColor.a);\\n\\n fragColor = color;\\n}\\n\");\n this.fadeColorLocation = gl.getUniformLocation(this.shader, \"fadeColor\");\n }\n setUniforms(input) {\n super.setUniforms(input);\n this.gl.uniform4fv(this.fadeColorLocation, input.fadeColor);\n }\n}\n\n\n\n\nclass $980c954df20a7e30$export$106015d73c5a2f43 extends (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914) {\n constructor(gl, bloomTexture){\n super(gl, \"Bloom Add\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform sampler2D bloom;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 bloomColor = texture(bloom, uv);\\n vec4 screenColor = texture(screenBuffer, uv);\\n fragColor = bloomColor * 0.3 + screenColor;\\n}\\n\");\n this.bloomTexture = bloomTexture;\n this.bloomTextureLocation = gl.getUniformLocation(this.shader, \"bloom\");\n gl.useProgram(this.shader);\n this.gl.uniform1i(this.bloomTextureLocation, 2);\n gl.useProgram(null);\n }\n setUniforms(input) {\n super.setUniforms(input);\n }\n beforeQuadRender() {\n this.gl.activeTexture(this.gl.TEXTURE2);\n this.gl.bindTexture(this.gl.TEXTURE_2D, this.bloomTexture);\n }\n}\n\n\nfunction $b8501dd8975bb516$export$de1c2074635d159e(gl, resolution, bloomTexture) {\n const fxaa = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"FXAA\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\n#ifndef FXAA_REDUCE_MIN\\n #define FXAA_REDUCE_MIN (1.0/ 128.0)\\n#endif\\n#ifndef FXAA_REDUCE_MUL\\n #define FXAA_REDUCE_MUL (1.0 / 8.0)\\n#endif\\n#ifndef FXAA_SPAN_MAX\\n #define FXAA_SPAN_MAX 8.0\\n#endif\\n\\n// FXAA from https://github.com/mattdesl/glsl-fxaa\\n\\n//optimized version for mobile, where dependent \\n//texture reads can be a bottleneck\\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution,\\n vec2 v_rgbNW, vec2 v_rgbNE, \\n vec2 v_rgbSW, vec2 v_rgbSE, \\n vec2 v_rgbM) {\\n vec4 color;\\n mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);\\n vec3 rgbNW = texture(tex, v_rgbNW).xyz;\\n vec3 rgbNE = texture(tex, v_rgbNE).xyz;\\n vec3 rgbSW = texture(tex, v_rgbSW).xyz;\\n vec3 rgbSE = texture(tex, v_rgbSE).xyz;\\n vec4 texColor = texture(tex, v_rgbM);\\n vec3 rgbM = texColor.xyz;\\n vec3 luma = vec3(0.299, 0.587, 0.114);\\n float lumaNW = dot(rgbNW, luma);\\n float lumaNE = dot(rgbNE, luma);\\n float lumaSW = dot(rgbSW, luma);\\n float lumaSE = dot(rgbSE, luma);\\n float lumaM = dot(rgbM, luma);\\n float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\\n float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\\n \\n mediump vec2 dir;\\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\\n \\n float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\\n (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\\n \\n float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\\n dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\\n max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\\n dir * rcpDirMin)) * inverseVP;\\n \\n vec3 rgbA = 0.5 * (\\n texture(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\\n texture(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\\n vec3 rgbB = rgbA * 0.5 + 0.25 * (\\n texture(tex, fragCoord * inverseVP + dir * -0.5).xyz +\\n texture(tex, fragCoord * inverseVP + dir * 0.5).xyz);\\n\\n float lumaB = dot(rgbB, luma);\\n if ((lumaB < lumaMin) || (lumaB > lumaMax))\\n color = vec4(rgbA, texColor.a);\\n else\\n color = vec4(rgbB, texColor.a);\\n return color;\\n}\\n\\nvoid texcoords(vec2 fragCoord, vec2 resolution,\\n\t\t\tout vec2 v_rgbNW, out vec2 v_rgbNE,\\n\t\t\tout vec2 v_rgbSW, out vec2 v_rgbSE,\\n\t\t\tout vec2 v_rgbM) {\\n\tvec2 inverseVP = 1.0 / resolution.xy;\\n\tv_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\\n\tv_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\\n\tv_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\\n\tv_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\\n\\n\tv_rgbM = vec2(fragCoord * inverseVP);\\n}\\n\\nvec4 apply_fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution) {\\n\tmediump vec2 v_rgbNW;\\n\tmediump vec2 v_rgbNE;\\n\tmediump vec2 v_rgbSW;\\n\tmediump vec2 v_rgbSE;\\n\tmediump vec2 v_rgbM;\\n\\n\t//compute the texture coords\\n\ttexcoords(fragCoord, resolution, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\\n\t\\n\t//compute FXAA\\n\treturn fxaa(tex, fragCoord, resolution, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\\n}\\n\\nvoid main() {\\n vec3 color = apply_fxaa(screenBuffer, gl_FragCoord.xy, resolution).rgb;\\n fragColor = vec4(color, 1.0);\\n}\\n\");\n const bloomAdd = new (0, $980c954df20a7e30$export$106015d73c5a2f43)(gl, bloomTexture);\n const tonemapExposure = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Tonemap Exposure\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvec3 ACESFilm(vec3 x)\\n{\\n float a = 2.51f;\\n float b = 0.03f;\\n float c = 2.43f;\\n float d = 0.59f;\\n float e = 0.14f;\\n return clamp((x*(a*x+b))/(x*(c*x+d)+e), 0.0, 1.0);\\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 color = texture(screenBuffer, uv);\\n\\n color.rgb = ACESFilm(color.rgb);\\n // gamma correction\\n color.rgb = pow(color.rgb, vec3(1.25));\\n\\n fragColor = color;\\n}\\n\");\n const chromaticAberration = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Chromatic Aberration\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvec4 apply_chromatic_aberration(vec2 uv, float amount) {\\n float redOffset = 0.009;\\n float greenOffset = 0.006;\\n float blueOffset = -0.006;\\n\\n vec4 color = vec4(0.0);\\n color.r = texture(screenBuffer, uv + vec2(redOffset, 0.0) * amount).r;\\n color.g = texture(screenBuffer, uv + vec2(greenOffset, 0.0) * amount).g;\\n color.b = texture(screenBuffer, uv + vec2(blueOffset, 0.0) * amount).b;\\n color.a = 1.0;\\n return color;\\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 color = apply_chromatic_aberration(uv, 0.2);\\n fragColor = color;\\n}\\n\");\n const boxBlur = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Box Blur\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvec4 box_blur(vec2 uv, const int size, const float amount) {\\n vec4 color = vec4(0.0);\\n for (int x = -size; x <= size; x++) {\\n for (int y = -size; y <= size; y++) {\\n color += texture(screenBuffer, uv + vec2(x, y) / resolution);\\n }\\n }\\n color /= float((size * 2 + 1) * (size * 2 + 1));\\n return mix(texture(screenBuffer, uv), color, amount);\\n}\\n\\nvec4 blur5(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\\n vec4 color = vec4(0.0);\\n vec2 off1 = vec2(1.3333333333333333) * direction;\\n color += texture(image, uv) * 0.29411764705882354;\\n color += texture(image, uv + (off1 / resolution)) * 0.35294117647058826;\\n color += texture(image, uv - (off1 / resolution)) * 0.35294117647058826;\\n return color; \\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n fragColor = blur5(screenBuffer, uv, resolution, vec2(2.0, 2.0));\\n}\\n\");\n const vhsDistortion = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"VHS Distortion\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n\\n // Add random offset to uv to simulate glitchiness\\n uv.x += sin(uv.y * 24.0 + now * 2.0) * 0.001 + sin(uv.y * 12.0 + now * 0.7) * 0.002;\\n\\n //float offset = random(vec2(uv.y + now * 5.0), 0.0);\\n\\n\\n\\n // uv.x += random(vec2(uv.y), now * 0.5) * 0.01;\\n\\n vec4 color = texture(screenBuffer, uv);\\n fragColor = color;\\n}\\n\");\n vhsDistortion.enabled = false;\n const fade = new (0, $d86083e3986cc42d$export$c8ff168db15089af)(gl);\n const vignette = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Vignette\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvec4 vignette(vec4 color, vec2 uv) {\\n vec2 center = vec2(0.5, 0.5);\\n float radius = 0.75;\\n float softness = 0.5;\\n\\n float distance = length(uv - center) / radius;\\n float vignette = 1.0 - smoothstep(softness, 1.0, distance);\\n return mix(color, color * vignette, 0.8);\\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 color = texture(screenBuffer, uv);\\n // Apply vignette\\n color = vignette(color, uv);\\n fragColor = color;\\n}\\n\");\n const noise = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Noise\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nfloat NOISE_GRANULARITY = 3.0/255.0;\\n\\nfloat random(vec2 coords, float offset) {\\n return fract(sin(dot(gl_FragCoord.xy / resolution.xy, vec2(12.9898,78.233))) * 43758.5453 + offset);\\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 color = texture(screenBuffer, uv);\\n\\n float rNoise = mix(-NOISE_GRANULARITY, NOISE_GRANULARITY, random(uv, now));\\n float gNoise = mix(-NOISE_GRANULARITY, NOISE_GRANULARITY, random(uv, now + 0.1));\\n float bNoise = mix(-NOISE_GRANULARITY, NOISE_GRANULARITY, random(uv, now + 0.7));\\n\\n // Add noise to reduce banding\\n color += vec4(rNoise, gNoise, bNoise, 0.0);\\n\\n fragColor = color;\\n}\\n\");\n const effects = [\n bloomAdd,\n fxaa,\n tonemapExposure,\n chromaticAberration,\n //boxBlur,\n vhsDistortion,\n fade,\n vignette,\n noise\n ];\n const quad = new (0, $e26936ed748f24a7$export$7005c9eb6671414d)(gl);\n return new (0, $345fa7976de58ce6$export$cf1be2ef99f5762d)(gl, quad, resolution, 1.0, true, effects);\n}\nfunction $b8501dd8975bb516$export$4eee23cd507a1ab9(gl, resolution) {\n const bloomExtract = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Bloom Extract\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nfloat brightness(vec4 color) {\\n return (color.r + color.g + color.b) / 3.0;\\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n vec4 color = texture(screenBuffer, uv);\\n\\n if (brightness(color) > 1.0) {\\n fragColor = color;\\n } else {\\n fragColor = vec4(0.0, 0.0, 0.0, 1.0);\\n }\\n}\\n\");\n const bloomBlur = new (0, $ed2f80146d39749a$export$9dde1d7d4d0d9914)(gl, \"Bloom Blur\", \"#version 300 es\\nprecision highp float;\\n\\nuniform sampler2D screenBuffer;\\nuniform vec2 resolution;\\nuniform float now;\\n\\nin vec2 v_position;\\nout vec4 fragColor;\\n\\nvec4 box_blur(vec2 uv, const int size, const float amount) {\\n vec4 color = vec4(0.0);\\n for (int x = -size; x <= size; x++) {\\n for (int y = -size; y <= size; y++) {\\n color += texture(screenBuffer, uv + vec2(x, y) / resolution);\\n }\\n }\\n color /= float((size * 2 + 1) * (size * 2 + 1));\\n return mix(texture(screenBuffer, uv), color, amount);\\n}\\n\\nvec4 blur5(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\\n vec4 color = vec4(0.0);\\n vec2 off1 = vec2(1.3333333333333333) * direction;\\n color += texture(image, uv) * 0.29411764705882354;\\n color += texture(image, uv + (off1 / resolution)) * 0.35294117647058826;\\n color += texture(image, uv - (off1 / resolution)) * 0.35294117647058826;\\n return color; \\n}\\n\\nvoid main() {\\n vec2 uv = v_position / 2.0 + 0.5;\\n fragColor = blur5(screenBuffer, uv, resolution, vec2(2.0, 2.0));\\n}\\n\");\n return new (0, $345fa7976de58ce6$export$cf1be2ef99f5762d)(gl, new (0, $e26936ed748f24a7$export$7005c9eb6671414d)(gl), resolution, 1.0, false, [\n bloomExtract,\n bloomBlur,\n bloomBlur,\n bloomBlur,\n bloomBlur,\n bloomBlur\n ]);\n}\n\n\n\nclass $27e0396eef938f1d$export$1c64c53574a5fe53 {\n constructor(gl, shader, name, unit, texture){\n this.gl = gl;\n this.shader = shader;\n this.name = name;\n this.unit = unit;\n this.texture = texture;\n gl.useProgram(shader);\n gl.getUniformLocation(shader, name);\n this.location = gl.getUniformLocation(shader, name);\n if (!this.location) console.warn(`Uniform \"${name}\" not found in shader - uniform is either unused or the name is incorrect`);\n else gl.uniform1i(this.location, this.unit);\n }\n bind() {\n if (this.location) {\n this.gl.activeTexture(this.gl.TEXTURE0 + this.unit);\n this.gl.bindTexture(this.gl.TEXTURE_2D, this.texture);\n }\n }\n update(updater) {\n if (this.location) {\n this.bind();\n updater(this.gl);\n }\n }\n}\n\n\nclass $cd7c808f3fdd3d35$export$2947cebfe91c02f8 {\n constructor(gl, shader, name, uniformType){\n this.gl = gl;\n this.shader = shader;\n this.name = name;\n this.uniformType = uniformType;\n gl.useProgram(shader);\n this.location = gl.getUniformLocation(shader, name);\n if (!this.location) console.warn(`Uniform \"${name}\" not found in shader - uniform is either unused or the name is incorrect`);\n }\n update(value) {\n if (!this.location) return;\n switch(this.uniformType){\n case \"float\":\n this.gl.uniform1f(this.location, value);\n break;\n case \"uint\":\n this.gl.uniform1ui(this.location, value);\n break;\n case \"vec2\":\n this.gl.uniform2fv(this.location, value);\n break;\n case \"vec3\":\n this.gl.uniform3fv(this.location, value);\n break;\n case \"vec4\":\n this.gl.uniform4fv(this.location, value);\n break;\n case \"mat4\":\n this.gl.uniformMatrix4fv(this.location, false, value);\n break;\n }\n }\n}\n\n\nclass $d256aeec6e5e93e7$export$238e1922c0a52ddd {\n constructor(gl, resources, vertexShader, fragmentShader){\n this.gl = gl;\n this.vao = this.gl.createVertexArray();\n this.vertexBuffer = (0, $4d5479e188493b90$export$ce4d37cf4027f102)(this.gl);\n this.nextTextureUnit = 0;\n this.textureUniforms = [];\n const shader = (0, $4d5479e188493b90$export$83674196993caf59)(gl, vertexShader, fragmentShader, \"SDF\");\n this.shader = shader;\n this.vertexBuffer = (0, $4d5479e188493b90$export$ce4d37cf4027f102)(gl);\n this.vao = gl.createVertexArray();\n gl.bindVertexArray(this.vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);\n this.now = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"now\", \"float\");\n this.resolution = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"resolution\", \"vec2\");\n this.sceneId = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"sceneId\", \"uint\");\n this.sceneProgress = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"sceneProgress\", \"float\");\n this.beat = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"beat\", \"float\");\n this.sceneBeat = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"sceneBeat\", \"uint\");\n this.sceneNow = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"sceneNow\", \"float\");\n this.sceneVariables = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"sceneVariables\", \"vec4\");\n this.sceneVariables2 = new (0, $cd7c808f3fdd3d35$export$2947cebfe91c02f8)(gl, shader, \"sceneVariables2\", \"vec4\");\n this.cameraLocations = $d256aeec6e5e93e7$export$238e1922c0a52ddd.getCameraLocations(gl, shader, \"camera\");\n this.lightingLocations = $d256aeec6e5e93e7$export$238e1922c0a52ddd.getLightingLocations(gl, shader);\n this.addTextureUniform(\"randomTexture\", resources.textures.noise);\n this.fftTexture = this.addTextureUniform(\"fftTexture\", this.createFftTexture());\n gl.useProgram(null);\n gl.bindTexture(gl.TEXTURE_2D, null);\n }\n createFftTexture() {\n const gl = this.gl;\n const fftTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, fftTexture);\n // Disable mipmaps\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.bindTexture(gl.TEXTURE_2D, null);\n return fftTexture;\n }\n addTextureUniform(name, texture) {\n const uniform = new (0, $27e0396eef938f1d$export$1c64c53574a5fe53)(this.gl, this.shader, name, this.nextTextureUnit, texture);\n this.nextTextureUnit++;\n this.textureUniforms.push(uniform);\n return uniform;\n }\n bindAllTextureUniforms() {\n for (const uniform of this.textureUniforms)uniform.bind();\n }\n render(renderInput) {\n const { now: now, resolution: resolution, sceneId: sceneId, camera: camera, sceneProgress: sceneProgress, beat: beat, sceneNow: sceneNow, nowInSceneBeats: nowInSceneBeats, lighting: lighting, sceneVariables: sceneVariables, sceneVariables2: sceneVariables2, fft: fft } = renderInput;\n this.gl.bindVertexArray(this.vao);\n this.gl.useProgram(this.shader);\n this.now.update(now);\n this.resolution.update(resolution);\n this.sceneId.update(sceneId);\n this.sceneProgress.update(sceneProgress);\n this.beat.update(beat);\n this.sceneNow.update(sceneNow);\n this.sceneBeat.update(Math.floor(nowInSceneBeats));\n this.sceneVariables.update(sceneVariables);\n if (sceneVariables2) this.sceneVariables2.update(sceneVariables2);\n this.updateCameraUniforms(this.cameraLocations, camera);\n this.updateLightUniforms(this.lightingLocations.light1, lighting.light1);\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, this.lightingLocations.ambient, lighting.ambient);\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, this.lightingLocations.cameraLightIntensity, lighting.cameraLightIntensity);\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, this.lightingLocations.fogColor, lighting.fogColor);\n this.gl.uniform1f(this.lightingLocations.fogDensity, lighting.fogDensity);\n this.updateUniforms(renderInput);\n // Update FFT texture\n this.fftTexture.update((gl)=>{\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.R32F, fft.length, 1, 0, gl.RED, gl.FLOAT, fft);\n });\n this.bindAllTextureUniforms();\n this.gl.drawArrays(this.gl.TRIANGLE_STRIP, 0, 4);\n }\n updateUniforms(input) {}\n destroy() {\n this.gl.deleteBuffer(this.vertexBuffer);\n this.gl.deleteVertexArray(this.vao);\n this.gl.deleteProgram(this.shader);\n }\n static getLightLocations(gl, shader, field) {\n return {\n position: gl.getUniformLocation(shader, `${field}.position`),\n intensity: gl.getUniformLocation(shader, `${field}.intensity`)\n };\n }\n static getLightingLocations(gl, shader) {\n return {\n ambient: gl.getUniformLocation(shader, \"lighting.ambient\"),\n cameraLightIntensity: gl.getUniformLocation(shader, \"lighting.cameraLightIntensity\"),\n light1: $d256aeec6e5e93e7$export$238e1922c0a52ddd.getLightLocations(gl, shader, \"lighting.light1\"),\n fogColor: gl.getUniformLocation(shader, \"lighting.fogColor\"),\n fogDensity: gl.getUniformLocation(shader, \"lighting.fogDensity\")\n };\n }\n static getCameraLocations(gl, shader, field) {\n return {\n position: gl.getUniformLocation(shader, `${field}.position`),\n target: gl.getUniformLocation(shader, `${field}.target`),\n rotationY: gl.getUniformLocation(shader, `${field}.rotationY`),\n zoom: gl.getUniformLocation(shader, `${field}.zoom`),\n roll: gl.getUniformLocation(shader, `${field}.roll`)\n };\n }\n updateCameraUniforms(locations, camera) {\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, locations.position, camera.position);\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, locations.target, camera.target);\n this.gl.uniform1f(locations.rotationY, camera.rotationY ?? 0);\n this.gl.uniform1f(locations.zoom, camera.zoom ?? 1);\n if (locations.roll) this.gl.uniform1f(locations.roll, camera.roll ?? 0);\n }\n updateLightUniforms(locations, light) {\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, locations.position, light.position);\n (0, $4d5479e188493b90$export$452eee33cf760b85)(this.gl, locations.intensity, light.intensity);\n }\n}\n\n\n\nclass $e818cc2b0899f0b5$export$50cd449059e2d3d8 extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = '#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 100.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nconst uint SCENE_BLACK = 0u;\\nconst uint SCENE_MACARONI_FLYBY = 3u;\\nconst uint SCENE_LASAGA_WORLD = 4u;\\n\\nuniform sampler2D textureMetal;\\nuniform sampler2D textureMetalNormal;\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat sdBezier( in vec2 pos, in vec2 A, in vec2 B, in vec2 C )\\n{ \\n vec2 a = B - A;\\n vec2 b = A - 2.0*B + C;\\n vec2 c = a * 2.0;\\n vec2 d = A - pos;\\n float kk = 1.0/dot(b,b);\\n float kx = kk * dot(a,b);\\n float ky = kk * (2.0*dot(a,a)+dot(d,b)) / 3.0;\\n float kz = kk * dot(d,a); \\n float res = 0.0;\\n float p = ky - kx*kx;\\n float p3 = p*p*p;\\n float q = kx*(2.0*kx*kx-3.0*ky) + kz;\\n float h = q*q + 4.0*p3;\\n if( h >= 0.0) \\n { \\n h = sqrt(h);\\n vec2 x = (vec2(h,-h)-q)/2.0;\\n vec2 uv = sign(x)*pow(abs(x), vec2(1.0/3.0));\\n float t = clamp( uv.x+uv.y-kx, 0.0, 1.0 );\\n res = dot2(d + (c + b*t)*t);\\n }\\n else\\n {\\n float z = sqrt(-p);\\n float v = acos( q/(p*z*2.0) ) / 3.0;\\n float m = cos(v);\\n float n = sin(v)*1.732050808;\\n vec3 t = clamp(vec3(m+m,-n-m,n-m)*z-kx,0.0,1.0);\\n res = min( dot2(d+(c+b*t.x)*t.x),\\n dot2(d+(c+b*t.y)*t.y) );\\n // the third root cannot be the closest\\n // res = min(res,dot2(d+(c+b*t.z)*t.z));\\n }\\n return sqrt( res );\\n}\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \"signed distance\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 BOX_BLUE = vec3(28.0, 42.0, 99.0) / 255.0;\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\nconst vec3 METAL_GREY = vec3(0.3, 0.3, 0.3);\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22 + sceneVariables.x * 0.5;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 macaroniScene(vec3 p) {\\n vec3 repP = opLimitedRepetition(\\n p,\\n (5.0 + sceneVariables.x * 0.1) * sceneVariables.y,\\n vec3(4.0, 4.0, 4.0)\\n );\\n\\n repP = rotate(repP, -normalize(vec3(1, 1, 0)), beat * 0.25);\\n\\n vec4 repMacaroni = macaroni(repP, true);\\n // Make space for the special macaroni by cutting a hole in the middle\\n // using boxSDF and opSubtraction\\n float macaroniSubBox = boxSDF(p, vec3(1.5, 1.5, 1.5));\\n repMacaroni.x = opSubtraction(macaroniSubBox, repMacaroni.x);\\n\\n vec3 macP = rotate(p, normalize(vec3(1, 1, 0)), now);\\n float distortStrength = sceneVariables.z * 0.8;\\n\\n macP.x += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).x * distortStrength;\\n macP.y += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).y * distortStrength;\\n macP.z += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).z * distortStrength;\\n\\n vec4 scene = unionColor(\\n repMacaroni,\\n macaroni(macP, true)\\n );\\n\\n scene.x -= (1.0 - sceneVariables.y) * 0.2;\\n\\n return scene;\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n switch (sceneId) {\\n case SCENE_BLACK:\\n return vec4(MAX_DIST, MAT_BLACK, 0, 0);\\n case SCENE_MACARONI_FLYBY:\\n return macaroniScene(p);\\n default: break;\\n }\\n\\n return vec4(MAX_DIST, MAT_BLACK, 0, 0);\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nfloat shadow( in vec3 ro, in vec3 rd, float mint, float maxt )\\n{\\n float t = mint;\\n for( int i=0; i<256 && ttmax ) break;\\n }\\n return clamp( res, 0.0, 1.0 );\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n vec3 fogColor = lighting.fogColor;\\n const float MAX_FOG_DARKENING = 0.2;\\n const float FOG_DARKENING_START = -2.0;\\n const float FOG_DARKENING_END = -10.0;\\n\\n // Slightly darken when below horizon (y < FOG_DARKENING_START)\\n // Max darkness (MAX_FOG_DARKENING) at FOG_DARKENING_END\\n\\n float darken = smoothstep(FOG_DARKENING_START, FOG_DARKENING_END, pos.y);\\n darken *= MAX_FOG_DARKENING;\\n return mix(fogColor, fogColor * darken, darken);\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf, out vec3 pos) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n pos = eye + dir * MAX_DIST;\\n // Didn\\'t hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n pos = p;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.05, lighting.fogDensity));\\n vec3 fogColor = fogColor(pos);\\n\\n color = mix(fogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord, out vec3 pos, out vec2 velocity)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n //vec2 xy = fragCoord - resolution.xy / 2.0;\\n mat3 currentCamera = lookAt(camera.position + vec3(0.0, 0.04, 0.0) * sceneVariables.z , camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n\t//vec3 dir = currentCamera * rayDirection(45.0, resolution.xy, fragCoord);\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor, pos);\\n\\n velocity = vec2(0.0);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec3 pos;\\n vec4 frag = mainImage(gl_FragCoord.xy, pos, depth.xy);\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n //fragColor = vec4(gl_FragDepth, gl_FragDepth, gl_FragDepth, 1.0);\\n}';\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n this.addTextureUniform(\"textureMetal\", resources.textures.metal);\n this.addTextureUniform(\"textureMetalNormal\", resources.textures.metalNormal);\n }\n}\n\n\n\n\nclass $c452756be1f5a68d$export$a416f783576d89ce extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = \"#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 200.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BG = 0u;\\nconst uint MAT_MACARONI = 1u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nuniform sampler2D splashBg;\\nuniform sampler2D splashFg;\\nuniform sampler2D splashMask;\\nuniform sampler2D sparkle;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \\\"signed distance\\\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\n\\nvec4 macaroni(vec3 p, bool hollow, float progress) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22 * progress;\\n vec2 w = vec2(d, abs(p.z) - h);\\n\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: unused\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n if (sceneVariables.x <= 0.0) {\\n return vec4(MAX_DIST, MAT_BG, 0, 0);\\n }\\n\\n p.y -= 0.25;\\n p.y += sceneVariables.z;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * 0.5 + sceneVariables.y * 0.5);\\n p = rotate(p, vec3(0, 0, 1), PI * 0.5);\\n\\n float progress = sceneVariables.x;\\n return macaroni(p, true, progress);\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BG, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BG, 0, 0);\\n}\\n\\nfloat shadow( in vec3 ro, in vec3 rd, float mint, float maxt )\\n{\\n float t = mint;\\n for( int i=0; i<256 && ttmax ) break;\\n }\\n return clamp( res, 0.0, 1.0 );\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal) *\\n softshadow(p, lighting.light1.position, 0.02, 2.0, 8.0);\\n\\n return color;\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n vec3 pos = eye + dir * MAX_DIST;\\n // Didn't hit anything\\n\t\treturn vec4(vec3(1.0), -1.0);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BG:\\n return vec4(vec3(1.0), -1.0);\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n // color *= shadow;\\n break;\\n\\n default: break;\\n }\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n mat3 currentCamera = lookAt(camera.position, camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n\\n vec4 splashSample = texture(splashBg, screenPos);\\n vec4 frag = splashSample;\\n vec4 maskSample = texture(splashMask, screenPos);\\n\\n if (maskSample.a > 0.0) {\\n vec4 sceneSample = mainImage(gl_FragCoord.xy);\\n frag = mix(splashSample, sceneSample, maskSample.a);\\n }\\n\\n vec4 splashFrontSample = texture(splashFg, screenPos);\\n frag = mix(frag, splashFrontSample, splashFrontSample.a);\\n\\n if (sceneVariables.w > 0.0) {\\n // this is the center position - we want the sparkle to stay focused even when size changes\\n vec2 sparkleOffset = vec2(0.6, 0.6);\\n vec2 sparkleSize = vec2(0.6, 1.5) * sceneVariables.w;\\n // sample sparkle texture when we are within its area\\n // we don't want the texture to repeat!!\\n vec2 sparklePos = screenPos - sparkleOffset + sparkleSize / 2.0;\\n\\n if (sparklePos.x > 0.0 && sparklePos.x < sparkleSize.x && sparklePos.y > 0.0 && sparklePos.y < sparkleSize.y) {\\n // compute uv for sparkle texture using sparklePos and sparkleSize\\n vec2 uv = sparklePos / sparkleSize;\\n vec4 sparkleSample = texture(sparkle, uv);\\n // mix sparkleSample with frag\\n frag = mix(frag, sparkleSample, sparkleSample.a);\\n }\\n }\\n\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n}\";\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n this.addTextureUniform(\"splashBg\", resources.textures.splashBg);\n this.addTextureUniform(\"splashFg\", resources.textures.splashFg);\n this.addTextureUniform(\"splashMask\", resources.textures.splashMask);\n this.addTextureUniform(\"sparkle\", resources.textures.sparkle);\n }\n}\n\n\n\n// Utility class for defining piecewise-defined functions,\n// and evaluating them at arbitrary points.\n// Both inputs and outputs can be arbitrary numbers, and the user can\n// provide an interpolation function for each piecewise segment.\nclass $116a10768a0cf0f3$export$53aecc733b0740db {\n addSegment(start, end, compute) {\n this.segments.push([\n start,\n end,\n compute\n ]);\n return this;\n }\n evaluate(x) {\n if (this.segments.length === 0) throw new Error(\"PieceFn has no segments\");\n let segment = this.segments[0];\n // Find the segment that x is in\n for(let i = 1; i < this.segments.length; i++)if (x >= this.segments[i][0]) segment = this.segments[i];\n // clamp x to the segment\n x = Math.max(segment[0], Math.min(segment[1], x));\n // Evaluate the segment\n const [start, end, interpolate] = segment;\n const t = (x - start) / (end - start);\n return interpolate(t);\n }\n constructor(){\n this.segments = [];\n }\n}\nclass $116a10768a0cf0f3$export$4a1642c9a00726c6 {\n addSegment(start, end, compute) {\n this.segments.push([\n start,\n end,\n compute\n ]);\n return this;\n }\n evaluate(x) {\n let result = 0;\n for (const segment of this.segments){\n const [start, end, interpolate] = segment;\n if (x > end) result += interpolate(1);\n else if (x > start) {\n const t = (x - start) / (end - start);\n result += interpolate(t);\n break;\n }\n }\n return result;\n }\n constructor(){\n this.segments = [];\n }\n}\nclass $116a10768a0cf0f3$export$59484fe0bce7d7b6 {\n constructor(steps){\n this.steps = steps;\n // Each beat contains 4 steps\n // We want steps to be divisable by 4 to keep things simpler\n if (steps.length % 4 !== 0) throw new Error(\"Steps must be divisible by 4\");\n }\n evaluate(now) {\n // Convert from beats to steps\n now *= 4;\n const stepIndex = Math.floor(now);\n const step = this.steps[stepIndex % this.steps.length];\n return step;\n }\n}\nclass $116a10768a0cf0f3$export$4f407eeb39521c59 {\n constructor(attackTime, releaseTime, steps){\n this.attackTime = attackTime;\n this.releaseTime = releaseTime;\n this.steps = steps;\n this.currentStepIndex = undefined;\n this.currentStepStartTime = undefined;\n // Each beat contains 4 steps\n // We want steps to be divisable by 4 to keep things simpler\n if (steps.length % 4 !== 0) throw new Error(\"Steps must be divisible by 4\");\n }\n evaluate(now) {\n // Convert from beats to steps\n now *= 4;\n // Warped, reset state\n if (this.currentStepStartTime && this.currentStepStartTime > now) {\n this.currentStepStartTime = undefined;\n this.currentStepIndex = undefined;\n }\n const stepIndex = Math.floor(now);\n const step = this.steps[stepIndex % this.steps.length];\n // If this is a new on step, reset the timer\n if (step === 1 && this.currentStepIndex !== stepIndex) {\n this.currentStepIndex = stepIndex;\n this.currentStepStartTime = now;\n }\n // Compute the value\n if (!this.currentStepStartTime) return 0;\n const attackEndTime = this.currentStepStartTime + this.attackTime;\n const releaseEndTime = attackEndTime + this.releaseTime;\n if (now < attackEndTime) return (now - this.currentStepStartTime) / this.attackTime;\n else if (now < releaseEndTime) return 1 - (now - attackEndTime) / this.releaseTime;\n else return 0;\n }\n}\n\n\n\nconst $0b0b5258dcf58045$var$SCENE_DEFAULT = 0;\nconst $0b0b5258dcf58045$export$ec53dc7f7efdb6d9 = {\n ambient: [\n 0.2,\n 0.2,\n 0.2\n ],\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n intensity: [\n 0.5,\n 0.55,\n 0.6\n ]\n },\n cameraLightIntensity: [\n 0.5,\n 0.55,\n 0.6\n ],\n fogColor: [\n 0.1098039216,\n 0.1647058824,\n 0.3882352941\n ],\n fogDensity: 1.5\n};\nconst $0b0b5258dcf58045$var$introFadeInOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 8, (t)=>1 - t).addSegment(24, 32, (t)=>t);\nconst $0b0b5258dcf58045$var$macaroniGrow = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 14, ()=>0).addSegment(14, 16, (t)=>(0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t));\nconst $0b0b5258dcf58045$var$macaroniRotate = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 14, ()=>0).addSegment(14, 16, (t)=>(0, $73a175dd57760e2d$export$3daa4a78f444687d)(t) * Math.PI * 2);\nconst $0b0b5258dcf58045$var$macaroniYOffset = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 18, (t)=>Math.sin(t * 8.0 * Math.PI) * 0.05).addSegment(18, 0, ()=>0);\nconst $0b0b5258dcf58045$var$sparkleSize = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 8, ()=>0).addSegment(16, 18, (t)=>1.0 - (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t));\nconst $0b0b5258dcf58045$export$85f2f34eb806ade4 = (0, $b62e014a4102e0be$export$499f63eb5439a1d5)({\n name: \"Intro\",\n sceneId: $0b0b5258dcf58045$var$SCENE_DEFAULT,\n length: 32,\n lighting: $0b0b5258dcf58045$export$ec53dc7f7efdb6d9,\n shader: \"intro\",\n effects: {\n enable: [\n \"vhs\"\n ]\n },\n variables: (ctx)=>{\n return [\n $0b0b5258dcf58045$var$macaroniGrow.evaluate(ctx.sceneNowInBeats),\n $0b0b5258dcf58045$var$macaroniRotate.evaluate(ctx.sceneNowInBeats),\n $0b0b5258dcf58045$var$macaroniYOffset.evaluate(ctx.sceneNowInBeats),\n $0b0b5258dcf58045$var$sparkleSize.evaluate(ctx.sceneNowInBeats)\n ];\n }\n});\n$0b0b5258dcf58045$export$85f2f34eb806ade4.addSequence([\n {\n length: 32,\n camera: {\n position: [\n 0,\n 0,\n -5\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n fade: (t)=>[\n 0,\n 0,\n 0,\n $0b0b5258dcf58045$var$introFadeInOut.evaluate(t.sceneContext.sceneNowInBeats)\n ]\n }\n]);\n\n\n\n\n\n\n// Based on https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline#Code_example_in_Unity_C#\n\n\nfunction $b89db7732a88877c$var$knotInterval(p0, p1, alpha = 0.5) {\n const squaredMagnitude = (0, $ab7f6dc0910e1ef7$exports).squaredDistance(p0, p1);\n return Math.pow(squaredMagnitude, 0.5 * alpha);\n}\nfunction $b89db7732a88877c$var$remap(a, b, c, d, u) {\n const thing1 = (u - a) / (b - a);\n return [\n (0, $73a175dd57760e2d$export$3a89f8d6f6bf6c9f)(c[0], d[0], thing1),\n (0, $73a175dd57760e2d$export$3a89f8d6f6bf6c9f)(c[1], d[1], thing1),\n (0, $73a175dd57760e2d$export$3a89f8d6f6bf6c9f)(c[2], d[2], thing1)\n ];\n}\nfunction $b89db7732a88877c$export$8086d9b98e87a976(p0, p1, p2, p3, alpha = 0.5) {\n // calculate knots\n const k0 = 0;\n const k1 = $b89db7732a88877c$var$knotInterval(p0, p1, alpha) + k0;\n const k2 = $b89db7732a88877c$var$knotInterval(p1, p2, alpha) + k1;\n const k3 = $b89db7732a88877c$var$knotInterval(p2, p3, alpha) + k2;\n // evaluate point at t\n return (t)=>{\n const u = (0, $73a175dd57760e2d$export$3a89f8d6f6bf6c9f)(k1, k2, t);\n const A1 = $b89db7732a88877c$var$remap(k0, k1, p0, p1, u);\n const A2 = $b89db7732a88877c$var$remap(k1, k2, p1, p2, u);\n const A3 = $b89db7732a88877c$var$remap(k2, k3, p2, p3, u);\n const B1 = $b89db7732a88877c$var$remap(k0, k2, A1, A2, u);\n const B2 = $b89db7732a88877c$var$remap(k1, k3, A2, A3, u);\n return $b89db7732a88877c$var$remap(k1, k2, B1, B2, u);\n };\n}\n\n\n\nfunction $0894ac0ead577123$var$catmullRom(t, p0, p1, p2, p3) {\n const t2 = t * t;\n const a0 = -0.5 * p0 + 1.5 * p1 - 1.5 * p2 + 0.5 * p3;\n const a1 = p0 - 2.5 * p1 + 2 * p2 - 0.5 * p3;\n const a2 = -0.5 * p0 + 0.5 * p2;\n const a3 = p1;\n return a0 * t * t2 + a1 * t2 + a2 * t + a3;\n}\nfunction $0894ac0ead577123$var$catmullRomVec3(t, p0, p1, p2, p3) {\n if ((0, $ab7f6dc0910e1ef7$exports).equals(p1, p2)) return p1;\n return (0, $b89db7732a88877c$export$8086d9b98e87a976)(p0, p1, p2, p3)(t);\n}\nfunction $0894ac0ead577123$var$interpolatePoints(keyframes, // Time is normalized to [0, 1]\nnormalizedTime) {\n // Since we are using centripetal catmull-rom, we can't just use the length of the keyframes\n const totalSegments = keyframes.length - 3;\n const fraction = normalizedTime * totalSegments;\n const currentFrameIndex = Math.trunc(fraction) + 1;\n const t = fraction - Math.trunc(fraction);\n const nextFrameIndex = currentFrameIndex + 1;\n const previousFrameIndex = currentFrameIndex - 1;\n const nextFrame2Index = currentFrameIndex + 2;\n const previousFrame = keyframes[previousFrameIndex];\n const currentFrame = keyframes[currentFrameIndex];\n const nextFrame = keyframes[nextFrameIndex];\n const nextFrame2 = keyframes[nextFrame2Index];\n const position = $0894ac0ead577123$var$catmullRomVec3(t, previousFrame.camera.position, currentFrame.camera.position, nextFrame.camera.position, nextFrame2.camera.position);\n const target = $0894ac0ead577123$var$catmullRomVec3(t, previousFrame.camera.target, currentFrame.camera.target, nextFrame.camera.target, nextFrame2.camera.target);\n const rotationY = $0894ac0ead577123$var$catmullRom(t, previousFrame.camera.rotationY ?? 0, currentFrame.camera.rotationY ?? 0, nextFrame.camera.rotationY ?? 0, nextFrame2.camera.rotationY ?? 0);\n const zoom = $0894ac0ead577123$var$catmullRom(t, previousFrame.camera.zoom ?? 1, currentFrame.camera.zoom ?? 1, nextFrame.camera.zoom ?? 1, nextFrame2.camera.zoom ?? 1);\n const roll = $0894ac0ead577123$var$catmullRom(t, previousFrame.camera.roll ?? 0, currentFrame.camera.roll ?? 0, nextFrame.camera.roll ?? 0, nextFrame2.camera.roll ?? 0);\n return {\n position: position,\n target: target,\n rotationY: rotationY,\n zoom: zoom,\n roll: roll\n };\n}\nfunction $0894ac0ead577123$export$760aff21c00b2f35(frames) {\n const keyframes = frames.map((camera)=>({\n camera: camera\n }));\n if (keyframes.length < 4) throw new Error(\"At least 4 keyframes are required\");\n function evaluate(normalizedTime) {\n const newCamera = $0894ac0ead577123$var$interpolatePoints(keyframes, normalizedTime);\n if ((0, $1669b27dd88d6d65$export$2fbeab44c6eca323)(newCamera.position)) console.error(\"Nans in camera position\", newCamera);\n if ((0, $1669b27dd88d6d65$export$2fbeab44c6eca323)(newCamera.target)) console.error(\"Nans in camera target\", newCamera);\n return newCamera;\n }\n return {\n keyframes: keyframes,\n evaluate: evaluate\n };\n}\n\n\n\n\nconst $c022a9f57a36fe70$var$SCENE_BLACK = 0;\nconst $c022a9f57a36fe70$var$SCENE_MACARONI_FACTORY = 1;\nconst $c022a9f57a36fe70$var$SCENE_TUBE = 2;\nconst $c022a9f57a36fe70$var$SCENE_MACARONI_FLYBY = 3;\nconst $c022a9f57a36fe70$var$SCENE_LASAGA_WORLD = 4;\nconst $c022a9f57a36fe70$var$SCENE_TESSERACT = 5;\nconst $c022a9f57a36fe70$export$ec53dc7f7efdb6d9 = {\n ambient: [\n 0.2,\n 0.2,\n 0.2\n ],\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n intensity: [\n 0.5,\n 0.55,\n 0.6\n ]\n },\n cameraLightIntensity: [\n 0.5,\n 0.55,\n 0.6\n ],\n fogColor: [\n 0.1098039216,\n 0.1647058824,\n 0.3882352941\n ],\n fogDensity: 1.5\n};\nconst $c022a9f57a36fe70$var$factoryLighting = {\n ...$c022a9f57a36fe70$export$ec53dc7f7efdb6d9,\n fogDensity: 1.4,\n fogColor: [\n 0.13,\n 0.1,\n 0.1\n ],\n light1: {\n position: [\n 0,\n -10,\n 0\n ],\n intensity: [\n 1.0,\n 0,\n 0.1\n ]\n },\n ambient: [\n 0.15,\n 0.15,\n 0.15\n ]\n};\nconst $c022a9f57a36fe70$var$moldArmFn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)()// From 0 to 24 beats, the mold is open (3)\n.addSegment(0, 24, ()=>3)// From 56 to 64 beats, the mold closes (3 -> 0)\n.addSegment(56, 64, (t)=>3 - (0, $73a175dd57760e2d$export$24656b269d8df7d6)(t) * 3)// From 68 to 76, the mold opens (0 -> 30)\n.addSegment(68, 76, (t)=>(0, $73a175dd57760e2d$export$90385d25e9dc632d)(t) * 30);\nconst $c022a9f57a36fe70$var$doughPosFn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)()// Dough balls approach between 0 and 48 beats\n.addSegment(0, 48, (t)=>0.5 - (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t) * 0.5)// When turned to macaroni, stay up for a moment\n.addSegment(64, 80, ()=>0)// And then start falling down\n.addSegment(76, 96, (t)=>(0, $73a175dd57760e2d$export$887f6c7954385bcf)(Math.pow(t, 1.0005)));\nconst $c022a9f57a36fe70$var$doughOrMacaroniFn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 64, ()=>0)// Turn to macaroni at 64 beats\n.addSegment(64, 128, ()=>1);\nconst $c022a9f57a36fe70$var$defaultFadeIn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 8, (t)=>1 - t);\nconst $c022a9f57a36fe70$var$mainSceneEndFadeOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(84, 88, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$sceneYRotation = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 80, ()=>0).addSegment(80, 88, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$mainScene = (0, $b62e014a4102e0be$export$499f63eb5439a1d5)({\n name: \"Macaroni Factory\",\n shader: \"macaroniFactory\",\n sceneId: $c022a9f57a36fe70$var$SCENE_MACARONI_FACTORY,\n length: 96,\n lighting: {\n ...$c022a9f57a36fe70$var$factoryLighting\n },\n variables: (ctx)=>{\n const moldArmPos = $c022a9f57a36fe70$var$moldArmFn.evaluate(ctx.sceneNowInBeats);\n const doughPos = $c022a9f57a36fe70$var$doughPosFn.evaluate(ctx.sceneNowInBeats);\n const doughOrMacaroni = $c022a9f57a36fe70$var$doughOrMacaroniFn.evaluate(ctx.sceneNowInBeats);\n const yRotation = $c022a9f57a36fe70$var$sceneYRotation.evaluate(ctx.sceneNowInBeats);\n return [\n moldArmPos,\n doughOrMacaroni,\n doughPos,\n yRotation\n ];\n }\n}).addSequence([\n {\n // Flyby from above\n length: 24,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 10,\n 0,\n 25\n ],\n target: [\n 0,\n 0,\n -30\n ]\n },\n {\n position: [\n 10,\n 3,\n 30\n ],\n target: [\n -2,\n 0,\n -31\n ]\n },\n {\n position: [\n 10,\n 8,\n 0\n ],\n target: [\n -2,\n 5,\n -32\n ]\n },\n {\n position: [\n 10,\n 2,\n 0\n ],\n target: [\n -2,\n -5,\n -30\n ]\n }\n ]),\n fade: (t)=>[\n 0,\n 0,\n 0,\n $c022a9f57a36fe70$var$defaultFadeIn.evaluate(t.sceneContext.sceneNowInBeats)\n ],\n text: [\n {\n text: \"HYVINKAEAE\",\n position: [\n 0.9,\n -0.7\n ],\n font: \"novarese\",\n align: \"right\",\n timing: {\n enter: 4,\n exit: 24\n },\n type: \"horizontal\"\n },\n {\n text: \"2023\",\n position: [\n 0.86,\n -0.8\n ],\n timing: {\n enter: 4,\n exit: 24\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"right\",\n type: \"horizontal\"\n },\n {\n text: \"?\",\n position: {\n from: [\n 1.1,\n -0.8\n ],\n to: [\n 0.9,\n -0.8\n ],\n ease: (t)=>(0, $73a175dd57760e2d$export$1157fb72e7fbceb5)((0, $1669b27dd88d6d65$export$5c5ee632c52bc4a2)(t * 4.0))\n },\n timing: {\n enter: 8,\n exit: 24\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"right\",\n type: \"horizontal\"\n }\n ]\n },\n {\n assertStart: 24,\n length: 46,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 10,\n 1,\n 20\n ],\n target: [\n -31,\n 0,\n 30\n ]\n },\n {\n position: [\n 10,\n 2,\n 20\n ],\n target: [\n -30,\n 0,\n 30\n ]\n },\n {\n position: [\n 10,\n 2,\n 50\n ],\n target: [\n -30,\n 2,\n 30\n ]\n },\n {\n position: [\n -10,\n 10,\n 50\n ],\n target: [\n 0,\n 2,\n 0\n ],\n zoom: 1.0\n },\n {\n position: [\n -15,\n 7,\n 20\n ],\n target: [\n 0,\n 1,\n 0\n ],\n zoom: 2.0\n },\n {\n position: [\n -10,\n 4,\n 20\n ],\n target: [\n 0,\n 0.5,\n 0\n ],\n zoom: 2.0\n },\n {\n position: [\n 0,\n 5,\n 5\n ],\n target: [\n 0,\n 0,\n 1\n ]\n }\n ]),\n text: [\n {\n text: \"CHAPTER 0\",\n position: [\n -0.9,\n 0.8\n ],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 0,\n exit: 24\n },\n type: \"horizontal\"\n },\n {\n text: \"HOW THE MAKARON IS MADE\",\n position: [\n -0.9,\n 0.7\n ],\n timing: {\n enter: 0,\n exit: 24\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n }\n ]\n },\n {\n assertStart: 70,\n length: 4,\n camera: {\n position: [\n 5,\n 5,\n 10\n ],\n target: [\n 0,\n 0,\n 0\n ]\n }\n },\n {\n length: 22,\n assertStart: 74,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 5,\n 6,\n 10\n ],\n target: [\n 0,\n 1,\n 0\n ]\n },\n {\n position: [\n 5,\n 5,\n 10\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n {\n position: [\n 0,\n 10,\n 2\n ],\n target: [\n 0,\n -10,\n 0\n ]\n },\n {\n position: [\n 0,\n -10,\n 0\n ],\n target: [\n 0,\n -11,\n 0\n ]\n },\n {\n position: [\n 0,\n -50,\n 0\n ],\n target: [\n 0,\n -50,\n 0\n ]\n },\n {\n position: [\n 0,\n -55,\n 0\n ],\n target: [\n 0,\n -100,\n 0\n ]\n }\n ]),\n fade: (t)=>[\n 0,\n 0,\n 0,\n $c022a9f57a36fe70$var$mainSceneEndFadeOut.evaluate(t.sceneContext.sceneNowInBeats)\n ],\n text: [\n {\n text: \"CHAPTER 1\",\n position: [\n -0.9,\n 0.8\n ],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 8,\n exit: 22\n },\n type: \"horizontal\"\n },\n {\n text: \"THE FALL\",\n position: [\n -0.9,\n 0.7\n ],\n timing: {\n enter: 8,\n exit: 22\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n }\n ]\n }\n]);\n// prettier-ignore\nconst $c022a9f57a36fe70$var$synthPattern = [\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n];\n// prettier-ignore\nconst $c022a9f57a36fe70$var$subPattern = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n];\nconst $c022a9f57a36fe70$var$synthPatternFuzz = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(0.5, 2, $c022a9f57a36fe70$var$synthPattern);\nconst $c022a9f57a36fe70$var$synthPatternLight = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(1, 8, $c022a9f57a36fe70$var$synthPattern);\nconst $c022a9f57a36fe70$var$synthPatternLight2 = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(0.5, 16, $c022a9f57a36fe70$var$synthPattern);\nconst $c022a9f57a36fe70$var$subPatternFuzz = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(1, 8, $c022a9f57a36fe70$var$subPattern);\nconst $c022a9f57a36fe70$var$subPatternPump = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(0.5, 8, $c022a9f57a36fe70$var$subPattern);\nconst $c022a9f57a36fe70$var$tunnelExpand = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>0).addSegment(16, 32, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t)).addSegment(32, 48, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$tunnelEndGlitchIntoNothingness = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>0).addSegment(32, 48, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t) * 0.1).addSegment(56, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$tunnelEndInstant = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>0).addSegment(48, 64, (t)=>1.0);\nconst $c022a9f57a36fe70$var$tunnelFadeToWhite = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 62, ()=>0).addSegment(62, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$tunnelFadeIn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 2, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t)).addSegment(2, 32, ()=>0);\nconst $c022a9f57a36fe70$var$tubeScene = $c022a9f57a36fe70$var$mainScene.then({\n sceneId: $c022a9f57a36fe70$var$SCENE_TUBE,\n shader: \"macaroniFactory\",\n length: 64,\n name: \"Through the tube\",\n lighting: {\n // @ts-ignore\n ambient: (ctx)=>{\n const endLight = [\n 0.9,\n 0.9,\n 1.0\n ];\n return (0, $ab7f6dc0910e1ef7$exports).lerp([\n 0,\n 0,\n 0\n ], $c022a9f57a36fe70$var$factoryLighting.ambient, endLight, $c022a9f57a36fe70$var$tunnelEndGlitchIntoNothingness.evaluate(ctx.sceneNowInBeats) * 0.05);\n },\n cameraLightIntensity: [\n 0.1,\n 0.1,\n 0.1\n ],\n // @ts-ignore\n fogColor: (ctx)=>{\n // White fog at the end\n const endFog = [\n 1.0,\n 1.0,\n 1.0\n ];\n return (0, $ab7f6dc0910e1ef7$exports).lerp([\n 0,\n 0,\n 0\n ], $c022a9f57a36fe70$var$factoryLighting.fogColor, endFog, $c022a9f57a36fe70$var$tunnelEndInstant.evaluate(ctx.sceneNowInBeats));\n },\n fogDensity: (ctx)=>{\n return (0, $73a175dd57760e2d$export$3a89f8d6f6bf6c9f)($c022a9f57a36fe70$var$factoryLighting.fogDensity, 0.8, $c022a9f57a36fe70$var$tunnelEndInstant.evaluate(ctx.sceneNowInBeats));\n },\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n // @ts-ignore\n intensity: (ctx)=>{\n const kickSignal = $c022a9f57a36fe70$var$synthPatternLight.evaluate(ctx.sceneNowInBeats);\n return (0, $ab7f6dc0910e1ef7$exports).scale([\n 0,\n 0,\n 0\n ], $c022a9f57a36fe70$var$factoryLighting.light1.intensity, kickSignal);\n }\n }\n },\n variables: (ctx)=>{\n const kickSignal = $c022a9f57a36fe70$var$synthPatternFuzz.evaluate(ctx.sceneNowInBeats);\n const macaroniGlitch = (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(kickSignal) + $c022a9f57a36fe70$var$tunnelEndGlitchIntoNothingness.evaluate(ctx.sceneNowInBeats) * 10.0;\n const tunnelExpansion = $c022a9f57a36fe70$var$tunnelExpand.evaluate(ctx.sceneNowInBeats);\n return [\n macaroniGlitch,\n tunnelExpansion,\n 0,\n 0\n ];\n }\n}).addSequence([\n {\n assertStart: 0,\n text: [\n {\n text: \"MAKARON\",\n position: {\n from: [\n -1.5,\n 0.6\n ],\n to: [\n 0.0,\n 0.0\n ]\n },\n font: \"pasta\",\n params: {\n distortion: 1,\n waviness: 2.1\n },\n type: \"horizontal\"\n },\n {\n text: \"CRISIS\",\n position: {\n from: [\n 1.5,\n -1\n ],\n to: [\n 0.0,\n -0.3\n ]\n },\n font: \"pasta\",\n params: {\n distortion: 1.0,\n waviness: 2.1\n },\n type: \"horizontal\"\n }\n ],\n camera: {\n position: {\n from: [\n -1,\n -1,\n -80\n ],\n to: [\n 1,\n 1.5,\n 0\n ]\n },\n target: {\n from: [\n 0,\n 0,\n 0\n ],\n to: [\n 0,\n 0,\n 10\n ]\n }\n },\n length: 32,\n fade: (ctx)=>{\n const value = $c022a9f57a36fe70$var$tunnelFadeIn.evaluate(ctx.sceneContext.sceneNowInBeats);\n return [\n 0,\n 0,\n 0,\n value\n ];\n }\n },\n {\n assertStart: 32,\n length: 16,\n camera: {\n position: {\n from: [\n 1,\n 2,\n 5\n ],\n to: [\n 0,\n 0,\n 50\n ]\n },\n target: {\n from: [\n 1,\n 0,\n 0\n ],\n to: [\n 0,\n 1,\n -10\n ]\n }\n },\n text: [\n {\n text: \"MAC & CHEESY MUSIC\",\n position: [\n -0.9,\n -0.7\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n },\n {\n text: \"MAKARONI SIZE\",\n position: {\n from: [\n -0.7,\n -0.8\n ],\n to: [\n -0.9,\n -0.8\n ],\n ease: (t)=>(0, $73a175dd57760e2d$export$3daa4a78f444687d)((0, $1669b27dd88d6d65$export$5c5ee632c52bc4a2)(t * 4.0))\n },\n timing: {\n enter: 4,\n exit: 16\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n }\n ]\n },\n {\n assertStart: 48,\n length: 16,\n camera: {\n position: {\n from: [\n 0.1,\n 0,\n -10\n ],\n to: [\n 0.2,\n 0.5,\n -50\n ]\n },\n target: [\n -0.17,\n 0,\n 10\n ]\n },\n backgroundColor: ()=>[\n 1.0,\n 1.0,\n 1.0\n ],\n fade: (ctx)=>{\n const intensity = $c022a9f57a36fe70$var$tunnelFadeToWhite.evaluate(ctx.sceneContext.sceneNowInBeats);\n return [\n 1,\n 1,\n 1,\n intensity\n ];\n },\n text: [\n {\n text: \"SPAGHETTI CODE\",\n position: [\n 0.9,\n 0.7\n ],\n font: \"novarese\",\n align: \"right\",\n params: {\n color: [\n 0.0,\n 0.0,\n 0.0\n ]\n },\n type: \"horizontal\"\n },\n {\n text: \"MAKARONIN HAJUINEN MIES\",\n position: {\n from: [\n 1.1,\n 0.6\n ],\n to: [\n 0.9,\n 0.6\n ],\n ease: (t)=>(0, $73a175dd57760e2d$export$3daa4a78f444687d)((0, $1669b27dd88d6d65$export$5c5ee632c52bc4a2)(t * 4.0))\n },\n timing: {\n enter: 4,\n exit: 16\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"right\",\n params: {\n color: [\n 0.0,\n 0.0,\n 0.0\n ]\n },\n type: \"horizontal\"\n },\n {\n text: \"PENNE HERMANNI\",\n position: {\n from: [\n 1.1,\n 0.52\n ],\n to: [\n 0.9,\n 0.52\n ],\n ease: (t)=>(0, $73a175dd57760e2d$export$3daa4a78f444687d)((0, $1669b27dd88d6d65$export$5c5ee632c52bc4a2)(t * 4.0))\n },\n timing: {\n enter: 5,\n exit: 16\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"right\",\n params: {\n color: [\n 0.0,\n 0.0,\n 0.0\n ]\n },\n type: \"horizontal\"\n }\n ]\n }\n]);\nconst $c022a9f57a36fe70$var$makaronDimensionFadeInOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 4, (t)=>1 - t).addSegment(60, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$compressMakarons = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 48, ()=>1).addSegment(48, 64, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$makaronDimensionFogColor = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>$c022a9f57a36fe70$export$ec53dc7f7efdb6d9.fogColor).addSegment(32, 48, ()=>[\n 0.34,\n 0,\n 0\n ]).addSegment(48, 16, ()=>[\n 0,\n 0.15,\n 0.03\n ]);\nconst $c022a9f57a36fe70$var$makaronDimensionScene = $c022a9f57a36fe70$var$tubeScene.then({\n length: 64,\n lighting: {\n ...$c022a9f57a36fe70$export$ec53dc7f7efdb6d9,\n fogColor: (t)=>$c022a9f57a36fe70$var$makaronDimensionFogColor.evaluate(t.sceneNowInBeats),\n cameraLightIntensity: (ctx)=>{\n return [\n 1.0,\n 1.0,\n 1.0\n ].map(()=>0.7 + $c022a9f57a36fe70$var$synthPatternLight2.evaluate(ctx.sceneNowInBeats) * 2.5);\n }\n },\n name: \"Welcome to Makaron Dimension\",\n sceneId: $c022a9f57a36fe70$var$SCENE_MACARONI_FLYBY,\n shader: \"main\",\n variables: (ctx)=>{\n const subSignal = $c022a9f57a36fe70$var$subPatternFuzz.evaluate(ctx.sceneNowInBeats);\n const compress = $c022a9f57a36fe70$var$compressMakarons.evaluate(ctx.sceneNowInBeats);\n const leadSignal = $c022a9f57a36fe70$var$synthPatternFuzz.evaluate(ctx.sceneNowInBeats);\n return [\n subSignal,\n compress,\n leadSignal,\n 0\n ];\n },\n text: [\n {\n text: \"CHAPTER 2\",\n position: [\n -0.9,\n 0.8\n ],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 8,\n exit: 22\n },\n type: \"horizontal\"\n },\n {\n text: \"THE GATHERING\",\n position: [\n -0.9,\n 0.7\n ],\n timing: {\n enter: 8,\n exit: 22\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n }\n ]\n}).addSequence([\n {\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 0,\n 1.5,\n -20\n ],\n target: [\n 0,\n 0,\n 0\n ],\n rotationY: 0,\n zoom: 0.5\n },\n {\n position: [\n 20,\n -5.5,\n -30\n ],\n target: [\n 0,\n 0,\n 0\n ],\n rotationY: 0\n },\n {\n position: [\n 20,\n -5,\n 50\n ],\n target: [\n 0,\n 0,\n 0\n ],\n rotationY: 0\n },\n {\n position: [\n 20,\n -5.5,\n -30\n ],\n target: [\n 0,\n 0,\n 0\n ],\n rotationY: 0,\n zoom: 2.0\n },\n {\n position: [\n 20,\n -30,\n -20\n ],\n target: [\n 0,\n 0,\n 0\n ],\n rotationY: 0\n }\n ]),\n length: 64,\n backgroundColor: ()=>[\n 8 / 255,\n 29 / 255,\n 74 / 255\n ],\n fade: (ctx)=>[\n 1,\n 1,\n 1,\n $c022a9f57a36fe70$var$makaronDimensionFadeInOut.evaluate(ctx.sceneContext.sceneNowInBeats)\n ]\n }\n]);\nconst $c022a9f57a36fe70$var$compressLasaga = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 48, ()=>1).addSegment(48, 64, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$greetz = \"iquilezles | Jumalauta | Magnetismin Tietokonekerho | Kesaekissakvartetti | Myllyn Paras | Barilla | Rummo | Dekadence | De Cecco | Pirkka Parhaat | Elites\";\nconst $c022a9f57a36fe70$var$macaroniMachineFadeInOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 4, (t)=>1 - t).addSegment(60, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$macaroniMachine = $c022a9f57a36fe70$var$makaronDimensionScene.then({\n length: 64,\n lighting: {\n ...$c022a9f57a36fe70$export$ec53dc7f7efdb6d9,\n fogColor: [\n 0.32,\n 0.03,\n 0.0\n ],\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n intensity: [\n 0.32,\n 0.03,\n 0\n ]\n },\n //cameraLightIntensity: [0.85, 0.41, 0],\n cameraLightIntensity: (ctx)=>{\n const lead = $c022a9f57a36fe70$var$synthPatternLight.evaluate(ctx.sceneNowInBeats);\n const intensity = 0.1 + lead * 0.5;\n return [\n intensity * 1.0,\n intensity,\n intensity * 0.01\n ];\n }\n },\n name: \"Macaroni Machine\",\n shader: \"macaroniMachine\",\n variables: (ctx)=>{\n const subSignal = $c022a9f57a36fe70$var$subPatternPump.evaluate(ctx.sceneNowInBeats);\n return [\n subSignal,\n 0,\n 0,\n 0\n ];\n },\n text: [\n {\n text: \"MAKARONIN YSTAVAET GREETS\",\n position: [\n -0.95,\n 0.8\n ],\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 0,\n exit: 16\n },\n type: \"horizontal\",\n params: {\n color: [\n 0.9,\n 0.79,\n 0.39\n ]\n }\n },\n {\n text: $c022a9f57a36fe70$var$greetz,\n position: {\n from: [\n 10.0,\n -0.8\n ],\n to: [\n -10,\n -0.8\n ]\n },\n font: \"pasta\",\n params: {\n distortion: 1.0,\n waviness: 1.1\n },\n type: \"horizontal\"\n }\n ]\n}).addSequence([\n {\n length: 64,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 1,\n 0,\n 0.0\n ],\n target: [\n 0,\n 0,\n 10\n ]\n },\n {\n position: [\n 1,\n 0,\n 2.0\n ],\n target: [\n 0,\n 0,\n 11\n ]\n },\n {\n position: [\n 1,\n 10.0,\n 2.5\n ],\n target: [\n 0,\n 0,\n 0.75\n ]\n },\n {\n position: [\n 1,\n 10.5,\n 2.5\n ],\n target: [\n 0,\n 0,\n 1\n ]\n }\n ]),\n fade: (ctx)=>{\n return [\n 1,\n 1,\n 1,\n $c022a9f57a36fe70$var$macaroniMachineFadeInOut.evaluate(ctx.sceneContext.sceneNowInBeats)\n ];\n }\n }\n]);\nconst $c022a9f57a36fe70$var$macaroniBoxSize = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 8, (t)=>(0, $73a175dd57760e2d$export$3daa4a78f444687d)(t)).addSegment(8, 30, ()=>1).addSegment(30, 32, (t)=>1.0 - (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t));\nconst $c022a9f57a36fe70$var$macaroniHeartRepeat = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 48, ()=>0).addSegment(48, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\n// prettier-ignore\nconst $c022a9f57a36fe70$var$amenBreakKickPattern = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n];\nconst $c022a9f57a36fe70$var$amenBreakKick = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(0.5, 8, $c022a9f57a36fe70$var$amenBreakKickPattern);\nconst $c022a9f57a36fe70$var$amenBreakKickFilter = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 1, (t)=>t).addSegment(1, 48, ()=>1).addSegment(47, 48, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t)).addSegment(48, 64, (t)=>0);\nconst $c022a9f57a36fe70$var$macaroniBoxSceneFadeOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 62, ()=>0).addSegment(62, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$macaroniBoxScene = $c022a9f57a36fe70$var$macaroniMachine.then({\n length: 64,\n lighting: {\n ...$c022a9f57a36fe70$export$ec53dc7f7efdb6d9,\n fogDensity: 0.5,\n ambient: [\n 0.2,\n 0.2,\n 0.2\n ],\n cameraLightIntensity: [\n 5,\n 5,\n 5\n ],\n light1: {\n position: [\n 0,\n 5,\n 0\n ],\n intensity: [\n 0.9,\n 0.9,\n 0.9\n ].map((x)=>x * 10)\n }\n },\n variables: (ctx)=>{\n return [\n $c022a9f57a36fe70$var$macaroniBoxSize.evaluate(ctx.sceneNowInBeats),\n $c022a9f57a36fe70$var$macaroniHeartRepeat.evaluate(ctx.sceneNowInBeats),\n $c022a9f57a36fe70$var$amenBreakKick.evaluate(ctx.sceneNowInBeats) * $c022a9f57a36fe70$var$amenBreakKickFilter.evaluate(ctx.sceneNowInBeats),\n 0.0\n ];\n },\n name: \"Macaroni Box\",\n shader: \"macaroniBox\",\n text: [\n {\n text: \"MAKARON\",\n position: [\n -0.85,\n -0.2\n ],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 25.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1,\n color: [\n 1.0,\n 0.0,\n 0.0\n ]\n }\n },\n {\n text: \"BOX\",\n position: [\n 0.85,\n 0\n ],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 1.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1\n },\n timing: {\n enter: 0,\n exit: 30\n }\n },\n {\n text: \"DONUT\",\n position: [\n 0.85,\n -0.2\n ],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 1.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1\n },\n timing: {\n enter: 32,\n exit: 46\n }\n },\n {\n text: \"LOVE\",\n position: [\n 0.85,\n -0.2\n ],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 1.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1\n },\n timing: {\n enter: 48,\n exit: 64\n }\n }\n ]\n}).addSequence([\n {\n length: 64,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 20,\n 20,\n -20\n ],\n target: [\n 0,\n 0.0,\n 0\n ]\n },\n {\n position: [\n -20,\n 5,\n 10\n ],\n target: [\n 0,\n 0.0,\n -1\n ]\n },\n {\n position: [\n 5,\n 25,\n -5\n ],\n target: [\n 0,\n 0,\n 0.5\n ]\n },\n {\n position: [\n 5,\n 50,\n -5\n ],\n target: [\n 0,\n 0,\n -1\n ]\n },\n {\n position: [\n 2,\n 50,\n -5\n ],\n target: [\n 0,\n 0,\n 0.5\n ]\n },\n {\n position: [\n 5,\n 80,\n -5\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n {\n position: [\n 100,\n 80,\n -5\n ],\n target: [\n 100,\n 0,\n 0\n ]\n },\n {\n position: [\n 100,\n 85,\n -5\n ],\n target: [\n 100,\n 1,\n 0\n ]\n }\n ]),\n fade: (ctx)=>{\n const value = $c022a9f57a36fe70$var$macaroniBoxSceneFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats);\n return [\n 1.0,\n 1.0,\n 1.0,\n value\n ];\n }\n }\n]);\nconst $c022a9f57a36fe70$var$lasagaFadeInOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 4, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t)).addSegment(4, 60, ()=>0).addSegment(60, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$var$lasagaWorldScene = $c022a9f57a36fe70$var$macaroniBoxScene.then({\n length: 64,\n lighting: {\n ...$c022a9f57a36fe70$export$ec53dc7f7efdb6d9,\n ambient: [\n 0.7843137255,\n 60 / 255,\n 43 / 255\n ],\n cameraLightIntensity: [\n 249 / 255,\n 134 / 255,\n 38 / 255\n ].map((x)=>x * 2.0),\n fogDensity: 2.8,\n light1: {\n position: [\n 0,\n 10,\n 0\n ],\n intensity: [\n 0.7843137255,\n 60 / 255,\n 43 / 255\n ].map((x)=>x * 8.0)\n }\n },\n name: \"Lasaga World\",\n shader: \"lasaga\",\n variables: (ctx)=>{\n const leadSignal = $c022a9f57a36fe70$var$synthPatternFuzz.evaluate(ctx.sceneNowInBeats);\n const compress = $c022a9f57a36fe70$var$compressLasaga.evaluate(ctx.sceneNowInBeats);\n return [\n leadSignal,\n compress,\n 0,\n 0\n ];\n },\n text: [\n {\n text: \"CHAPTER 3\",\n position: [\n -0.9,\n 0.8\n ],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 8,\n exit: 22\n },\n type: \"horizontal\"\n },\n {\n text: \"FLIGHT TO FREEDOM\",\n position: [\n -0.9,\n 0.7\n ],\n timing: {\n enter: 8,\n exit: 22\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n }\n ]\n}).addSequence([\n {\n length: 64,\n fade: (ctx)=>{\n const intensity = $c022a9f57a36fe70$var$lasagaFadeInOut.evaluate(ctx.sceneContext.sceneNowInBeats);\n return [\n 1,\n 1,\n 1,\n intensity\n ];\n },\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 20,\n 20,\n -20\n ],\n target: [\n 0,\n 8.0,\n 0\n ]\n },\n {\n position: [\n -20,\n 1,\n 10\n ],\n target: [\n 0,\n 5.0,\n 0\n ],\n zoom: 0.5\n },\n {\n position: [\n 25,\n 12,\n 15\n ],\n target: [\n 0,\n 1,\n 0\n ]\n },\n {\n position: [\n 5,\n 24,\n -5\n ],\n target: [\n 0,\n 0,\n 0\n ],\n zoom: 1.3\n },\n {\n position: [\n 5,\n 45,\n -5\n ],\n target: [\n 0,\n 2,\n 0\n ]\n }\n ])\n }\n]);\nconst $c022a9f57a36fe70$var$whiteFlashFn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 2, (t)=>1 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t)).addSegment(10, 12, (t)=>Math.abs(Math.sin(t * Math.PI * 4))).addSegment(12, 20, ()=>0).addSegment(22, 24, (t)=>Math.abs(Math.sin(t * Math.PI * 16))).addSegment(30, 32, (t)=>Math.abs(Math.sin(t * Math.PI * 8))).addSegment(32, 50, ()=>0);\nconst $c022a9f57a36fe70$var$beatFlash = new (0, $116a10768a0cf0f3$export$4f407eeb39521c59)(0.5, 8, // prettier-ignore\n[\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n]);\nconst $c022a9f57a36fe70$var$tesseractBendFn = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>0).addSegment(32, 64, (t)=>0.1 + (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)((0, $73a175dd57760e2d$export$887f6c7954385bcf)(t)) * 0.1);\nconst $c022a9f57a36fe70$var$tesseractBendFn2 = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>0).addSegment(32, 48, (t)=>t * 1.0).addSegment(48, 56, (t)=>3 + t).addSegment(56, 64, (t)=>4 + (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t) * 3.0);\nconst $c022a9f57a36fe70$var$tesseractRingDistance = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)()// From 8 to 4\n.addSegment(0, 4, (t)=>16.0 - (0, $73a175dd57760e2d$export$5da70c9577229d30)(t) * 12.0)// From 4 to 2\n.addSegment(4, 5, (t)=>4.0 - (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t) * 2.0)// From 2 to 3\n.addSegment(5, 8, (t)=>2.0 + (0, $73a175dd57760e2d$export$24656b269d8df7d6)(t))// From 3 to 2\n.addSegment(8, 10, (t)=>3.0 - (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t))// And back to 4\n.addSegment(10, 12, (t)=>2.0 + (0, $73a175dd57760e2d$export$5da70c9577229d30)(t) * 2.0)// 4 to 2\n.addSegment(24, 32, (t)=>4.0 - (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)(t) * 2.0);\nconst $c022a9f57a36fe70$var$tesseractRingVerticalDistance = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 10, ()=>0.0).addSegment(10, 12, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t) * 2.0).addSegment(32, 64, (t)=>2 + Math.sin(t * 3.0));\nconst $c022a9f57a36fe70$var$tesseractRingAngle = new (0, $116a10768a0cf0f3$export$4a1642c9a00726c6)().addSegment(0, 4, (t)=>t * Math.PI * 4.0)// And slow down even more (0.25 to 0.15)\n.addSegment(4, 8, (t)=>t * Math.PI * 2.0).addSegment(8, 12, (t)=>t * Math.PI * 1.5).addSegment(12, 16, (t)=>t * Math.PI * 1.1).addSegment(16, 24, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t) * Math.PI * 0.9).addSegment(24, 32, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t) * Math.PI * 0.5);\nconst $c022a9f57a36fe70$var$tesseractFadeOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 60, ()=>0).addSegment(60, 64, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $c022a9f57a36fe70$export$d8cc95e653be71f0 = $c022a9f57a36fe70$var$lasagaWorldScene.then({\n length: 64,\n lighting: {\n ...$c022a9f57a36fe70$export$ec53dc7f7efdb6d9,\n fogDensity: 0.5,\n cameraLightIntensity: (ctx)=>{\n const beatSignal = $c022a9f57a36fe70$var$beatFlash.evaluate(ctx.sceneNowInBeats);\n return (0, $ab7f6dc0910e1ef7$exports).add([\n 0,\n 0,\n 0\n ], [\n 0.1,\n 0.1,\n 0.1\n ], (0, $ab7f6dc0910e1ef7$exports).scale([\n 0,\n 0,\n 0\n ], [\n 0.4,\n 0.4,\n 0.6\n ], beatSignal * 3.0));\n },\n ambient: [\n 0.6,\n 0.4,\n 0.45\n ],\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n // @ts-ignore\n intensity: (ctx)=>{\n const beatSignal = $c022a9f57a36fe70$var$beatFlash.evaluate(ctx.sceneNowInBeats);\n return (0, $ab7f6dc0910e1ef7$exports).scale([\n 0,\n 0,\n 0\n ], [\n 1,\n 0,\n 0.3\n ], beatSignal * 1.0);\n }\n },\n // @ts-ignore\n fogColor: (ctx)=>{\n const startBg = [\n 8 / 255,\n 29 / 255,\n 74 / 255\n ];\n const endBg = [\n 0.1,\n 0.1,\n 0.2\n ];\n return (0, $ab7f6dc0910e1ef7$exports).lerp([\n 0,\n 0,\n 0\n ], startBg, endBg, ctx.sceneProgress);\n }\n },\n name: \"Pasta Tesseract\",\n sceneId: $c022a9f57a36fe70$var$SCENE_TESSERACT,\n shader: \"tesseract\",\n variables: (ctx)=>{\n return [\n $c022a9f57a36fe70$var$tesseractBendFn.evaluate(ctx.sceneNowInBeats),\n $c022a9f57a36fe70$var$tesseractBendFn2.evaluate(ctx.sceneNowInBeats),\n $c022a9f57a36fe70$var$tesseractBendFn.evaluate(ctx.sceneNowInBeats),\n 0\n ];\n },\n variables2: (ctx)=>{\n return [\n $c022a9f57a36fe70$var$tesseractRingDistance.evaluate(ctx.sceneNowInBeats),\n $c022a9f57a36fe70$var$tesseractRingVerticalDistance.evaluate(ctx.sceneNowInBeats),\n $c022a9f57a36fe70$var$tesseractRingAngle.evaluate(ctx.sceneNowInBeats),\n 0\n ];\n },\n effects: {\n enable: [\n \"vhs\"\n ]\n },\n text: [\n {\n text: \"CHAPTER 4\",\n position: [\n -0.9,\n 0.8\n ],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 2,\n exit: 16\n },\n type: \"horizontal\"\n },\n {\n text: \"ABSOLUTE POWER\\nCORRUPTS THE MAKARONS\\nAND THEY DESTROY\\nTHE HYVINKAEAE MAKARON FACILITY\",\n position: [\n -0.9,\n 0.7\n ],\n timing: {\n enter: 2,\n exit: 16\n },\n scale: [\n 0.001,\n 0.001\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\"\n }\n ]\n}).addSequence([\n {\n length: 16,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 0,\n 10,\n 0\n ],\n target: [\n 0,\n 5,\n 0\n ],\n rotationY: 0,\n zoom: 1.0\n },\n {\n position: [\n -5,\n 15,\n 10\n ],\n target: [\n 0,\n 1,\n 0\n ],\n rotationY: 0,\n zoom: 0.5\n },\n {\n position: [\n 10,\n -20,\n 15\n ],\n target: [\n 0,\n 1,\n 0\n ],\n rotationY: 0,\n zoom: 1\n },\n {\n position: [\n 30,\n -30,\n 18\n ],\n target: [\n 0,\n 5,\n 0\n ],\n rotationY: 0,\n zoom: 1.0\n }\n ]),\n fade: (ctx)=>[\n 1,\n 1,\n 1,\n $c022a9f57a36fe70$var$whiteFlashFn.evaluate(ctx.sceneContext.sceneNowInBeats)\n ]\n },\n {\n length: 4,\n camera: {\n position: {\n from: [\n 10,\n -20,\n 15\n ],\n to: [\n 0,\n 10,\n 0\n ]\n },\n target: {\n from: [\n 0,\n 0,\n 0\n ],\n to: [\n 0,\n 5,\n 0\n ]\n },\n ease: (0, $73a175dd57760e2d$export$1157fb72e7fbceb5)\n }\n },\n {\n assertStart: 20,\n length: 12,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 0,\n 11,\n 0\n ],\n target: [\n 0,\n 6,\n 0\n ],\n rotationY: 0,\n zoom: 1.0\n },\n {\n position: [\n 0,\n 10,\n 0\n ],\n target: [\n 0,\n 5,\n 0\n ],\n rotationY: 0,\n zoom: 0.5,\n roll: 0\n },\n {\n position: [\n 0,\n 40,\n 0\n ],\n target: [\n 0,\n 100,\n 0\n ],\n rotationY: 0,\n zoom: 1,\n roll: -10\n },\n {\n position: [\n 0.1,\n -30,\n 0\n ],\n target: [\n 0,\n 5,\n 0\n ],\n rotationY: 0,\n zoom: 1.0\n }\n ]),\n fade: (ctx)=>[\n 1,\n 1,\n 1,\n $c022a9f57a36fe70$var$whiteFlashFn.evaluate(ctx.sceneContext.sceneNowInBeats)\n ]\n },\n {\n assertStart: 32,\n length: 32,\n camera: (0, $0894ac0ead577123$export$760aff21c00b2f35)([\n {\n position: [\n 5,\n 0,\n 5\n ],\n target: [\n 0,\n 0,\n 0\n ],\n zoom: 2.0,\n roll: Math.PI * 0.25\n },\n {\n position: [\n 10,\n 0,\n 10\n ],\n target: [\n 0,\n 1,\n 0\n ],\n zoom: 0.75,\n roll: Math.PI * 0.5\n },\n {\n position: [\n 20,\n -10,\n 10\n ],\n target: [\n 0,\n 0,\n 0\n ],\n zoom: 3.0,\n roll: Math.PI * 2.0\n },\n {\n position: [\n 10,\n -20,\n 11\n ],\n target: [\n 0,\n 1,\n 0\n ],\n zoom: 3.75,\n roll: Math.PI * 0.25\n }\n ]),\n fade: (ctx)=>{\n return [\n 1,\n 1,\n 1,\n $c022a9f57a36fe70$var$tesseractFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats)\n ];\n }\n }\n]);\n\n\n\n\n\nconst $cf00842d3b8b8805$var$SCENE_OUTRO = 6;\nconst $cf00842d3b8b8805$export$ec53dc7f7efdb6d9 = {\n ambient: [\n 0.2,\n 0.2,\n 0.2\n ],\n light1: {\n position: [\n 0,\n 0,\n 0\n ],\n intensity: [\n 0.5,\n 0.55,\n 0.6\n ]\n },\n cameraLightIntensity: [\n 0.5,\n 0.55,\n 0.6\n ],\n fogColor: [\n 0.1098039216,\n 0.1647058824,\n 0.3882352941\n ],\n fogDensity: 1.5\n};\nconst $cf00842d3b8b8805$var$endFadeOut = new (0, $116a10768a0cf0f3$export$53aecc733b0740db)().addSegment(0, 32, ()=>0).addSegment(32, 35, (t)=>(0, $73a175dd57760e2d$export$5da70c9577229d30)(t));\nconst $cf00842d3b8b8805$export$29a1a0fb50c9ad5b = (0, $b62e014a4102e0be$export$499f63eb5439a1d5)({\n sceneId: $cf00842d3b8b8805$var$SCENE_OUTRO,\n shader: \"outro\",\n length: 64,\n name: \"The End (?)\"\n}).addSequence([\n {\n camera: {\n position: [\n 0,\n 0,\n -5\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n length: 4\n },\n {\n camera: {\n position: [\n 0,\n 0,\n -7\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n length: 4\n },\n {\n camera: {\n position: [\n 0,\n 0,\n -15\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n length: 4\n },\n {\n camera: {\n position: [\n 0,\n 0,\n -5\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n length: 4\n },\n {\n camera: {\n position: [\n 0,\n 0,\n -2\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n assertStart: 16,\n length: 22,\n fade: (ctx)=>[\n 0,\n 0,\n 0,\n $cf00842d3b8b8805$var$endFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats)\n ]\n },\n {\n camera: {\n position: [\n 0,\n 0,\n -2\n ],\n target: [\n 0,\n 0,\n 0\n ]\n },\n length: 42,\n fade: (ctx)=>[\n 0,\n 0,\n 0,\n $cf00842d3b8b8805$var$endFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats)\n ],\n text: [\n {\n text: \"This has been a\",\n position: [\n 0.0,\n 0.8\n ],\n scale: [\n 0.0015,\n 0.0015\n ],\n font: \"novarese\",\n align: \"center\",\n type: \"horizontal\"\n },\n {\n text: \"Makaronin\\nYstavaet\",\n position: [\n -0.9,\n 0.5\n ],\n scale: [\n 0.003,\n 0.003\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n params: {\n distortion: 1.1,\n waviness: 0.2,\n color: [\n 0.6,\n 0.0,\n 0.0\n ]\n }\n },\n {\n text: \"and\",\n position: [\n 0.0,\n 0.0\n ],\n scale: [\n 0.0015,\n 0.0015\n ],\n font: \"novarese\",\n align: \"center\",\n type: \"horizontal\"\n },\n {\n text: \"Juusto\\nMakaroni\\nLaatikko\",\n position: [\n -0.9,\n -0.2\n ],\n scale: [\n 0.003,\n 0.003\n ],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n params: {\n distortion: 1.1,\n waviness: 0.2,\n color: [\n 0.0,\n 0.6,\n 0.0\n ]\n }\n },\n {\n text: \"production\",\n position: [\n 0.0,\n -0.9\n ],\n scale: [\n 0.0015,\n 0.0015\n ],\n font: \"novarese\",\n align: \"center\",\n type: \"horizontal\"\n }\n ]\n }\n]);\n\n\n(0, $0b0b5258dcf58045$export$85f2f34eb806ade4).thenScene((0, $c022a9f57a36fe70$export$d8cc95e653be71f0)).thenScene((0, $cf00842d3b8b8805$export$29a1a0fb50c9ad5b));\n\n\n\n\nclass $cc8373dba457913f$export$22c21e3044161f2a extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = '#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 100.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\nconst uint MAT_METAL = 3u;\\nconst uint MAT_METAl_GREY = 4u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nconst uint SCENE_BLACK = 0u;\\nconst uint SCENE_MACARONI_FACTORY = 1u;\\nconst uint SCENE_TUBE = 2u;\\n\\nuniform sampler2D textureMetal;\\nuniform sampler2D textureMetalNormal;\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \"signed distance\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 BOX_BLUE = vec3(28.0, 42.0, 99.0) / 255.0;\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\nconst vec3 METAL_GREY = vec3(0.3, 0.3, 0.3);\\n\\nvec4 penne(vec3 p, float len) {\\n // start with 2D circle\\n float r = 0.5;\\n float d = circleSDF(p.xy, r);\\n\\n // Add sinusoidal perturbation\\n d += 0.015 * sin(15.0 * (atan(p.y, p.x) + now));\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.80));\\n\\n float h = len;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 simpleMacaroni(vec3 p) {\\n float d = sdTorus(p, vec2(0.5, 0.2));\\n\\n // Hollow out the center\\n d = onion(d, 0.04);\\n\\n // Cut in half\\n d = max(d, -planeSDF(p, vec3(0, 0, 1), 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 macaroniMold(vec3 p) {\\n // Create box and macaroni, and subtract macaroni from box\\n // Then cut in half\\n\\n vec4 box = vec4(sdRoundBox(p, vec3(1.0, 2.5, 0.5), 0.05), MAT_METAl_GREY, 0, 0);\\n vec3 macP = p;\\n macP.x -= 0.25;\\n macP.yz *= rot(PI / 2.0);\\n vec4 mac = macaroni(macP, false);\\n\\n float d = opSmoothSubtraction(mac.x, box.x, 0.05);\\n\\n // Cut in half\\n d = max(d, -planeSDF(p, vec3(0, 0, 1), 0.0));\\n\\n // Add infinite arm\\n vec3 armP = p;\\n armP.yz *= rot(PI / 2.0);\\n // Cut before it reaches the mold\\n float armD = sdCylinder(armP, vec3(0.0, 0.0, 0.5));\\n armD = max(armD, -planeSDF(p, vec3(0, 0, 1), -0.45));\\n\\n d = opSmoothUnion(d, armD, 0.1);\\n\\n return vec4(d, MAT_METAL, 0, 0);\\n}\\n\\nvec4 baseSceneMacaroniFactory(vec3 p) {\\n // Back wall\\n // vec4 scene = vec4(planeSDF(p, vec3(0, 0.0, 1.0), 50.0), MAT_METAl_GREY, 0, 0);\\n // Add factory floor\\n float floorPlaneD = planeSDF(p, vec3(0, 1.0, 0.0), 2.0);\\n\\n float MACHINE_SPACING = 25.0;\\n float MACHINE_HEIGHT = 6.0;\\n\\n // Add maachines on both sides of the floor\\n vec3 machineP = p + vec3(MACHINE_SPACING, 0.0, 0.0);\\n\\n machineP = opLimitedRepetition(\\n p + vec3(MACHINE_SPACING, 0.0, 0.0),\\n MACHINE_SPACING * 2.0,\\n vec3(1, 0.0, 0.0)\\n );\\n\\n float machineD = sdRoundBox(machineP, vec3(MACHINE_HEIGHT, 4.0, 80.0), 0.1);\\n\\n vec4 scene = \\n vec4(machineD, MAT_METAL, 0, 0);\\n\\n // Create ceiling with a hjuuge box - infinite cylinder\\n vec3 ceilingBoxP = p + vec3(0, 0, 0.0);\\n float ceilingBoxD = sdRoundBox(ceilingBoxP, vec3(100, 100, 500), 0.05);\\n // Now cut a hole in the ceiling\\n ceilingBoxD = opSmoothSubtraction(sdCylinder(ceilingBoxP.yzx + vec3(60.0, 0, 25.0), vec3(50.0, 25.0, 25.0)), ceilingBoxD, 0.1);\\n\\n p = opLimitedRepetition(\\n p,\\n 8.0,\\n vec3(0.0, 0.0, 8.0)\\n );\\n\\n // Dig hole with cylinder\\n float holeD = sdCylinder(p, vec3(0.0, 0.0, 3.0));\\n floorPlaneD = opSmoothSubtraction(holeD, floorPlaneD, 0.1);\\n \\n if (p.y < 1.0) {\\n ceilingBoxD = opSmoothSubtraction(holeD, ceilingBoxD, 0.1);\\n }\\n\\n scene = unionColor(\\n scene,\\n vec4(ceilingBoxD, MAT_METAL, 0, 0)\\n );\\n\\n scene = unionColor(\\n scene,\\n vec4(floorPlaneD, MAT_METAL, 0, 0)\\n );\\n\\n return scene;\\n}\\n\\nvec4 sceneMacaroniFactory(vec3 p) {\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n vec3 originalP = p;\\n vec4 scene = baseSceneMacaroniFactory(p);\\n\\n p = opLimitedRepetition(\\n p,\\n 8.0,\\n vec3(0.0, 0.0, 8.0)\\n );\\n\\n p = rotate(p, vec3(0, 0, 1), PI * 0.5);\\n p = rotate(p, vec3(1, 0, 0), PI * 0.5);\\n // p = rotate(p, vec3(1, 0, 0), sceneProgress * PI * 2.0);\\n\\n vec3 moldP = p;\\n moldP.z = abs(moldP.z);\\n moldP.z -= sceneVariables.x;\\n\\n vec4 moldScene = macaroniMold(moldP);\\n\\n scene = unionColor(\\n scene,\\n moldScene\\n );\\n\\n // scene variable y controls if we have dough or macaroni\\n // 0.0 = dough, 1.0 = macaroni\\n // scene variable z controls the relative position of the dough ball / macaroni,\\n // from 0.0 to 1.0\\n if (sceneVariables.y == 0.0) {\\n vec3 doughP = originalP;\\n doughP.z -= sceneVariables.z * 72.0;\\n doughP = opLimitedRepetition(\\n doughP,\\n 8.0,\\n vec3(0.0, 0.0, 8.0)\\n );\\n\\n float doughD = sphereSDF(doughP, 0.8);\\n\\n doughD = opSmoothSubtraction(moldScene.x, doughD, 0.05);\\n\\n scene = unionColor(\\n scene,\\n vec4(doughD, MAT_MACARONI, 0, 0)\\n );\\n } else {\\n vec3 macP = originalP;\\n\\n macP = opLimitedRepetition(\\n macP,\\n 8.0,\\n vec3(0.0, 0.0, 8.0)\\n );\\n\\n macP = rotate(macP, vec3(0, 0, 1), PI * 0.5);\\n macP = rotate(macP, vec3(1, 0, 0), PI * 0.5);\\n macP.x -= 0.25;\\n macP.yz *= rot(PI / 2.0);\\n\\n float fallProgress = max(0.0, sceneVariables.z) * 2.0;\\n\\n macP.x += fallProgress * 100.0;\\n\\n vec4 macScene = macaroni(macP, true);\\n\\n scene = unionColor(\\n scene,\\n macScene\\n );\\n }\\n\\n return scene;\\n}\\n\\nvec4 sceneMacaroniFall2(vec3 p) {\\n if (sceneProgress > 0.8 && mod(beat, 2.0) < 1.0) {\\n p.xy = kink(p.yx, vec2(0, -1.2), -0.14);\\n }\\n\\n vec3 macP = p;\\n\\n macP = rotate(macP, vec3(0, 0, 1), PI * 0.5 + sceneNow);\\n macP = rotate(macP, vec3(1, 0, 0), PI * 0.5 + sceneNow);\\n\\n macP.x += sin(now * 3.0) * 0.1;\\n\\n vec4 scene = macaroni(macP, true);\\n\\n return scene;\\n}\\n\\nvec4 sceneTube(vec3 p) {\\n // Macaroni flying through large tube / tunnel\\n\\n vec3 tunnelP = rotate(p, vec3(1, 0, 0), PI * 0.5);\\n // Twist\\n //tunnelP.yz = kink(tunnelP.yz, vec2(0.0, 0.5), sin(now * 0.5) * 0.1);\\n // Start with tube\\n float baseRadius = 3.5 + (sceneVariables.y * 50.0);\\n\\n float d = sdCylinder(tunnelP, vec3(0.0, 0.0, baseRadius + sin(p.z * 0.5 + now) * 0.3));\\n d = onion(d, 0.2);\\n // Add sinusoidal perturbation\\n //d += 0.04 * sin(32.0 * (atan(p.y, p.x) + now));\\n\\n vec4 scene = vec4(d, MAT_METAL, 0, 0);\\n\\n float angle = beat * PI * 1.0 /8.0;\\n\\n // Get movement vector for macaroni, from center outwards using angle\\n vec3 macDir = vec3(cos(angle), sin(angle), 0.0);\\n\\n // Add macaroni\\n vec3 macP = p;\\n // Apply random movement by sampling from texture\\n float distortStrength = sceneVariables.x * 0.8;\\n\\n macP += macDir * 2.0;\\n\\n macP.x += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).x * distortStrength;\\n macP.y += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).y * distortStrength;\\n macP.z += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).z * distortStrength;\\n\\n macP.xz *= rot(PI + now);\\n macP.yz *= rot(PI * 2.0 + now);\\n vec4 mac = macaroni(macP, true);\\n\\n scene = unionColor(\\n scene,\\n mac\\n );\\n\\n return scene;\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n switch (sceneId) {\\n case SCENE_BLACK:\\n return vec4(MAX_DIST, MAT_BLACK, 0, 0);\\n case SCENE_MACARONI_FACTORY:\\n return sceneMacaroniFactory(p);\\n case SCENE_TUBE:\\n return sceneTube(p);\\n default: break;\\n }\\n\\n return vec4(MAX_DIST, MAT_BLACK, 0, 0);\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n vec3 fogColor = lighting.fogColor;\\n const float MAX_FOG_DARKENING = 0.2;\\n const float FOG_DARKENING_START = -2.0;\\n const float FOG_DARKENING_END = -10.0;\\n\\n // Slightly darken when below horizon (y < FOG_DARKENING_START)\\n // Max darkness (MAX_FOG_DARKENING) at FOG_DARKENING_END\\n\\n float darken = smoothstep(FOG_DARKENING_START, FOG_DARKENING_END, pos.y);\\n darken *= MAX_FOG_DARKENING;\\n return mix(fogColor, fogColor * darken, darken);\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf, out vec3 pos) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n pos = eye + dir * MAX_DIST;\\n // Didn\\'t hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n pos = p;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_METAl_GREY:\\n color = METAL_GREY;\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n case MAT_METAL: {\\n vec3 normal = estimateNormal(p);\\n vec3 blending = abs(normal);\\n blending = normalize(max(blending, 0.00001));\\n float b = (blending.x + blending.y + blending.z);\\n blending /= vec3(b);\\n\\n vec3 textureP = p;\\n \\n if (sceneId == SCENE_TUBE && uint(sdf.y) == MAT_METAL) {\\n textureP.z += beat * 2.0;\\n }\\n\\n float scale = 0.25;\\n vec4 xaxis = texture(textureMetal, textureP.yz * scale);\\n vec4 yaxis = texture(textureMetal, textureP.xz * scale);\\n vec4 zaxis = texture(textureMetal, textureP.xy * scale);\\n vec4 tex = (xaxis * blending.x + yaxis * blending.y + zaxis * blending.z);\\n\\n // Do same for the normal map\\n\\n vec4 xaxisNormal = texture(textureMetalNormal, textureP.yz * scale);\\n vec4 yaxisNormal = texture(textureMetalNormal, textureP.xz * scale);\\n vec4 zaxisNormal = texture(textureMetalNormal, textureP.xy * scale);\\n vec4 texNormal = (xaxisNormal * blending.x + yaxisNormal * blending.y + zaxisNormal * blending.z);\\n\\n vec3 finalNormal = normalize(normal + texNormal.rgb * 1.9 - 1.0);\\n\\n sdfColor = tex.rgb;\\n // color = sdfColor;\\n color = phongIllumination(vec3(1.0) /** shadow(p, lighting.light1Pos, 0.01, 3.0)*/, sdfColor, K_s, 8.0, p, eye, finalNormal);\\n break;\\n }\\n\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.05, lighting.fogDensity));\\n vec3 fogColor = fogColor(pos);\\n\\n color = mix(fogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord, out vec3 pos, out vec2 velocity)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n mat3 currentCamera = lookAt(camera.position, camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor, pos);\\n\\n velocity = vec2(0.0);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec3 pos;\\n vec4 frag = mainImage(gl_FragCoord.xy, pos, depth.xy);\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n}';\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n this.addTextureUniform(\"textureMetal\", resources.textures.metal);\n this.addTextureUniform(\"textureMetalNormal\", resources.textures.metalNormal);\n }\n}\n\n\n\n\nclass $a6630e3024554578$export$c3c9d3acf7f0d61e extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = '#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 200.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\nconst uint MAT_METAL = 3u;\\nconst uint MAT_METAl_GREY = 4u;\\nconst uint MAT_GOLD = 5u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nconst uint SCENE_BLACK = 0u;\\nconst uint SCENE_MACARONI_FACTORY = 1u;\\nconst uint SCENE_TUBE = 2u;\\nconst uint SCENE_MACARONI_FLYBY = 3u;\\nconst uint SCENE_LASAGA_WORLD = 4u;\\nconst uint SCENE_PASTA_TESSERACT = 5u;\\nconst uint SCENE_OUTRO = 6u;\\nconst uint SCENE_INTRO = 7u;\\n\\nuniform sampler2D textureMetal;\\nuniform sampler2D textureMetalNormal;\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \"signed distance\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 BOX_BLUE = vec3(28.0, 42.0, 99.0) / 255.0;\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\nconst vec3 METAL_GREY = vec3(0.3, 0.3, 0.3);\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n // Just one lone macaroni in the middle of the screen\\n\\n vec3 macP = p;\\n\\n // Rotate\\n macP = rotate(macP, vec3(1, 0, 0), PI * 0.5);\\n macP = rotate(macP, vec3(0, 0, 1), PI * 0.5 * now);\\n\\n macP.x += sin(now * 3.0) * 0.1;\\n macP.y += sin(now * 3.0) * 0.1;\\n macP.z += sin(now * 3.0) * 0.1;\\n\\n float distortStrength = cubicIn(sceneProgress) * 3.0;\\n\\n macP.x += texture(randomTexture, vec2(p.z * 0.01, now * 0.1)).x * distortStrength * 2.0;\\n macP.y += texture(randomTexture, vec2(p.z * 0.01, now * 0.1)).y * distortStrength;\\n macP.z += texture(randomTexture, vec2(p.z * 0.01, now * 0.1)).z * distortStrength;\\n\\n vec4 scene = macaroni(macP, true);\\n\\n return scene;\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n // if scene is SCENE_PASTA_TESSERACT, dim based on distance to 0,0,0\\n if (sceneId == SCENE_PASTA_TESSERACT) {\\n float dist = length(p);\\n k_d *= sin(dist * 2.0 + sceneNow);\\n k_s *= cos(dist * 2.0 + sceneNow);\\n }\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n vec3 fogColor = lighting.fogColor;\\n const float MAX_FOG_DARKENING = 0.2;\\n const float FOG_DARKENING_START = -2.0;\\n const float FOG_DARKENING_END = -10.0;\\n\\n // Slightly darken when below horizon (y < FOG_DARKENING_START)\\n // Max darkness (MAX_FOG_DARKENING) at FOG_DARKENING_END\\n\\n float darken = smoothstep(FOG_DARKENING_START, FOG_DARKENING_END, pos.y);\\n darken *= MAX_FOG_DARKENING;\\n return mix(fogColor, fogColor * darken, darken);\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf, out vec3 pos) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n pos = eye + dir * MAX_DIST;\\n // Didn\\'t hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n pos = p;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.05, lighting.fogDensity));\\n vec3 fogColor = fogColor(pos);\\n\\n color = mix(fogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord, out vec3 pos, out vec2 velocity)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n //vec2 xy = fragCoord - resolution.xy / 2.0;\\n mat3 currentCamera = lookAt(camera.position, camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n\t//vec3 dir = currentCamera * rayDirection(45.0, resolution.xy, fragCoord);\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor, pos);\\n\\n velocity = vec2(0);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec3 pos;\\n vec4 frag = mainImage(gl_FragCoord.xy, pos, depth.xy);\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n //fragColor = vec4(gl_FragDepth, gl_FragDepth, gl_FragDepth, 1.0);\\n}';\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n\n\n\n\nclass $9a3108eb9796c9fd$export$f94da82f4d21389c extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = '#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 200.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\nconst uint MAT_METAL = 3u;\\nconst uint MAT_METAl_GREY = 4u;\\nconst uint MAT_GOLD = 5u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nconst uint SCENE_BLACK = 0u;\\nconst uint SCENE_MACARONI_FACTORY = 1u;\\nconst uint SCENE_TUBE = 2u;\\nconst uint SCENE_MACARONI_FLYBY = 3u;\\nconst uint SCENE_LASAGA_WORLD = 4u;\\nconst uint SCENE_PASTA_TESSERACT = 5u;\\nconst uint SCENE_OUTRO = 6u;\\nconst uint SCENE_INTRO = 7u;\\n\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \"signed distance\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat cubicOut(float t) {\\n return 1.0 - pow(1.0 - t, 3.0);\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 BOX_BLUE = vec3(28.0, 42.0, 99.0) / 255.0;\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\nconst vec3 METAL_GREY = vec3(0.3, 0.3, 0.3);\\n\\nvec4 penne(vec3 p, float len, float rotation) {\\n // start with 2D circle\\n float r = 0.5;\\n float d = circleSDF(p.xy, r);\\n\\n // Add sinusoidal perturbation\\n d += 0.015 * sin(15.0 * (atan(p.y, p.x) + rotation));\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.80));\\n\\n float h = len;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 simpleMacaroni(vec3 p) {\\n float d = sdTorus(p, vec2(0.5, 0.2));\\n\\n // Hollow out the center\\n d = onion(d, 0.04);\\n\\n // Cut in half\\n d = max(d, -planeSDF(p, vec3(0, 0, 1), 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n float thisBeat = beat / 4.0;\\n\\n vec4 scene = penne(\\n opRepetition(p, vec3(2.0, 2.0, 20.0)),\\n 0.75 + sceneVariables.x * 0.3,\\n thisBeat\\n );\\n\\n scene = unionColor(scene, penne(\\n opRepetition(p + vec3(1.0, 0.0, 0.0), vec3(2.0, 2.0, 7.0)),\\n 0.66 + sceneVariables.x * 0.25,\\n -thisBeat + radians(12.0)\\n ));\\n\\n scene = unionColor(scene, penne(\\n opRepetition(p + vec3(0.0, 1.0, 0.0), vec3(2.0, 2.0, 6.5)),\\n 0.45,\\n -thisBeat\\n ));\\n\\n scene = unionColor(scene, penne(\\n opRepetition(p + vec3(1.0, 1.0, 0.0), vec3(2.0, 2.0, 3.5)),\\n 0.5,\\n thisBeat + radians(12.0)\\n ));\\n\\n return scene;\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nfloat shadow( in vec3 ro, in vec3 rd, float mint, float maxt )\\n{\\n float t = mint;\\n for( int i=0; i<256 && ttmax ) break;\\n }\\n return clamp( res, 0.0, 1.0 );\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n float distanceToLight = length(p - eye);\\n\\n float dimmer = 3.0 / (1.0 + 0.25 * distanceToLight * distanceToLight);\\n color *= clamp(dimmer, 0.2, 1.0);\\n\\n /*color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);*/\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n vec3 fogColor = lighting.fogColor;\\n const float MAX_FOG_DARKENING = 0.2;\\n const float FOG_DARKENING_START = -2.0;\\n const float FOG_DARKENING_END = -10.0;\\n\\n // Slightly darken when below horizon (y < FOG_DARKENING_START)\\n // Max darkness (MAX_FOG_DARKENING) at FOG_DARKENING_END\\n\\n float darken = smoothstep(FOG_DARKENING_START, FOG_DARKENING_END, pos.y);\\n darken *= MAX_FOG_DARKENING;\\n return mix(fogColor, fogColor * darken, darken);\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf, out vec3 pos) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n pos = eye + dir * MAX_DIST;\\n // Didn\\'t hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n pos = p;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.05, lighting.fogDensity));\\n vec3 fogColor = fogColor(pos);\\n\\n color = mix(fogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord, out vec3 pos, out vec2 velocity)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n //vec2 xy = fragCoord - resolution.xy / 2.0;\\n mat3 currentCamera = lookAt(camera.position, camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n\t//vec3 dir = currentCamera * rayDirection(45.0, resolution.xy, fragCoord);\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor, pos);\\n\\n velocity = vec2(0.0);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec3 pos;\\n vec4 frag = mainImage(gl_FragCoord.xy, pos, depth.xy);\\n\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n //fragColor = vec4(gl_FragDepth, gl_FragDepth, gl_FragDepth, 1.0);\\n}';\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n\n\n\n\nclass $3f4705ce913e53c7$export$2e75c20d97e99f2b extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = '#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 200.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\nconst uint MAT_METAL = 3u;\\nconst uint MAT_METAl_GREY = 4u;\\nconst uint MAT_GOLD = 5u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n// Current scene beat\\nuniform uint sceneBeat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \"signed distance\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nfloat sdHeart( in vec2 p )\\n{\\n p.x = abs(p.x);\\n\\n if( p.y+p.x>1.0 )\\n return sqrt(dot2(p-vec2(0.25,0.75))) - sqrt(2.0)/4.0;\\n return sqrt(min(dot2(p-vec2(0.00,1.00)),\\n dot2(p-0.5*max(p.x+p.y,0.0)))) * sign(p.x-p.y);\\n}\\n\\nfloat sdHeart3D(vec3 p, float scale, float h) {\\n //return (sdHeart(p.xy / 0.125) + (p.z / 0.125)) * 0.125;\\n float d = sdHeart(p.xz / scale) * scale;\\n vec2 w = vec2( d, abs(p.y) - h );\\n return min(max(w.x,w.y),0.0) + length(max(w,0.0));\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n p /= 1.0 + (sceneVariables.z * 0.15);\\n \\n p = rotate(p, vec3(1, 0, 0), PI * 0.125 * beat);\\n\\n vec4 scene = macaroni(\\n opRepetition(p, vec3(2.0)),\\n true\\n );\\n\\n float repeats = 2.0;\\n\\n if (sceneBeat >= 8u) {\\n scene = unionColor(scene, macaroni(\\n opRepetition(rotate(p, vec3(1, 0, 0), 0.72) + vec3(2.0), vec3(repeats)),\\n true\\n ));\\n }\\n\\n if (sceneBeat >= 12u) {\\n scene = unionColor(scene, macaroni(\\n opRepetition(rotate(p, vec3(0, 0, 1), 0.87) + vec3(1.5), vec3(repeats)),\\n true\\n ));\\n }\\n\\n\\n if (sceneBeat >= 16u) {\\n scene = unionColor(scene, macaroni(\\n opRepetition(rotate(p, vec3(0, 1, 0), 1.5) + vec3(1.5), vec3(repeats)),\\n true\\n ));\\n }\\n\\n if (sceneVariables.y > 0.0) {\\n p = opRepetition(p, vec3(32.0, 0.0, 32.0));\\n }\\n\\n //float box = boxSDF(p, vec3(5.0));\\n float box =\\n sceneBeat >= 48u ?\\n sdHeart3D(p - vec3(0.0, 0.0, -15.0), 25.0, 2.0)\\n : sceneBeat >= 32u ?\\n sdTorus(p, vec2(5.0, 3.0))\\n : boxSDF(p, vec3(4.9 * sceneVariables.x));\\n float intersection = opSmoothIntersection(scene.x, box, 0.5);\\n\\n intersection -= 0.02;\\n\\n return vec4(intersection, MAT_MACARONI, 0, 0);\\n\\n return scene;\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n\\n /*color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);*/\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n vec3 fogColor = lighting.fogColor;\\n const float MAX_FOG_DARKENING = 0.2;\\n const float FOG_DARKENING_START = -2.0;\\n const float FOG_DARKENING_END = -10.0;\\n\\n // Slightly darken when below horizon (y < FOG_DARKENING_START)\\n // Max darkness (MAX_FOG_DARKENING) at FOG_DARKENING_END\\n\\n float darken = smoothstep(FOG_DARKENING_START, FOG_DARKENING_END, pos.y);\\n darken *= MAX_FOG_DARKENING;\\n return mix(fogColor, fogColor * darken, darken);\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n vec3 pos = eye + dir * MAX_DIST;\\n // Didn\\'t hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.05, lighting.fogDensity));\\n vec3 fogColor = fogColor(p);\\n\\n color = mix(fogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n mat3 currentCamera = lookAt(camera.position, camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec4 frag = mainImage(gl_FragCoord.xy);\\n\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n}';\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n\n\n\n\nclass $cf0396d6fff3f6c9$export$d1b85cf9c49eb72f extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = '#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n float roll;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 200.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\nconst uint MAT_METAL = 3u;\\nconst uint MAT_METAl_GREY = 4u;\\nconst uint MAT_GOLD = 5u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform vec4 sceneVariables2;\\n\\nuniform Camera camera;\\n\\nuniform sampler2D textureMetal;\\nuniform sampler2D textureMetalNormal;\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \"signed distance\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 BOX_BLUE = vec3(28.0, 42.0, 99.0) / 255.0;\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\nconst vec3 METAL_GREY = vec3(0.3, 0.3, 0.3);\\n\\nvec4 penne(vec3 p, float len) {\\n // start with 2D circle\\n float r = 0.5;\\n float d = circleSDF(p.xy, r);\\n\\n // Add sinusoidal perturbation\\n d += 0.015 * sin(15.0 * (atan(p.y, p.x) + now));\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.80));\\n\\n float h = len;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 simpleMacaroni(vec3 p) {\\n float d = sdTorus(p, vec2(0.5, 0.2));\\n\\n // Hollow out the center\\n d = onion(d, 0.04);\\n\\n // Cut in half\\n d = max(d, -planeSDF(p, vec3(0, 0, 1), 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.x -= sceneVariables2.x;\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 repetition_rotational( vec3 p, int n, vec3 originalP)\\n{\\n // This adds variation per z level if it works\\n float rotation = sceneVariables2.y > 0.0 ? (floor((originalP.y / sceneVariables2.y + 0.5))) * 0.2 : 0.0;\\n\\n p = rotate(p, vec3(0, 1, 0), rotation);\\n\\n float sp = 6.283185/float(n);\\n float an = atan(p.z,p.x);\\n float id = floor(an/sp);\\n\\n\\n float a1 = sp*(id+0.0);\\n float a2 = sp*(id+1.0);\\n vec2 r1 = mat2(cos(a1),-sin(a1),sin(a1),cos(a1))*p.xz;\\n vec2 r2 = mat2(cos(a2),-sin(a2),sin(a2),cos(a2))*p.xz;\\n\\n vec3 macaroniP1 = vec3(r1.x, p.y, r1.y);\\n vec3 macaroniP2 = vec3(r2.x, p.y, r2.y);\\n\\n return min(macaroni(macaroniP1, true), macaroni(macaroniP2, true));\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n vec3 originalP = p;\\n\\n if (abs(sceneVariables.x) > 0.0) {\\n p.zx = kink(p.zx, vec2(0, -0.8), sceneVariables.x * 5.0);\\n }\\n\\n if (abs(sceneVariables.y) > 0.0) {\\n p.yz = kink(p.yz, vec2(-0.5, 0.0), sceneVariables.y * 16.0);\\n }\\n\\n p = opLimitedRepetition(p, sceneVariables2.y, vec3(\\n 0.0, 128.0, 0.0\\n ));\\n\\n return repetition_rotational(p, 8, originalP);\\n\\n\\n vec3 penneP = opLimitedRepetition(\\n p,\\n 1.0,\\n vec3(8.0, 4.0, 0.0)\\n );\\n\\n penneP = opCheapBend(\\n penneP,\\n sceneVariables.z\\n );\\n\\n vec4 penneScene = penne(penneP, 8.0);\\n\\n penneScene.x -= sceneVariables.w * 10.0;\\n\\n return penneScene;\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nfloat shadow( in vec3 ro, in vec3 rd, float mint, float maxt )\\n{\\n float t = mint;\\n for( int i=0; i<256 && ttmax ) break;\\n }\\n return clamp( res, 0.0, 1.0 );\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n // scene is SCENE_PASTA_TESSERACT, dim based on distance to 0,0,0\\n float dist = length(p);\\n k_d *= sin(dist * 2.0 + sceneNow);\\n k_s *= cos(dist * 2.0 + sceneNow);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n vec3 fogColor = lighting.fogColor;\\n float fftSample = texture(fftTexture, vec2(0.0, 0.0)).r;\\n\\n const float MAX_FOG_DARKENING = 0.2;\\n float FOG_DARKENING_START = -2.0 + fftSample * 0.01;\\n const float FOG_DARKENING_END = -10.0;\\n\\n // Slightly darken when below horizon (y < FOG_DARKENING_START)\\n // Max darkness (MAX_FOG_DARKENING) at FOG_DARKENING_END\\n\\n float darken = smoothstep(FOG_DARKENING_START, FOG_DARKENING_END, pos.y);\\n darken *= MAX_FOG_DARKENING;\\n\\n vec3 almostFinalColor = mix(fogColor, fogColor * darken, darken);\\n return almostFinalColor;\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf, out vec3 pos) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n pos = eye + dir * MAX_DIST;\\n // Didn\\'t hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n pos = p;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.6 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.05, lighting.fogDensity));\\n vec3 fogColor = fogColor(pos);\\n\\n color = mix(fogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint, float roll) {\\n vec3 rr = vec3(sin(roll), cos(roll), 0.0);\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(cd, rr)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, -cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord, out vec3 pos, out vec2 velocity)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n //vec2 xy = fragCoord - resolution.xy / 2.0;\\n mat3 currentCamera = lookAt(camera.position, camera.target, camera.roll);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n\t//vec3 dir = currentCamera * rayDirection(45.0, resolution.xy, fragCoord);\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor, pos);\\n\\n velocity = vec2(0.0);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec3 pos;\\n vec4 frag = mainImage(gl_FragCoord.xy, pos, depth.xy);\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n //fragColor = vec4(gl_FragDepth, gl_FragDepth, gl_FragDepth, 1.0);\\n}';\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n\n\n\n\nclass $cb977d6ea4f1ae36$export$55fe04ef2be8780b extends (0, $d256aeec6e5e93e7$export$238e1922c0a52ddd) {\n constructor(gl, resources){\n const sdfVertexShader = \"#version 300 es\\n\\nin vec2 a_position;\\nvec2 v_position;\\n\\nvoid main() {\\n v_position = a_position;\\n gl_Position = vec4(a_position, 0, 1);\\n}\\n\";\n const sdfFragmentShader = \"#version 300 es\\n\\nprecision mediump float;\\n\\nlayout(location = 0) out vec4 fragColor;\\nlayout(location = 1) out vec4 depth;\\n\\nstruct Light {\\n vec3 position;\\n vec3 intensity;\\n};\\n\\nstruct SceneLighting {\\n vec3 ambient;\\n\\n vec3 cameraLightIntensity;\\n Light light1;\\n\\n vec3 fogColor;\\n float fogDensity;\\n};\\n\\nstruct Camera {\\n vec3 position;\\n vec3 target;\\n float rotationY;\\n float zoom;\\n};\\n\\nconst int MAX_MARCHING_STEPS = 256;\\nconst float MIN_DIST = 0.0;\\nconst float MAX_DIST = 100.0;\\nconst float EPSILON = 0.001;\\nconst float PI = 3.14159265359;\\n\\nconst uint MAT_BLACK = 0u;\\nconst uint MAT_MACARONI = 1u;\\nconst uint MAT_METAL = 3u;\\nconst uint MAT_METAl_GREY = 4u;\\nconst uint MAT_GOLD = 5u;\\n\\nvec2 v_position;\\n\\n// Current time in seconds\\nuniform float now;\\n// Current time from the beginning of the scene in seconds\\nuniform float sceneNow;\\n// Progress through the scene from 0.0 to 1.0\\nuniform float sceneProgress;\\n// Current beat\\nuniform float beat;\\n\\nuniform vec2 resolution;\\nuniform uint sceneId;\\n\\n// We also receive the previous camera position and target, to calculate\\n// velocity in screen space\\n\\nuniform SceneLighting lighting;\\nuniform vec3 backgroundColor;\\nuniform vec4 sceneVariables;\\nuniform Camera camera;\\n\\nconst uint SCENE_BLACK = 0u;\\nconst uint SCENE_LASAGA_WORLD = 4u;\\n\\nuniform sampler2D textureMetal;\\nuniform sampler2D textureMetalNormal;\\nuniform sampler2D randomTexture;\\nuniform sampler2D fftTexture;\\nuniform sampler2D sky;\\n\\nvec2 rotate(vec2 v, float a) {\\n\tfloat s = sin(a);\\n\tfloat c = cos(a);\\n\tmat2 m = mat2(c, -s, s, c);\\n\treturn m * v;\\n}\\n\\nmat4 rotationMatrix(vec3 axis, float angle) {\\n axis = normalize(axis);\\n float s = sin(angle);\\n float c = cos(angle);\\n float oc = 1.0 - c;\\n \\n return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,\\n oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0,\\n oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0,\\n 0.0, 0.0, 0.0, 1.0);\\n}\\n\\nvec3 rotate(vec3 v, vec3 axis, float angle) {\\n\tmat4 m = rotationMatrix(axis, angle);\\n\treturn (m * vec4(v, 1.0)).xyz;\\n}\\n\\n\\nfloat opUnion( float d1, float d2 ) { return min(d1,d2); }\\n\\nfloat opSubtraction( float d1, float d2 ) { return max(-d1,d2); }\\n\\nfloat opIntersection( float d1, float d2 ) { return max(d1,d2); }\\n\\nfloat sphereSDF(vec3 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat boxSDF( vec3 p, vec3 b )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\\n}\\n\\nfloat sdRoundBox( vec3 p, vec3 b, float r )\\n{\\n vec3 q = abs(p) - b;\\n return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;\\n}\\n\\nfloat planeSDF(vec3 p, vec3 n, float h)\\n{\\n // n must be normalized\\n return dot(p,n) + h;\\n}\\n\\nvec3 opRepetition(in vec3 p, in vec3 s)\\n{\\n vec3 q = p - s*round(p/s);\\n return q;\\n}\\n\\nvec3 opLimitedRepetition( in vec3 p, in float s, in vec3 l)\\n{\\n vec3 q = p - s * clamp(round(p/s), -l, l);\\n return q;\\n}\\n\\nvec2 kink(vec2 p, vec2 c, float k) {\\n p -= c;\\n //to polar coordinates\\n float ang = atan(p.x, p.y);\\n float len = length(p);\\n //warp angle with sigmoid function\\n ang -= ang / sqrt(1.0 + ang * ang) * (1.0 - k);\\n //to cartesian coordiantes\\n return vec2(sin(ang), cos(ang))*len + c;\\n}\\n\\nfloat dot2( vec2 v ) { return dot(v,v); }\\n\\nfloat sdBezier( in vec2 pos, in vec2 A, in vec2 B, in vec2 C )\\n{ \\n vec2 a = B - A;\\n vec2 b = A - 2.0*B + C;\\n vec2 c = a * 2.0;\\n vec2 d = A - pos;\\n float kk = 1.0/dot(b,b);\\n float kx = kk * dot(a,b);\\n float ky = kk * (2.0*dot(a,a)+dot(d,b)) / 3.0;\\n float kz = kk * dot(d,a); \\n float res = 0.0;\\n float p = ky - kx*kx;\\n float p3 = p*p*p;\\n float q = kx*(2.0*kx*kx-3.0*ky) + kz;\\n float h = q*q + 4.0*p3;\\n if( h >= 0.0) \\n { \\n h = sqrt(h);\\n vec2 x = (vec2(h,-h)-q)/2.0;\\n vec2 uv = sign(x)*pow(abs(x), vec2(1.0/3.0));\\n float t = clamp( uv.x+uv.y-kx, 0.0, 1.0 );\\n res = dot2(d + (c + b*t)*t);\\n }\\n else\\n {\\n float z = sqrt(-p);\\n float v = acos( q/(p*z*2.0) ) / 3.0;\\n float m = cos(v);\\n float n = sin(v)*1.732050808;\\n vec3 t = clamp(vec3(m+m,-n-m,n-m)*z-kx,0.0,1.0);\\n res = min( dot2(d+(c+b*t.x)*t.x),\\n dot2(d+(c+b*t.y)*t.y) );\\n // the third root cannot be the closest\\n // res = min(res,dot2(d+(c+b*t.z)*t.z));\\n }\\n return sqrt( res );\\n}\\n\\nfloat onion( in float d, in float h )\\n{\\n return abs(d)-h;\\n}\\n\\nvec2 opRevolution(in vec3 p, float o )\\n{\\n return vec2( length(p.xz) - o, p.y );\\n}\\n\\nvec3 opCheapBend(in vec3 p, float k)\\n{\\n float c = cos(k*p.x);\\n float s = sin(k*p.x);\\n mat2 m = mat2(c,-s,s,c);\\n vec3 q = vec3(m*p.xy,p.z);\\n return q;\\n}\\n\\nfloat sdCappedTorus( vec3 p, vec2 sc, float ra, float rb)\\n{\\n p.x = abs(p.x);\\n float k = (sc.y*p.x>sc.x*p.y) ? dot(p.xy,sc) : length(p.xy);\\n return sqrt( dot(p,p) + ra*ra - 2.0*ra*k ) - rb;\\n}\\n\\nfloat sdTorus( vec3 p, vec2 t )\\n{\\n vec2 q = vec2(length(p.xz)-t.x,p.y);\\n return length(q)-t.y;\\n}\\n\\nmat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }\\n\\nvec4 unionColor(vec4 obj1, vec4 obj2) {\\n if (obj2.x < obj1.x) return obj2; // The x component of the object holds the \\\"signed distance\\\" value\\n return obj1;\\n}\\n\\nfloat circleSDF(vec2 p, float r) {\\n return length(p) - r;\\n}\\n\\nfloat sdCylinder( vec3 p, vec3 c )\\n{\\n return length(p.xz-c.xy)-c.z;\\n}\\n\\nfloat opSmoothUnion( float d1, float d2, float k ) {\\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) - k*h*(1.0-h); }\\n\\nfloat opSmoothSubtraction( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\\n\\nvec4 subColor(\\n vec4 obj1,\\n float obj2Dist\\n) {\\n float d = opSubtraction(obj1.x, obj2Dist);\\n if (d == obj2Dist) {\\n return vec4(MAX_DIST, 0, 0, 0);\\n }\\n return obj1;\\n}\\n\\nfloat opSmoothIntersection( float d1, float d2, float k ) {\\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\\n return mix( d2, d1, h ) + k*h*(1.0-h); }\\n\\nfloat cubicIn(float t) {\\n return t * t * t;\\n}\\n\\nfloat exponentialIn(float t) {\\n return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\n}\\n\\n// Based on this https://easings.net/#easeOutElastic\\nfloat easeOutElastic(float t) {\\n float c4 = (2.0 * PI) / 3.0;\\n\\n if (t == 0.0) return 0.0;\\n\\n if (t == 1.0) return 1.0;\\n\\n return pow(2.0, -10.0 * t) * sin((t * 10.0 - 0.75) * c4) + 1.0;\\n}\\n\\nconst vec3 BOX_BLUE = vec3(28.0, 42.0, 99.0) / 255.0;\\nconst vec3 MACARONI_YELLOW = vec3(255.0, 224.0, 110.0) / 255.0;\\nconst vec3 METAL_GREY = vec3(0.3, 0.3, 0.3);\\n\\nvec4 macaroni(vec3 p, bool hollow) {\\n p.zx = kink(p.zx, vec2(0, -0.8), -0.25);\\n\\n // start with 2D circle\\n float r = 0.38;\\n float d = circleSDF(p.xy, r);\\n \\n // Add sinusoidal perturbation\\n d += 0.008 * sin(16.0 * (atan(p.y, p.x)));\\n if (hollow) {\\n // Hollow out the center\\n d = max(d, -circleSDF(p.xy, r * 0.7));\\n }\\n\\n float h = 0.22;\\n vec2 w = vec2(d, abs(p.z) - h);\\n d = min(max(w.x, w.y), 0.0) + length(max(w, 0.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\nvec4 lasagnePlate(vec3 p) {\\n // Thin plate of lasagne\\n // We'll add sine bumps to make it look more interesting\\n\\n p.y += sin(p.x * 2.0 + beat) * 0.2;\\n // float fftSample = texture(fftTexture, vec2(p.x / 16.0, 0.0)).x * 0.005;\\n\\n // Start with a box\\n float d = boxSDF(p, vec3(6.0, 0.1, 3.0));\\n\\n return vec4(d, MAT_MACARONI, 0, 0);\\n}\\n\\n// x: SDF value\\n// y: material ID\\n// z: hue\\n// w: unused\\nvec4 sceneSDF(vec3 p) {\\n\\n vec3 lasagaP = opLimitedRepetition(\\n p,\\n 16.0 * sceneVariables.y,\\n vec3(4.0, 0.0, 4.0)\\n );\\n vec4 scene = lasagnePlate(lasagaP);\\n\\n vec3 macP = p;\\n macP.y -= (2.0 + sceneVariables.x);\\n\\n macP.x += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).x * 0.3;\\n macP.y += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).y * 0.3;\\n macP.z += texture(randomTexture, vec2(p.z * 0.1, now * 0.1)).z * 0.3;\\n\\n\\n scene = unionColor(\\n scene,\\n macaroni(macP, true)\\n );\\n\\n scene.x -= (1.0 - sceneVariables.y) * 10.0;\\n\\n return scene;\\n}\\n\\nvec4 shortestDistanceToSurface(vec3 eye, vec3 marchingDirection, float start, float end) {\\n float depth = start;\\n for (int i = 0; i < MAX_MARCHING_STEPS; i++) {\\n vec4 distColor = sceneSDF(eye + depth * marchingDirection);\\n float dist = distColor.x;\\n if (dist < EPSILON) {\\n\t\t\treturn vec4(depth, distColor.y, 0, 0);\\n }\\n depth += dist;\\n if (depth >= end) {\\n return vec4(end, MAT_BLACK, 0, 0);\\n }\\n }\\n return vec4(end, MAT_BLACK, 0, 0);\\n}\\n\\nvec3 estimateNormal(vec3 p) {\\n return normalize(vec3(\\n sceneSDF(vec3(p.x + EPSILON, p.y, p.z)).x - sceneSDF(vec3(p.x - EPSILON, p.y, p.z)).x,\\n sceneSDF(vec3(p.x, p.y + EPSILON, p.z)).x - sceneSDF(vec3(p.x, p.y - EPSILON, p.z)).x,\\n sceneSDF(vec3(p.x, p.y, p.z + EPSILON)).x - sceneSDF(vec3(p.x, p.y, p.z - EPSILON)).x\\n ));\\n}\\n\\nvec3 phongContribForLight(vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye,\\n vec3 lightPos, vec3 lightIntensity, vec3 normal) {\\n //vec3 N = estimateNormal(p);\\n vec3 N = normal;\\n vec3 L = normalize(lightPos - p);\\n vec3 V = normalize(eye - p);\\n vec3 R = normalize(reflect(-L, N));\\n \\n float dotLN = dot(L, N);\\n float dotRV = dot(R, V);\\n \\n if (dotLN < 0.0) {\\n // Light not visible from this point on the surface\\n return vec3(0.0, 0.0, 0.0);\\n } \\n \\n if (dotRV < 0.0) {\\n // Light reflection in opposite direction as viewer, apply only diffuse\\n // component\\n return lightIntensity * (k_d * dotLN);\\n }\\n return lightIntensity * (k_d * dotLN + k_s * pow(dotRV, alpha));\\n}\\n\\nvec3 phongIllumination(vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 p, vec3 eye, vec3 normal) {\\n vec3 color = k_a * lighting.ambient;\\n\\n // light 1 is always behind camera, calculate from position, target and offset\\n float cameraDistance = 0.5;\\n vec3 lightOffset = vec3(0, 10.0, 0.0);\\n vec3 cameraLightPos = (camera.position + lightOffset) + normalize(camera.target - (camera.position + lightOffset)) * cameraDistance;\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n cameraLightPos,\\n lighting.cameraLightIntensity, normal);\\n\\n color += phongContribForLight(k_d, k_s, alpha, p, eye,\\n lighting.light1.position, lighting.light1.intensity, normal);\\n\\n return color;\\n}\\n\\nvec3 fogColor(vec3 pos) {\\n // Sample sky texture to get color\\n vec3 fogColor = texture(sky, vec2(0.0, ((-pos.y + 50.0) / 100.0))).rgb;\\n return fogColor;\\n}\\n\\nvec4 shade(in vec3 eye, in vec3 dir, in vec4 sdf, out vec3 pos) {\\n if (sdf.x > MAX_DIST - EPSILON) {\\n // calculate virtual pos\\n pos = eye + dir * MAX_DIST;\\n // Didn't hit anything\\n vec3 fogColor = fogColor(pos);\\n\t\treturn vec4(fogColor, MAX_DIST);\\n }\\n\\n // The closest point on the surface to the eyepoint along the view ray\\n vec3 p = eye + sdf.x * dir;\\n pos = p;\\n\\n // Specular reflection constant\\n vec3 K_s = 0.8 * vec3(1.0, 1.0, 1.0);\\n\\n vec3 sdfColor;\\n vec3 color;\\n\\n p = rotate(p, vec3(0, 1, 0), PI * camera.rotationY);\\n\\n // Select color and shade based on material ID\\n switch (uint(sdf.y)) {\\n case MAT_BLACK:\\n color = vec3(0.0, 0.0, 0.0);\\n break;\\n case MAT_MACARONI:\\n sdfColor = MACARONI_YELLOW;\\n color = phongIllumination(vec3(1.0), sdfColor, K_s, 2.0, p, eye, estimateNormal(p));\\n break;\\n default: break;\\n }\\n\\n // Apply fog\\n float density = exp(-pow(sdf.x * 0.02, lighting.fogDensity));\\n vec3 fogColorr = fogColor(p);\\n vec3 far = eye + dir * MAX_DIST;\\n vec3 farFogColor = fogColor(far);\\n\\n color = mix(farFogColor, color, density);\\n return vec4(color, sdf.x);\\n}\\n\\nmat3 lookAt(vec3 cameraPos, vec3 lookAtPoint) {\\n\tvec3 cd = normalize(lookAtPoint - cameraPos); // camera direction\\n\tvec3 cr = normalize(cross(vec3(0, 1, 0), cd)); // camera right\\n\tvec3 cu = normalize(cross(cd, cr)); // camera up\\n\treturn mat3(-cr, cu, -cd); // negative signs can be turned positive (or vice versa) to flip coordinate space conventions\\n}\\n\\nvec4 mainImage(in vec2 fragCoord, out vec3 pos, out vec2 velocity)\\n{\\n vec2 uv = fragCoord / resolution.xy;\\n //vec2 xy = fragCoord - resolution.xy / 2.0;\\n mat3 currentCamera = lookAt(camera.position, camera.target);\\n\\n vec2 xy = ((2.0 * fragCoord) - resolution.xy) / resolution.y;\\n\t//vec3 dir = currentCamera * rayDirection(45.0, resolution.xy, fragCoord);\\n vec3 dir = currentCamera * normalize(vec3(xy, -3.0 * camera.zoom));\\n\\n vec3 eye = camera.position;\\n vec4 distColor = shortestDistanceToSurface(eye, dir, MIN_DIST, MAX_DIST);\\n vec4 color = shade(eye, dir, distColor, pos);\\n\\n velocity = vec2(0.0);\\n\\n return color;\\n}\\n\\nvoid main() {\\n vec2 screenPos = gl_FragCoord.xy / resolution.xy;\\n vec3 pos;\\n vec4 frag = mainImage(gl_FragCoord.xy, pos, depth.xy);\\n fragColor = frag;\\n depth.a = frag.w / MAX_DIST;\\n //fragColor = vec4(gl_FragDepth, gl_FragDepth, gl_FragDepth, 1.0);\\n}\";\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n this.addTextureUniform(\"sky\", resources.textures.sky);\n }\n}\n\n\nconst $b4e14b6b8da86996$var$canvas = document.getElementById(\"demo\");\nconst $b4e14b6b8da86996$var$gl = $b4e14b6b8da86996$var$canvas.getContext(\"webgl2\", {\n powerPreference: \"high-performance\"\n});\nconst $b4e14b6b8da86996$var$loader = $b4e14b6b8da86996$var$loaderState();\nlet $b4e14b6b8da86996$var$loaderText = document.getElementById(\"loader\");\nlet $b4e14b6b8da86996$var$statusText = document.getElementById(\"status-text\");\nlet $b4e14b6b8da86996$var$disclaimer = document.getElementById(\"disclaimer\");\nlet $b4e14b6b8da86996$var$log = document.getElementById(\"loader-log\");\nlet $b4e14b6b8da86996$var$loaderFarjan = document.getElementById(\"loader-farjan\");\nfunction $b4e14b6b8da86996$var$loaderState() {\n const ASSETS_WEIGHT = 0.3;\n const AUDIO_WEIGHT = 0.2;\n const GRAPHICS_WEIGHT = 0.5;\n let graphics = 0;\n let assets = 0;\n let audio = 0;\n return {\n get graphics () {\n return graphics;\n },\n set graphics (progress){\n graphics = progress;\n $b4e14b6b8da86996$var$updateLoadProgress();\n },\n get assets () {\n return assets;\n },\n set assets (progress){\n assets = progress;\n $b4e14b6b8da86996$var$updateLoadProgress();\n },\n get audio () {\n return audio;\n },\n set audio (progress){\n audio = progress;\n $b4e14b6b8da86996$var$updateLoadProgress();\n },\n get totalProgress () {\n return graphics * GRAPHICS_WEIGHT + assets * ASSETS_WEIGHT + audio * AUDIO_WEIGHT;\n }\n };\n}\nfunction $b4e14b6b8da86996$var$addLogMessage(message) {\n // Prepend the message to the log as a new span element\n const span = document.createElement(\"span\");\n span.innerText = message;\n $b4e14b6b8da86996$var$log?.prepend(span);\n}\nfunction $b4e14b6b8da86996$var$updateLoadProgress() {\n const totalProgress = $b4e14b6b8da86996$var$loader.totalProgress;\n if ($b4e14b6b8da86996$var$statusText) {\n if (totalProgress >= 1.0) $b4e14b6b8da86996$var$statusText.innerText = \"Press F for fullscreen, click to start.\";\n else $b4e14b6b8da86996$var$statusText.innerText = (totalProgress * 100).toFixed(0) + \"%\";\n }\n document.documentElement.style.setProperty(\"--progress\", (totalProgress * 100).toString() + \"%\");\n}\nif (!$b4e14b6b8da86996$var$gl) throw new Error(\"WebGL not supported\");\nconst $b4e14b6b8da86996$var$colorBufferFloatExt = $b4e14b6b8da86996$var$gl.getExtension(\"EXT_color_buffer_float\");\nif (!$b4e14b6b8da86996$var$colorBufferFloatExt) throw new Error(\"EXT_color_buffer_float is not supported\");\nfunction $b4e14b6b8da86996$var$savePositionToUrl(now) {\n const url = new URL(window.location.href);\n url.searchParams.set(\"t\", now.toString());\n window.history.replaceState({}, \"\", url.toString());\n}\nconst $b4e14b6b8da86996$var$debouncedSavePositionToUrl = (0, $9fd44832378de894$export$61fc7d43ac8f84b0)($b4e14b6b8da86996$var$savePositionToUrl, 100);\nconst $b4e14b6b8da86996$var$url = new URL(window.location.href);\nconst $b4e14b6b8da86996$var$debugMode = $b4e14b6b8da86996$var$url.searchParams.get(\"debug\");\nconst $b4e14b6b8da86996$var$hidpiMode = $b4e14b6b8da86996$var$url.searchParams.get(\"hidpi\");\nlet $b4e14b6b8da86996$var$debug;\nif (!$b4e14b6b8da86996$var$debugMode) // Add .production class to body to hide debug elements\ndocument.body.classList.add(\"production\");\nvar $9dd1932652d87913$exports = {};\n\n$9dd1932652d87913$exports = new URL((parcelRequire(\"27Lyk\")).resolve(\"hCbib\"), import.meta.url).toString();\n\n\nasync function $b4e14b6b8da86996$var$init(gl) {\n // Create audio tag for music\n const makaronUrl = new URL($9dd1932652d87913$exports);\n const audioElement = document.createElement(\"audio\");\n audioElement.src = makaronUrl.href;\n audioElement.loop = false;\n audioElement.autoplay = false;\n audioElement.controls = Boolean($b4e14b6b8da86996$var$debugMode);\n document.body.appendChild(audioElement);\n audioElement.addEventListener(\"canplay\", ()=>{\n $b4e14b6b8da86996$var$addLogMessage(\"Audio ready to play!\");\n $b4e14b6b8da86996$var$loader.audio = 1;\n });\n // Restore position from URL\n const t = $b4e14b6b8da86996$var$url.searchParams.get(\"t\");\n if (t) audioElement.currentTime = parseFloat(t);\n if ($b4e14b6b8da86996$var$debugMode) {\n // Create debug info box\n $b4e14b6b8da86996$var$debug = document.createElement(\"div\");\n $b4e14b6b8da86996$var$debug.id = \"debug\";\n document.body.appendChild($b4e14b6b8da86996$var$debug);\n // Delete instruction text and loader\n $b4e14b6b8da86996$var$loaderText?.remove();\n $b4e14b6b8da86996$var$loaderText = undefined;\n $b4e14b6b8da86996$var$statusText?.remove();\n $b4e14b6b8da86996$var$statusText = undefined;\n $b4e14b6b8da86996$var$disclaimer?.remove();\n $b4e14b6b8da86996$var$disclaimer = undefined;\n }\n const audioContext = new AudioContext();\n const mediaElement = audioContext.createMediaElementSource(audioElement);\n mediaElement.connect(audioContext.destination);\n const analyser = audioContext.createAnalyser();\n analyser.fftSize = 32;\n const bufferLength = analyser.frequencyBinCount;\n const fftArray = new Float32Array(bufferLength);\n mediaElement.connect(analyser);\n function updateFft() {\n analyser.getFloatFrequencyData(fftArray);\n }\n function createFftVisualizer() {\n const canvas = document.createElement(\"canvas\");\n canvas.width = bufferLength * 16;\n canvas.height = 100;\n document.body.appendChild(canvas);\n const ctx = canvas.getContext(\"2d\");\n function render() {\n requestAnimationFrame(render);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = \"white\";\n for(let i = 0; i < bufferLength; i++){\n const value = fftArray[i];\n ctx.fillRect(i * 16, 0, 16, value + 100);\n }\n }\n render();\n }\n if ($b4e14b6b8da86996$var$debugMode) createFftVisualizer();\n $b4e14b6b8da86996$var$addLogMessage(\"Loading assets...\");\n const assets = await (0, $953cdf9ae7e8a925$export$3d05a4bb6d58dbc6)(gl, (progress1, message)=>{\n $b4e14b6b8da86996$var$addLogMessage(message);\n $b4e14b6b8da86996$var$loader.assets = progress1;\n });\n $b4e14b6b8da86996$var$addLogMessage(\"Assets loaded!\");\n const onResizeCallbacks = [];\n const textShader = (0, $78f6e02f1afa4252$export$146b5478cb626851).create(gl);\n let width = 0;\n let height = 0;\n function updateResolution() {\n // Calculate 16:9 resolution based on window size\n const ratio = 16 / 9;\n const windowRatio = window.innerWidth / window.innerHeight;\n let canvasWidth = window.innerWidth;\n let canvasHeight = window.innerHeight;\n if (windowRatio > ratio) canvasWidth = window.innerHeight * ratio;\n else canvasHeight = window.innerWidth / ratio;\n $b4e14b6b8da86996$var$canvas.style.width = canvasWidth + \"px\";\n $b4e14b6b8da86996$var$canvas.style.height = canvasHeight + \"px\";\n width = $b4e14b6b8da86996$var$hidpiMode ? Math.floor(canvasWidth * window.devicePixelRatio) : Math.floor(canvasWidth);\n height = $b4e14b6b8da86996$var$hidpiMode ? Math.floor(canvasHeight * window.devicePixelRatio) : Math.floor(canvasHeight);\n $b4e14b6b8da86996$var$canvas.width = width;\n $b4e14b6b8da86996$var$canvas.height = height;\n onResizeCallbacks.forEach((cb)=>cb([\n width,\n height\n ]));\n }\n updateResolution();\n $b4e14b6b8da86996$var$addLogMessage(\"Creating post effects pipeline...\");\n const bloomPipeline = (0, $b8501dd8975bb516$export$4eee23cd507a1ab9)(gl, [\n width,\n height\n ]);\n onResizeCallbacks.push((resolution)=>{\n bloomPipeline.resize(resolution);\n });\n const postEffectsPipeline = (0, $b8501dd8975bb516$export$de1c2074635d159e)(gl, [\n width,\n height\n ], bloomPipeline.getScreenBuffer());\n onResizeCallbacks.push((resolution)=>{\n postEffectsPipeline.resize(resolution);\n });\n $b4e14b6b8da86996$var$addLogMessage(\"Post effects pipeline created!\");\n const debouncedUpdateResolution = (0, $9fd44832378de894$export$61fc7d43ac8f84b0)(updateResolution, 100);\n window.addEventListener(\"resize\", ()=>{\n debouncedUpdateResolution();\n });\n const shaderCreators = {\n intro: ()=>new (0, $c452756be1f5a68d$export$a416f783576d89ce)(gl, assets),\n main: ()=>new (0, $e818cc2b0899f0b5$export$50cd449059e2d3d8)(gl, assets),\n macaroniFactory: ()=>new (0, $cc8373dba457913f$export$22c21e3044161f2a)(gl, assets),\n outro: ()=>new (0, $a6630e3024554578$export$c3c9d3acf7f0d61e)(gl, assets),\n macaroniMachine: ()=>new (0, $9a3108eb9796c9fd$export$f94da82f4d21389c)(gl, assets),\n macaroniBox: ()=>new (0, $3f4705ce913e53c7$export$2e75c20d97e99f2b)(gl, assets),\n tesseract: ()=>new (0, $cf0396d6fff3f6c9$export$d1b85cf9c49eb72f)(gl, assets),\n lasaga: ()=>new (0, $cb977d6ea4f1ae36$export$55fe04ef2be8780b)(gl, assets)\n };\n const TOTAL_SHADERS = Object.keys(shaderCreators).length;\n const TOTAL_GL_LOADING_STEPS = 2 + TOTAL_SHADERS;\n // 1: Setup GL\n // 2 to N: Compile all shaders\n // N + 1: Warm up all shaders\n $b4e14b6b8da86996$var$loader.graphics += 1 / TOTAL_GL_LOADING_STEPS;\n const loadedShaders = {};\n let loadedShaderIndex = 1;\n for (const [name, creator] of Object.entries(shaderCreators)){\n $b4e14b6b8da86996$var$addLogMessage(`Loading scene shader ${name}... (${loadedShaderIndex}/${TOTAL_SHADERS})`);\n const shader = await $b4e14b6b8da86996$var$runImmediately(creator);\n loadedShaders[name] = shader;\n $b4e14b6b8da86996$var$loader.graphics += 1 / TOTAL_GL_LOADING_STEPS;\n loadedShaderIndex++;\n }\n $b4e14b6b8da86996$var$addLogMessage(\"Scene shaders loaded!\");\n const shaderByName = loadedShaders;\n // Do not warmup in debug mode\n if (!$b4e14b6b8da86996$var$debugMode) {\n $b4e14b6b8da86996$var$addLogMessage(\"Warming up shaders... this may take a while.\");\n let warmupIndex = 0;\n for (const shader of Object.values(shaderByName)){\n await $b4e14b6b8da86996$var$runImmediately(()=>{\n $b4e14b6b8da86996$var$renderOnceWithState({\n shader: shader,\n state: (0, $b62e014a4102e0be$export$a3a6a28ae8823b06),\n fftArray: fftArray,\n gl: gl,\n postEffectsPipeline: postEffectsPipeline,\n bloomPipeline: bloomPipeline,\n width: width,\n height: height\n });\n });\n warmupIndex++;\n $b4e14b6b8da86996$var$addLogMessage(`Warming up shaders... ${warmupIndex}/6`);\n }\n }\n $b4e14b6b8da86996$var$loader.graphics += 1 / TOTAL_GL_LOADING_STEPS;\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.enable(gl.DEPTH_TEST);\n let sequencer = new (0, $b62e014a4102e0be$export$f195f25b42d46a8c)({\n bpm: 172,\n initialScene: (0, $0b0b5258dcf58045$export$85f2f34eb806ade4)\n });\n sequencer.preprocess(textShader, assets.fonts);\n let running = false;\n let startTime = 0;\n const frameLength = 1000 / 60;\n let previousTime = 0;\n function render(timestamp, once) {\n if (!gl) return;\n if (!once && timestamp - previousTime < frameLength) {\n requestAnimationFrame((timestamp)=>render(timestamp));\n return;\n }\n if (!running && !once) return;\n updateFft();\n const musicNow = audioElement.currentTime;\n const now = running ? performance.now() / 1000 - startTime : musicNow;\n const state = sequencer.getStateAt(now);\n if ($b4e14b6b8da86996$var$debugMode) $b4e14b6b8da86996$var$updateDebugState(state);\n const shader = shaderByName[state.shader];\n $b4e14b6b8da86996$var$renderOnceWithState({\n gl: gl,\n shader: shader,\n state: state,\n width: width,\n height: height,\n fftArray: fftArray,\n postEffectsPipeline: postEffectsPipeline,\n bloomPipeline: bloomPipeline\n });\n if (!once) {\n previousTime = timestamp;\n requestAnimationFrame((timestamp)=>render(timestamp));\n }\n }\n const renderOnceThrottled = (0, $9fd44832378de894$export$de363e709c412c8a)(()=>render(0, true), 100);\n function onChangeTime() {\n const musicNow = audioElement.currentTime;\n const now = performance.now() / 1000;\n startTime = now - musicNow;\n }\n render(0, true);\n $b4e14b6b8da86996$var$addLogMessage(\"Ready to render!\");\n $b4e14b6b8da86996$var$canvas.classList.remove(\"hidden\");\n $b4e14b6b8da86996$var$loaderFarjan?.remove();\n $b4e14b6b8da86996$var$loaderFarjan = undefined;\n if ($b4e14b6b8da86996$var$log) {\n $b4e14b6b8da86996$var$log.remove();\n $b4e14b6b8da86996$var$log = undefined;\n }\n async function start() {\n if (running) return;\n running = true;\n if ($b4e14b6b8da86996$var$loaderText) {\n $b4e14b6b8da86996$var$loaderText.remove();\n $b4e14b6b8da86996$var$loaderText = undefined;\n $b4e14b6b8da86996$var$statusText = undefined;\n $b4e14b6b8da86996$var$disclaimer?.remove();\n $b4e14b6b8da86996$var$disclaimer = undefined;\n }\n await audioContext.resume();\n await audioElement.play();\n onChangeTime();\n requestAnimationFrame(()=>render(0, false));\n }\n audioElement.addEventListener(\"play\", start);\n audioElement.addEventListener(\"seeking\", ()=>{\n onChangeTime();\n $b4e14b6b8da86996$var$debouncedSavePositionToUrl(audioElement.currentTime);\n if (!running) renderOnceThrottled();\n });\n audioElement.addEventListener(\"pause\", ()=>{\n running = false;\n });\n $b4e14b6b8da86996$var$canvas.addEventListener(\"click\", ()=>{\n if (audioElement.paused) audioElement.play();\n else audioElement.pause();\n });\n document.addEventListener(\"keydown\", (e)=>{\n if (e.key === \"e\") // advance one frame\n audioElement.currentTime += 1 / 60;\n if (e.key === \"q\") // rewind one frame\n audioElement.currentTime -= 1 / 60;\n if (e.key === \"r\") // reset\n audioElement.currentTime = 0;\n if (e.key === \"f\") {\n // toggle fullscreen\n if (document.fullscreenElement) document.exitFullscreen();\n else document.body.requestFullscreen();\n }\n });\n}\n$b4e14b6b8da86996$var$init($b4e14b6b8da86996$var$gl).catch((e)=>{\n console.error(e);\n});\nfunction $b4e14b6b8da86996$var$updateDebugState(state) {\n const { now: now, sceneNow: sceneNow, nowInSceneBeats: nowInSceneBeats, name: name, beat: beat, sceneId: sceneId, camera: camera, sceneProgress: sceneProgress, sceneVariables: sceneVariables, sceneVariables2: sceneVariables2, fade: fade, backgroundColor: backgroundColor, lighting: lighting, shader: shader, effects: effects } = state;\n $b4e14b6b8da86996$var$debug.innerText = JSON.stringify({\n now: now,\n sceneNow: sceneNow,\n nowInSceneBeats: nowInSceneBeats,\n name: name,\n beat: beat,\n sceneId: sceneId,\n camera: camera,\n sceneProgress: sceneProgress,\n sceneVariables: sceneVariables,\n sceneVariables2: sceneVariables2,\n fade: fade,\n backgroundColor: backgroundColor,\n lighting: lighting,\n shader: shader,\n effects: effects\n }, null, 2);\n}\nfunction $b4e14b6b8da86996$var$renderOnceWithState({ shader: shader, state: state, width: width, height: height, fftArray: fftArray, postEffectsPipeline: postEffectsPipeline, bloomPipeline: bloomPipeline, gl: gl }) {\n gl.viewport(0, 0, width, height);\n gl.disable(gl.BLEND);\n // Clear screen\n gl.clearColor(0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n postEffectsPipeline.beforeScene();\n // Clear buffer\n gl.clearColor(0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n gl.depthFunc(gl.LEQUAL);\n shader.render({\n ...state,\n resolution: [\n width,\n height\n ],\n fft: fftArray\n });\n bloomPipeline.copyFromScreenBuffer();\n bloomPipeline.render({\n now: state.now,\n resolution: [\n width,\n height\n ],\n fadeColor: [\n 0,\n 0,\n 0,\n 0\n ]\n });\n postEffectsPipeline.render({\n now: state.now,\n resolution: [\n width,\n height\n ],\n fadeColor: state.fade,\n enableEffects: state.effects?.enable?.[0] === \"vhs\" ? {\n \"VHS Distortion\": true\n } : undefined\n });\n gl.depthFunc(gl.ALWAYS);\n gl.enable(gl.BLEND);\n for (const text of state.texts)text.text.render({\n now: state.now,\n resolution: [\n width,\n height\n ],\n opacity: text.opacity,\n params: text.params\n });\n}\n// Runs a blocking function but allows the event loop to run in between\nasync function $b4e14b6b8da86996$var$runImmediately(cb) {\n return new Promise((resolve)=>{\n setTimeout(()=>{\n resolve(cb());\n }, 0);\n });\n}\n\n\n//# sourceMappingURL=index.6a6da4d0.js.map\n","import { loadAllAssets } from \"./loader\";\nimport { TextShader } from \"./rendering/TextShader\";\nimport {\n DEFAULT_STATE,\n InstantState,\n Sequencer,\n ShaderName,\n} from \"./sequencer\";\nimport { debounce, throttle } from \"./util\";\nimport { SDFQuad } from \"./rendering/scenes/SDFQuad\";\nimport {\n createBloomPipeline,\n createPostEffectsPipeline,\n} from \"./rendering/createPostEffectsPipeline\";\nimport { MainShader as MainShader } from \"./rendering/scenes/MainShader\";\nimport { IntroShader } from \"./rendering/scenes/IntroShader\";\nimport { timeline } from \"./scenes/timeline\";\nimport { MacaroniFactoryShader } from \"./rendering/scenes/MacaroniFactoryShader\";\nimport { OutroShader } from \"./rendering/scenes/OutroShader\";\nimport { MacaroniMachineShader } from \"./rendering/scenes/MachineShader\";\nimport { MacaroniBoxShader } from \"./rendering/scenes/MacaroniBoxShader\";\nimport { PostEffectsPipeline } from \"./rendering/PostEffectsPipeline\";\nimport { TesseractShader } from \"./rendering/scenes/TesseractShader\";\nimport { LasagaShader } from \"./rendering/scenes/LasagaShader\";\n\nconst canvas = document.getElementById(\"demo\") as HTMLCanvasElement;\nconst gl = canvas.getContext(\"webgl2\", { powerPreference: \"high-performance\" });\n\nconst loader = loaderState();\n\nlet loaderText: HTMLElement | undefined = document.getElementById(\"loader\")!;\nlet statusText: HTMLElement | undefined =\n document.getElementById(\"status-text\")!;\nlet disclaimer: HTMLElement | undefined =\n document.getElementById(\"disclaimer\")!;\nlet log: HTMLElement | undefined = document.getElementById(\"loader-log\")!;\nlet loaderFarjan: HTMLElement | undefined =\n document.getElementById(\"loader-farjan\")!;\n\nfunction loaderState(): {\n graphics: number;\n assets: number;\n audio: number;\n readonly totalProgress: number;\n} {\n const ASSETS_WEIGHT = 0.3;\n const AUDIO_WEIGHT = 0.2;\n const GRAPHICS_WEIGHT = 0.5;\n\n let graphics = 0;\n let assets = 0;\n let audio = 0;\n\n return {\n get graphics() {\n return graphics;\n },\n set graphics(progress: number) {\n graphics = progress;\n updateLoadProgress();\n },\n get assets() {\n return assets;\n },\n set assets(progress: number) {\n assets = progress;\n updateLoadProgress();\n },\n get audio() {\n return audio;\n },\n set audio(progress: number) {\n audio = progress;\n updateLoadProgress();\n },\n get totalProgress() {\n return (\n graphics * GRAPHICS_WEIGHT +\n assets * ASSETS_WEIGHT +\n audio * AUDIO_WEIGHT\n );\n },\n };\n}\n\nfunction addLogMessage(message: string) {\n // Prepend the message to the log as a new span element\n const span = document.createElement(\"span\");\n span.innerText = message;\n log?.prepend(span);\n}\n\nfunction updateLoadProgress() {\n const totalProgress = loader.totalProgress;\n if (statusText) {\n if (totalProgress >= 1.0) {\n statusText.innerText = \"Press F for fullscreen, click to start.\";\n } else {\n statusText.innerText = (totalProgress * 100).toFixed(0) + \"%\";\n }\n }\n\n document.documentElement.style.setProperty(\n \"--progress\",\n (totalProgress * 100).toString() + \"%\",\n );\n}\n\nif (!gl) {\n throw new Error(\"WebGL not supported\");\n}\n\nconst colorBufferFloatExt = gl.getExtension(\"EXT_color_buffer_float\");\nif (!colorBufferFloatExt) {\n throw new Error(\"EXT_color_buffer_float is not supported\");\n}\n\nfunction savePositionToUrl(now: number) {\n const url = new URL(window.location.href);\n url.searchParams.set(\"t\", now.toString());\n window.history.replaceState({}, \"\", url.toString());\n}\n\nconst debouncedSavePositionToUrl = debounce(savePositionToUrl, 100);\n\nconst url = new URL(window.location.href);\n\nconst debugMode = url.searchParams.get(\"debug\");\nconst hidpiMode = url.searchParams.get(\"hidpi\");\n\nlet debug: HTMLElement | undefined;\n\nif (!debugMode) {\n // Add .production class to body to hide debug elements\n document.body.classList.add(\"production\");\n}\n\nasync function init(gl: WebGL2RenderingContext) {\n // Create audio tag for music\n const makaronUrl = new URL(\"MakaronMemoir.ogg\", import.meta.url);\n const audioElement = document.createElement(\"audio\");\n audioElement.src = makaronUrl.href;\n audioElement.loop = false;\n audioElement.autoplay = false;\n audioElement.controls = Boolean(debugMode);\n document.body.appendChild(audioElement);\n\n audioElement.addEventListener(\"canplay\", () => {\n addLogMessage(\"Audio ready to play!\");\n loader.audio = 1;\n });\n\n // Restore position from URL\n const t = url.searchParams.get(\"t\");\n if (t) {\n audioElement.currentTime = parseFloat(t);\n }\n\n if (debugMode) {\n // Create debug info box\n debug = document.createElement(\"div\");\n debug.id = \"debug\";\n document.body.appendChild(debug);\n\n // Delete instruction text and loader\n loaderText?.remove();\n loaderText = undefined;\n statusText?.remove();\n statusText = undefined;\n disclaimer?.remove();\n disclaimer = undefined;\n }\n\n const audioContext = new AudioContext();\n const mediaElement = audioContext.createMediaElementSource(audioElement);\n mediaElement.connect(audioContext.destination);\n\n const analyser = audioContext.createAnalyser();\n analyser.fftSize = 32;\n const bufferLength = analyser.frequencyBinCount;\n const fftArray = new Float32Array(bufferLength);\n mediaElement.connect(analyser);\n\n function updateFft() {\n analyser.getFloatFrequencyData(fftArray);\n }\n\n function createFftVisualizer() {\n const canvas = document.createElement(\"canvas\");\n canvas.width = bufferLength * 16;\n canvas.height = 100;\n document.body.appendChild(canvas);\n\n const ctx = canvas.getContext(\"2d\")!;\n\n function render() {\n requestAnimationFrame(render);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = \"white\";\n for (let i = 0; i < bufferLength; i++) {\n const value = fftArray[i];\n ctx.fillRect(i * 16, 0, 16, value + 100);\n }\n }\n\n render();\n }\n\n if (debugMode) {\n createFftVisualizer();\n }\n\n addLogMessage(\"Loading assets...\");\n\n const assets = await loadAllAssets(gl, (progress, message) => {\n addLogMessage(message);\n loader.assets = progress;\n });\n\n addLogMessage(\"Assets loaded!\");\n\n const onResizeCallbacks: ((resolution: [number, number]) => void)[] = [];\n\n const textShader = TextShader.create(gl);\n\n let width = 0;\n let height = 0;\n\n function updateResolution() {\n // Calculate 16:9 resolution based on window size\n const ratio = 16 / 9;\n const windowRatio = window.innerWidth / window.innerHeight;\n let canvasWidth = window.innerWidth;\n let canvasHeight = window.innerHeight;\n\n if (windowRatio > ratio) {\n canvasWidth = window.innerHeight * ratio;\n } else {\n canvasHeight = window.innerWidth / ratio;\n }\n\n canvas.style.width = canvasWidth + \"px\";\n canvas.style.height = canvasHeight + \"px\";\n\n width = hidpiMode\n ? Math.floor(canvasWidth * window.devicePixelRatio)\n : Math.floor(canvasWidth);\n height = hidpiMode\n ? Math.floor(canvasHeight * window.devicePixelRatio)\n : Math.floor(canvasHeight);\n\n canvas.width = width;\n canvas.height = height;\n onResizeCallbacks.forEach((cb) => cb([width, height]));\n }\n\n updateResolution();\n\n addLogMessage(\"Creating post effects pipeline...\");\n\n const bloomPipeline = createBloomPipeline(gl, [width, height]);\n onResizeCallbacks.push((resolution) => {\n bloomPipeline.resize(resolution);\n });\n\n const postEffectsPipeline = createPostEffectsPipeline(\n gl,\n [width, height],\n bloomPipeline.getScreenBuffer(),\n );\n onResizeCallbacks.push((resolution) => {\n postEffectsPipeline.resize(resolution);\n });\n\n addLogMessage(\"Post effects pipeline created!\");\n\n const debouncedUpdateResolution = debounce(updateResolution, 100);\n\n window.addEventListener(\"resize\", () => {\n debouncedUpdateResolution();\n });\n\n const shaderCreators: Record SDFQuad> = {\n intro: () => new IntroShader(gl, assets),\n main: () => new MainShader(gl, assets),\n macaroniFactory: () => new MacaroniFactoryShader(gl, assets),\n outro: () => new OutroShader(gl, assets),\n macaroniMachine: () => new MacaroniMachineShader(gl, assets),\n macaroniBox: () => new MacaroniBoxShader(gl, assets),\n tesseract: () => new TesseractShader(gl, assets),\n lasaga: () => new LasagaShader(gl, assets),\n };\n const TOTAL_SHADERS = Object.keys(shaderCreators).length;\n const TOTAL_GL_LOADING_STEPS = 2 + TOTAL_SHADERS;\n\n // 1: Setup GL\n // 2 to N: Compile all shaders\n // N + 1: Warm up all shaders\n loader.graphics += 1 / TOTAL_GL_LOADING_STEPS;\n\n const loadedShaders: Partial> = {};\n let loadedShaderIndex = 1;\n\n for (const [name, creator] of Object.entries(shaderCreators)) {\n addLogMessage(\n `Loading scene shader ${name}... (${loadedShaderIndex}/${TOTAL_SHADERS})`,\n );\n const shader = await runImmediately(creator);\n loadedShaders[name as ShaderName] = shader;\n loader.graphics += 1 / TOTAL_GL_LOADING_STEPS;\n loadedShaderIndex++;\n }\n\n addLogMessage(\"Scene shaders loaded!\");\n const shaderByName = loadedShaders as Record;\n\n // Do not warmup in debug mode\n if (!debugMode) {\n addLogMessage(\"Warming up shaders... this may take a while.\");\n let warmupIndex = 0;\n\n for (const shader of Object.values(shaderByName)) {\n await runImmediately(() => {\n renderOnceWithState({\n shader,\n state: DEFAULT_STATE,\n fftArray,\n gl,\n postEffectsPipeline,\n bloomPipeline,\n width,\n height,\n });\n });\n\n warmupIndex++;\n addLogMessage(`Warming up shaders... ${warmupIndex}/6`);\n }\n }\n\n loader.graphics += 1 / TOTAL_GL_LOADING_STEPS;\n\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.enable(gl.DEPTH_TEST);\n\n let sequencer = new Sequencer({\n bpm: 172,\n initialScene: timeline,\n });\n\n sequencer.preprocess(textShader, assets.fonts);\n\n let running = false;\n let startTime = 0;\n\n const frameLength = 1000 / 60;\n let previousTime = 0;\n\n function render(timestamp: number, once?: boolean) {\n if (!gl) {\n return;\n }\n\n if (!once && timestamp - previousTime < frameLength) {\n requestAnimationFrame((timestamp) => render(timestamp));\n return;\n }\n\n if (!running && !once) {\n return;\n }\n\n updateFft();\n\n const musicNow = audioElement.currentTime;\n const now = running ? performance.now() / 1000 - startTime : musicNow;\n\n const state = sequencer.getStateAt(now);\n\n if (debugMode) {\n updateDebugState(state);\n }\n\n const shader = shaderByName[state.shader];\n\n renderOnceWithState({\n gl,\n shader,\n state,\n width,\n height,\n fftArray,\n postEffectsPipeline,\n bloomPipeline,\n });\n\n if (!once) {\n previousTime = timestamp;\n requestAnimationFrame((timestamp) => render(timestamp));\n }\n }\n\n const renderOnceThrottled = throttle(() => render(0, true), 100);\n\n function onChangeTime() {\n const musicNow = audioElement.currentTime;\n const now = performance.now() / 1000;\n startTime = now - musicNow;\n }\n\n render(0, true);\n\n addLogMessage(\"Ready to render!\");\n canvas.classList.remove(\"hidden\");\n loaderFarjan?.remove();\n loaderFarjan = undefined;\n\n if (log) {\n log.remove();\n log = undefined;\n }\n\n async function start() {\n if (running) {\n return;\n }\n running = true;\n\n if (loaderText) {\n loaderText.remove();\n loaderText = undefined;\n statusText = undefined;\n disclaimer?.remove();\n disclaimer = undefined;\n }\n\n await audioContext.resume();\n await audioElement.play();\n onChangeTime();\n requestAnimationFrame(() => render(0, false));\n }\n\n audioElement.addEventListener(\"play\", start);\n audioElement.addEventListener(\"seeking\", () => {\n onChangeTime();\n debouncedSavePositionToUrl(audioElement.currentTime);\n if (!running) {\n renderOnceThrottled();\n }\n });\n audioElement.addEventListener(\"pause\", () => {\n running = false;\n });\n\n canvas.addEventListener(\"click\", () => {\n if (audioElement.paused) {\n audioElement.play();\n } else {\n audioElement.pause();\n }\n });\n\n document.addEventListener(\"keydown\", (e) => {\n if (e.key === \"e\") {\n // advance one frame\n audioElement.currentTime += 1 / 60;\n }\n\n if (e.key === \"q\") {\n // rewind one frame\n audioElement.currentTime -= 1 / 60;\n }\n\n if (e.key === \"r\") {\n // reset\n audioElement.currentTime = 0;\n }\n\n if (e.key === \"f\") {\n // toggle fullscreen\n if (document.fullscreenElement) {\n document.exitFullscreen();\n } else {\n document.body.requestFullscreen();\n }\n }\n });\n}\n\ninit(gl).catch((e) => {\n console.error(e);\n});\n\nfunction updateDebugState(state: InstantState) {\n const {\n now,\n sceneNow,\n nowInSceneBeats,\n name,\n beat,\n sceneId,\n camera,\n sceneProgress,\n sceneVariables,\n sceneVariables2,\n fade,\n backgroundColor,\n lighting,\n shader,\n effects,\n } = state;\n debug!.innerText = JSON.stringify(\n {\n now,\n sceneNow,\n nowInSceneBeats,\n name,\n beat,\n sceneId,\n camera,\n sceneProgress,\n sceneVariables,\n sceneVariables2,\n fade,\n backgroundColor,\n lighting,\n shader,\n effects,\n },\n null,\n 2,\n );\n}\n\nfunction renderOnceWithState({\n shader,\n state,\n width,\n height,\n fftArray,\n postEffectsPipeline,\n bloomPipeline,\n gl,\n}: {\n shader: SDFQuad;\n state: InstantState;\n width: number;\n height: number;\n fftArray: Float32Array;\n postEffectsPipeline: PostEffectsPipeline;\n bloomPipeline: PostEffectsPipeline;\n gl: WebGL2RenderingContext;\n}) {\n gl.viewport(0, 0, width, height);\n gl.disable(gl.BLEND);\n\n // Clear screen\n gl.clearColor(0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n\n postEffectsPipeline.beforeScene();\n\n // Clear buffer\n gl.clearColor(0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n gl.depthFunc(gl.LEQUAL);\n\n shader.render({\n ...state,\n resolution: [width, height],\n fft: fftArray,\n });\n\n bloomPipeline.copyFromScreenBuffer();\n\n bloomPipeline.render({\n now: state.now,\n resolution: [width, height],\n fadeColor: [0, 0, 0, 0],\n });\n\n postEffectsPipeline.render({\n now: state.now,\n resolution: [width, height],\n fadeColor: state.fade,\n enableEffects:\n state.effects?.enable?.[0] === \"vhs\"\n ? {\n \"VHS Distortion\": true,\n }\n : undefined,\n });\n\n gl.depthFunc(gl.ALWAYS);\n gl.enable(gl.BLEND);\n\n for (const text of state.texts) {\n text.text.render({\n now: state.now,\n resolution: [width, height],\n opacity: text.opacity,\n params: text.params,\n });\n }\n}\n\n// Runs a blocking function but allows the event loop to run in between\nasync function runImmediately(cb: () => T): Promise {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(cb());\n }, 0);\n });\n}\n","import { FontDescription } from \"./sdfText\";\n\nimport * as pastaDescription from \"./armonela72.json\";\nimport pasta64 from \"data-url:./armonela256.png\";\nimport * as novareseDescription from \"./novarese.json\";\nimport novarese from \"data-url:./novarese.png\";\n\nimport { xoshiro128ss } from \"./random\";\n\nexport interface LoadedFont {\n id: number;\n description: FontDescription;\n texture: WebGLTexture;\n scale: number;\n}\n\nexport type FontName = \"arial\" | \"pasta\" | \"novarese\";\nexport type Fonts = Record;\n\nexport interface LoadedState {\n fonts: Fonts;\n textures: {\n metal: WebGLTexture;\n metalNormal: WebGLTexture;\n noise: WebGLTexture;\n splashBg: WebGLTexture;\n splashFg: WebGLTexture;\n splashMask: WebGLTexture;\n sparkle: WebGLTexture;\n sky: WebGLTexture;\n };\n}\n\ninterface TextureLoadingSettings {\n noRepeat?: boolean;\n}\n\nasync function loadTexture(\n gl: WebGL2RenderingContext,\n url: string,\n settings?: TextureLoadingSettings,\n): Promise {\n const image = new Image();\n image.src = url;\n await image.decode();\n\n const texture = gl.createTexture();\n\n if (!texture) {\n throw new Error(\"Failed to create texture\");\n }\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n\n if (settings?.noRepeat) {\n // Clamp\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n }\n\n // Flip Y\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\n\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n gl.generateMipmap(gl.TEXTURE_2D);\n\n return texture;\n}\n\nasync function loadFont({\n gl,\n description,\n textureUrl,\n id,\n scale,\n}: {\n gl: WebGL2RenderingContext;\n description: FontDescription;\n textureUrl: string;\n id: number;\n scale: number;\n}): Promise {\n // Load image\n const image = new Image();\n image.src = textureUrl;\n await image.decode();\n\n const texture = gl.createTexture();\n\n if (!texture) {\n throw new Error(\"Failed to create texture\");\n }\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n // Clamp\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n // Disable interpolation\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n //gl.generateMipmap(gl.TEXTURE_2D);\n\n return {\n description,\n texture,\n id,\n scale,\n };\n}\n\nexport function generateRandomNoiseTexture(\n glContext: WebGL2RenderingContext,\n): WebGLTexture {\n const size = 256;\n const data = new Uint8Array(size * size * 4);\n\n const rng = xoshiro128ss(3447226902, 3732301963, 1546073757, 602736451);\n\n for (let i = 0; i < size * size * 4; i++) {\n data[i] = Math.floor(rng() * 255);\n }\n\n const texture = glContext.createTexture();\n\n if (!texture) {\n throw new Error(\"Failed to create texture\");\n }\n\n glContext.bindTexture(glContext.TEXTURE_2D, texture);\n // Repeat\n glContext.texParameteri(\n glContext.TEXTURE_2D,\n glContext.TEXTURE_WRAP_S,\n glContext.REPEAT,\n );\n glContext.texParameteri(\n glContext.TEXTURE_2D,\n glContext.TEXTURE_WRAP_T,\n glContext.REPEAT,\n );\n // Enable interpolation\n glContext.texParameteri(\n glContext.TEXTURE_2D,\n glContext.TEXTURE_MAG_FILTER,\n glContext.LINEAR,\n );\n glContext.texParameteri(\n glContext.TEXTURE_2D,\n glContext.TEXTURE_MIN_FILTER,\n glContext.LINEAR_MIPMAP_LINEAR,\n );\n\n glContext.pixelStorei(glContext.UNPACK_ALIGNMENT, 1);\n glContext.pixelStorei(\n glContext.UNPACK_COLORSPACE_CONVERSION_WEBGL,\n glContext.NONE,\n );\n glContext.texImage2D(\n glContext.TEXTURE_2D,\n 0,\n glContext.RGBA,\n size,\n size,\n 0,\n glContext.RGBA,\n glContext.UNSIGNED_BYTE,\n data,\n );\n\n glContext.generateMipmap(glContext.TEXTURE_2D);\n\n return texture;\n}\n\ntype DeepPartial = {\n [P in keyof T]?: DeepPartial;\n};\n\ntype AssetLoader = (\n state: DeepPartial,\n glContext: WebGL2RenderingContext,\n) => Promise;\n\nfunction fontLoader({\n id,\n name: fontName,\n description,\n textureUrl,\n scale,\n}: {\n id: number;\n name: FontName;\n description: FontDescription;\n textureUrl: string;\n scale: number;\n}): AssetLoader {\n return async (state, gl) => {\n const font = await loadFont({ gl, description, textureUrl, id, scale });\n state.fonts = state.fonts || {};\n state.fonts[fontName] = font;\n };\n}\n\nfunction textureLoader(\n textureName: keyof LoadedState[\"textures\"],\n url: URL,\n settings?: TextureLoadingSettings,\n): AssetLoader {\n return async (state, glContext) => {\n const texture = await loadTexture(glContext, url.href, settings);\n state.textures = state.textures || {};\n state.textures[textureName] = texture;\n };\n}\n\nasync function noiseLoader(\n state: DeepPartial,\n glContext: WebGL2RenderingContext,\n): Promise {\n const noise = generateRandomNoiseTexture(glContext);\n state.textures = state.textures || {};\n state.textures.noise = noise;\n}\n\nconst assets = [\n fontLoader({\n id: 0,\n name: \"pasta\",\n description: pastaDescription,\n textureUrl: pasta64,\n scale: 0.001,\n }),\n fontLoader({\n id: 1,\n name: \"novarese\",\n description: novareseDescription,\n textureUrl: novarese,\n scale: 0.002,\n }),\n textureLoader(\"metal\", new URL(\"textures/steel.png\", import.meta.url)),\n textureLoader(\n \"metalNormal\",\n new URL(\"textures/steel_n.png\", import.meta.url),\n ),\n textureLoader(\n \"splashBg\",\n new URL(\"textures/makaronin_ystavaet_bg.png\", import.meta.url),\n ),\n textureLoader(\n \"splashFg\",\n new URL(\"textures/makaronin_ystavaet_fg.png\", import.meta.url),\n ),\n textureLoader(\n \"splashMask\",\n new URL(\"textures/makaronin_ystavaet_mask.png\", import.meta.url),\n ),\n textureLoader(\"sparkle\", new URL(\"textures/sparkle.png\", import.meta.url)),\n textureLoader(\"sky\", new URL(\"textures/sky.png\", import.meta.url), {\n noRepeat: true,\n }),\n noiseLoader,\n];\n\nexport const TOTAL_ASSETS = assets.length;\n\nexport async function loadAllAssets(\n glContext: WebGL2RenderingContext,\n onProgress: (progress: number, message: string) => void,\n): Promise {\n let loadTotal = 0;\n\n const advanceProgress = (x: T) => {\n loadTotal++;\n onProgress(\n loadTotal / TOTAL_ASSETS,\n `Loaded asset ${loadTotal}/${TOTAL_ASSETS}`,\n );\n return x;\n };\n\n let state: DeepPartial = {};\n const promises = assets.map((loader) =>\n loader(state, glContext).then(advanceProgress),\n );\n\n await Promise.all(promises);\n\n return state as LoadedState;\n}\n","{\n \"name\": \"Armonela Black\",\n \"size\": 256,\n \"bold\": false,\n \"italic\": false,\n \"width\": 3068,\n \"height\": 927,\n \"characters\": {\n \"0\":{\"x\":1345,\"y\":662,\"width\":131,\"height\":186,\"originX\":4,\"originY\":166,\"advance\":129},\n \"1\":{\"x\":1855,\"y\":662,\"width\":96,\"height\":186,\"originX\":5,\"originY\":166,\"advance\":92},\n \"2\":{\"x\":1079,\"y\":662,\"width\":134,\"height\":186,\"originX\":8,\"originY\":166,\"advance\":130},\n \"3\":{\"x\":689,\"y\":662,\"width\":124,\"height\":188,\"originX\":4,\"originY\":166,\"advance\":122},\n \"4\":{\"x\":934,\"y\":662,\"width\":145,\"height\":186,\"originX\":7,\"originY\":166,\"advance\":136},\n \"5\":{\"x\":813,\"y\":662,\"width\":121,\"height\":188,\"originX\":5,\"originY\":167,\"advance\":123},\n \"6\":{\"x\":1476,\"y\":662,\"width\":129,\"height\":186,\"originX\":4,\"originY\":166,\"advance\":131},\n \"7\":{\"x\":1605,\"y\":662,\"width\":125,\"height\":186,\"originX\":4,\"originY\":166,\"advance\":125},\n \"8\":{\"x\":1213,\"y\":662,\"width\":132,\"height\":186,\"originX\":10,\"originY\":166,\"advance\":123},\n \"9\":{\"x\":1730,\"y\":662,\"width\":125,\"height\":186,\"originX\":5,\"originY\":166,\"advance\":120},\n \" \":{\"x\":479,\"y\":864,\"width\":12,\"height\":12,\"originX\":6,\"originY\":6,\"advance\":68},\n \"!\":{\"x\":577,\"y\":0,\"width\":81,\"height\":242,\"originX\":-7,\"originY\":204,\"advance\":80},\n \"\\\"\":{\"x\":2816,\"y\":662,\"width\":83,\"height\":85,\"originX\":-11,\"originY\":179,\"advance\":104},\n \"#\":{\"x\":558,\"y\":662,\"width\":131,\"height\":189,\"originX\":1,\"originY\":179,\"advance\":128},\n \"$\":{\"x\":1105,\"y\":0,\"width\":114,\"height\":215,\"originX\":-8,\"originY\":190,\"advance\":128},\n \"%\":{\"x\":351,\"y\":662,\"width\":207,\"height\":192,\"originX\":-3,\"originY\":179,\"advance\":213},\n \"&\":{\"x\":933,\"y\":0,\"width\":172,\"height\":215,\"originX\":4,\"originY\":191,\"advance\":159},\n \"'\":{\"x\":2708,\"y\":662,\"width\":54,\"height\":87,\"originX\":-7,\"originY\":196,\"advance\":67},\n \"(\":{\"x\":393,\"y\":0,\"width\":81,\"height\":245,\"originX\":-5,\"originY\":184,\"advance\":85},\n \")\":{\"x\":474,\"y\":0,\"width\":81,\"height\":245,\"originX\":0,\"originY\":184,\"advance\":85},\n \"*\":{\"x\":2481,\"y\":662,\"width\":104,\"height\":116,\"originX\":-12,\"originY\":184,\"advance\":128},\n \"+\":{\"x\":2000,\"y\":662,\"width\":147,\"height\":147,\"originX\":1,\"originY\":158,\"advance\":144},\n \",\":{\"x\":2762,\"y\":662,\"width\":54,\"height\":87,\"originX\":-7,\"originY\":50,\"advance\":67},\n \"-\":{\"x\":257,\"y\":864,\"width\":77,\"height\":31,\"originX\":-4,\"originY\":73,\"advance\":85},\n \".\":{\"x\":0,\"y\":864,\"width\":59,\"height\":63,\"originX\":-7,\"originY\":33,\"advance\":72},\n \"/\":{\"x\":183,\"y\":662,\"width\":84,\"height\":193,\"originX\":6,\"originY\":184,\"advance\":71},\n \":\":{\"x\":2441,\"y\":662,\"width\":40,\"height\":133,\"originX\":-16,\"originY\":124,\"advance\":71},\n \";\":{\"x\":1951,\"y\":662,\"width\":49,\"height\":173,\"originX\":-12,\"originY\":124,\"advance\":71},\n \"<\":{\"x\":2147,\"y\":662,\"width\":147,\"height\":135,\"originX\":1,\"originY\":152,\"advance\":144},\n \"=\":{\"x\":2899,\"y\":662,\"width\":147,\"height\":63,\"originX\":1,\"originY\":116,\"advance\":144},\n \">\":{\"x\":2294,\"y\":662,\"width\":147,\"height\":135,\"originX\":1,\"originY\":152,\"advance\":144},\n \"?\":{\"x\":658,\"y\":0,\"width\":141,\"height\":237,\"originX\":-7,\"originY\":200,\"advance\":145},\n \"@\":{\"x\":0,\"y\":0,\"width\":229,\"height\":245,\"originX\":-6,\"originY\":184,\"advance\":236},\n \"A\":{\"x\":1868,\"y\":454,\"width\":148,\"height\":205,\"originX\":4,\"originY\":186,\"advance\":142},\n \"B\":{\"x\":548,\"y\":454,\"width\":154,\"height\":207,\"originX\":8,\"originY\":187,\"advance\":147},\n \"C\":{\"x\":2741,\"y\":0,\"width\":141,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":126},\n \"D\":{\"x\":2164,\"y\":454,\"width\":152,\"height\":204,\"originX\":10,\"originY\":183,\"advance\":144},\n \"E\":{\"x\":2468,\"y\":454,\"width\":151,\"height\":203,\"originX\":10,\"originY\":182,\"advance\":130},\n \"F\":{\"x\":1650,\"y\":245,\"width\":151,\"height\":208,\"originX\":-2,\"originY\":185,\"advance\":130},\n \"G\":{\"x\":2153,\"y\":0,\"width\":150,\"height\":210,\"originX\":1,\"originY\":190,\"advance\":146},\n \"H\":{\"x\":2453,\"y\":0,\"width\":144,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":123},\n \"I\":{\"x\":0,\"y\":454,\"width\":110,\"height\":208,\"originX\":5,\"originY\":186,\"advance\":97},\n \"J\":{\"x\":968,\"y\":245,\"width\":171,\"height\":208,\"originX\":6,\"originY\":187,\"advance\":141},\n \"K\":{\"x\":2250,\"y\":245,\"width\":147,\"height\":208,\"originX\":6,\"originY\":185,\"advance\":130},\n \"L\":{\"x\":2832,\"y\":245,\"width\":118,\"height\":208,\"originX\":4,\"originY\":188,\"advance\":113},\n \"M\":{\"x\":360,\"y\":245,\"width\":170,\"height\":209,\"originX\":5,\"originY\":189,\"advance\":154},\n \"N\":{\"x\":856,\"y\":454,\"width\":154,\"height\":206,\"originX\":5,\"originY\":184,\"advance\":140},\n \"O\":{\"x\":1859,\"y\":0,\"width\":147,\"height\":211,\"originX\":2,\"originY\":189,\"advance\":137},\n \"P\":{\"x\":1219,\"y\":0,\"width\":160,\"height\":214,\"originX\":6,\"originY\":192,\"advance\":137},\n \"Q\":{\"x\":220,\"y\":454,\"width\":164,\"height\":207,\"originX\":0,\"originY\":188,\"advance\":163},\n \"R\":{\"x\":1379,\"y\":0,\"width\":160,\"height\":214,\"originX\":3,\"originY\":192,\"advance\":153},\n \"S\":{\"x\":2544,\"y\":245,\"width\":144,\"height\":208,\"originX\":5,\"originY\":189,\"advance\":135},\n \"T\":{\"x\":1310,\"y\":245,\"width\":170,\"height\":208,\"originX\":5,\"originY\":187,\"advance\":144},\n \"U\":{\"x\":1952,\"y\":245,\"width\":149,\"height\":208,\"originX\":3,\"originY\":186,\"advance\":132},\n \"V\":{\"x\":700,\"y\":245,\"width\":134,\"height\":209,\"originX\":-7,\"originY\":187,\"advance\":120},\n \"W\":{\"x\":1460,\"y\":454,\"width\":204,\"height\":205,\"originX\":2,\"originY\":185,\"advance\":194},\n \"X\":{\"x\":0,\"y\":245,\"width\":180,\"height\":209,\"originX\":3,\"originY\":187,\"advance\":155},\n \"Y\":{\"x\":1164,\"y\":454,\"width\":148,\"height\":206,\"originX\":3,\"originY\":186,\"advance\":137},\n \"Z\":{\"x\":2770,\"y\":454,\"width\":183,\"height\":202,\"originX\":9,\"originY\":184,\"advance\":168},\n \"[\":{\"x\":799,\"y\":0,\"width\":67,\"height\":236,\"originX\":-15,\"originY\":179,\"advance\":85},\n \"\\\\\":{\"x\":267,\"y\":662,\"width\":84,\"height\":193,\"originX\":6,\"originY\":184,\"advance\":71},\n \"]\":{\"x\":866,\"y\":0,\"width\":67,\"height\":236,\"originX\":-3,\"originY\":179,\"advance\":85},\n \"^\":{\"x\":2585,\"y\":662,\"width\":123,\"height\":102,\"originX\":1,\"originY\":179,\"advance\":120},\n \"_\":{\"x\":334,\"y\":864,\"width\":145,\"height\":23,\"originX\":8,\"originY\":-39,\"advance\":128},\n \"`\":{\"x\":59,\"y\":864,\"width\":53,\"height\":55,\"originX\":-9,\"originY\":180,\"advance\":85},\n \"a\":{\"x\":2016,\"y\":454,\"width\":148,\"height\":205,\"originX\":4,\"originY\":186,\"advance\":142},\n \"b\":{\"x\":702,\"y\":454,\"width\":154,\"height\":207,\"originX\":8,\"originY\":187,\"advance\":142},\n \"c\":{\"x\":2882,\"y\":0,\"width\":141,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":126},\n \"d\":{\"x\":2316,\"y\":454,\"width\":152,\"height\":204,\"originX\":10,\"originY\":183,\"advance\":148},\n \"e\":{\"x\":2619,\"y\":454,\"width\":151,\"height\":203,\"originX\":10,\"originY\":182,\"advance\":131},\n \"f\":{\"x\":1801,\"y\":245,\"width\":151,\"height\":208,\"originX\":9,\"originY\":185,\"advance\":119},\n \"g\":{\"x\":2303,\"y\":0,\"width\":150,\"height\":210,\"originX\":1,\"originY\":190,\"advance\":147},\n \"h\":{\"x\":2597,\"y\":0,\"width\":144,\"height\":210,\"originX\":4,\"originY\":188,\"advance\":123},\n \"i\":{\"x\":110,\"y\":454,\"width\":110,\"height\":208,\"originX\":5,\"originY\":186,\"advance\":97},\n \"j\":{\"x\":1139,\"y\":245,\"width\":171,\"height\":208,\"originX\":6,\"originY\":187,\"advance\":141},\n \"k\":{\"x\":2397,\"y\":245,\"width\":147,\"height\":208,\"originX\":6,\"originY\":185,\"advance\":131},\n \"l\":{\"x\":2950,\"y\":245,\"width\":118,\"height\":208,\"originX\":4,\"originY\":188,\"advance\":110},\n \"m\":{\"x\":530,\"y\":245,\"width\":170,\"height\":209,\"originX\":5,\"originY\":189,\"advance\":154},\n \"n\":{\"x\":1010,\"y\":454,\"width\":154,\"height\":206,\"originX\":5,\"originY\":184,\"advance\":140},\n \"o\":{\"x\":2006,\"y\":0,\"width\":147,\"height\":211,\"originX\":2,\"originY\":189,\"advance\":137},\n \"p\":{\"x\":1539,\"y\":0,\"width\":160,\"height\":214,\"originX\":6,\"originY\":192,\"advance\":137},\n \"q\":{\"x\":384,\"y\":454,\"width\":164,\"height\":207,\"originX\":0,\"originY\":188,\"advance\":163},\n \"r\":{\"x\":1699,\"y\":0,\"width\":160,\"height\":214,\"originX\":3,\"originY\":192,\"advance\":153},\n \"s\":{\"x\":2688,\"y\":245,\"width\":144,\"height\":208,\"originX\":5,\"originY\":189,\"advance\":135},\n \"t\":{\"x\":1480,\"y\":245,\"width\":170,\"height\":208,\"originX\":5,\"originY\":187,\"advance\":145},\n \"u\":{\"x\":2101,\"y\":245,\"width\":149,\"height\":208,\"originX\":3,\"originY\":186,\"advance\":133},\n \"v\":{\"x\":834,\"y\":245,\"width\":134,\"height\":209,\"originX\":-7,\"originY\":187,\"advance\":121},\n \"w\":{\"x\":1664,\"y\":454,\"width\":204,\"height\":205,\"originX\":2,\"originY\":185,\"advance\":194},\n \"x\":{\"x\":180,\"y\":245,\"width\":180,\"height\":209,\"originX\":3,\"originY\":187,\"advance\":155},\n \"y\":{\"x\":1312,\"y\":454,\"width\":148,\"height\":206,\"originX\":3,\"originY\":186,\"advance\":137},\n \"z\":{\"x\":0,\"y\":662,\"width\":183,\"height\":202,\"originX\":9,\"originY\":184,\"advance\":169},\n \"{\":{\"x\":229,\"y\":0,\"width\":82,\"height\":245,\"originX\":-29,\"originY\":184,\"advance\":123},\n \"|\":{\"x\":555,\"y\":0,\"width\":22,\"height\":245,\"originX\":-14,\"originY\":184,\"advance\":51},\n \"}\":{\"x\":311,\"y\":0,\"width\":82,\"height\":245,\"originX\":-16,\"originY\":184,\"advance\":123},\n \"~\":{\"x\":112,\"y\":864,\"width\":145,\"height\":47,\"originX\":3,\"originY\":91,\"advance\":138}\n }\n}","module.exports = \"17afafa7723d26ad\";","{\n \"name\": \"ITC Novarese Std\",\n \"size\": 72,\n \"bold\": true,\n \"italic\": false,\n \"width\": 979,\n \"height\": 302,\n \"characters\": {\n \"0\":{\"x\":772,\"y\":76,\"width\":52,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":44},\n \"1\":{\"x\":321,\"y\":76,\"width\":37,\"height\":61,\"originX\":-3,\"originY\":54,\"advance\":44},\n \"2\":{\"x\":0,\"y\":137,\"width\":49,\"height\":59,\"originX\":3,\"originY\":53,\"advance\":44},\n \"3\":{\"x\":225,\"y\":76,\"width\":49,\"height\":61,\"originX\":3,\"originY\":53,\"advance\":44},\n \"4\":{\"x\":359,\"y\":196,\"width\":52,\"height\":57,\"originX\":5,\"originY\":51,\"advance\":44},\n \"5\":{\"x\":824,\"y\":76,\"width\":49,\"height\":60,\"originX\":2,\"originY\":51,\"advance\":44},\n \"6\":{\"x\":918,\"y\":0,\"width\":51,\"height\":62,\"originX\":4,\"originY\":55,\"advance\":44},\n \"7\":{\"x\":411,\"y\":196,\"width\":51,\"height\":57,\"originX\":2,\"originY\":51,\"advance\":44},\n \"8\":{\"x\":121,\"y\":76,\"width\":52,\"height\":61,\"originX\":4,\"originY\":53,\"advance\":44},\n \"9\":{\"x\":715,\"y\":0,\"width\":51,\"height\":63,\"originX\":4,\"originY\":53,\"advance\":44},\n \" \":{\"x\":804,\"y\":254,\"width\":12,\"height\":12,\"originX\":6,\"originY\":6,\"advance\":22},\n \"!\":{\"x\":49,\"y\":137,\"width\":30,\"height\":59,\"originX\":1,\"originY\":51,\"advance\":28},\n \"\\\"\":{\"x\":532,\"y\":254,\"width\":37,\"height\":32,\"originX\":0,\"originY\":51,\"advance\":36},\n \"#\":{\"x\":0,\"y\":196,\"width\":49,\"height\":58,\"originX\":2,\"originY\":52,\"advance\":44},\n \"$\":{\"x\":32,\"y\":0,\"width\":52,\"height\":73,\"originX\":4,\"originY\":59,\"advance\":44},\n \"%\":{\"x\":800,\"y\":0,\"width\":62,\"height\":62,\"originX\":5,\"originY\":54,\"advance\":52},\n \"&\":{\"x\":0,\"y\":76,\"width\":64,\"height\":61,\"originX\":4,\"originY\":53,\"advance\":56},\n \"'\":{\"x\":595,\"y\":254,\"width\":22,\"height\":32,\"originX\":3,\"originY\":51,\"advance\":16},\n \"(\":{\"x\":84,\"y\":0,\"width\":33,\"height\":73,\"originX\":1,\"originY\":54,\"advance\":28},\n \")\":{\"x\":117,\"y\":0,\"width\":33,\"height\":73,\"originX\":4,\"originY\":54,\"advance\":28},\n \"*\":{\"x\":496,\"y\":254,\"width\":36,\"height\":36,\"originX\":2,\"originY\":51,\"advance\":32},\n \"+\":{\"x\":0,\"y\":254,\"width\":49,\"height\":48,\"originX\":3,\"originY\":42,\"advance\":43},\n \",\":{\"x\":569,\"y\":254,\"width\":26,\"height\":32,\"originX\":4,\"originY\":17,\"advance\":22},\n \"-\":{\"x\":617,\"y\":254,\"width\":34,\"height\":29,\"originX\":5,\"originY\":33,\"advance\":24},\n \".\":{\"x\":728,\"y\":254,\"width\":27,\"height\":26,\"originX\":2,\"originY\":19,\"advance\":22},\n \"/\":{\"x\":637,\"y\":0,\"width\":39,\"height\":64,\"originX\":9,\"originY\":55,\"advance\":20},\n \":\":{\"x\":375,\"y\":254,\"width\":27,\"height\":45,\"originX\":2,\"originY\":38,\"advance\":22},\n \";\":{\"x\":462,\"y\":196,\"width\":28,\"height\":53,\"originX\":4,\"originY\":38,\"advance\":22},\n \"<\":{\"x\":679,\"y\":196,\"width\":49,\"height\":49,\"originX\":3,\"originY\":43,\"advance\":43},\n \"=\":{\"x\":447,\"y\":254,\"width\":49,\"height\":36,\"originX\":3,\"originY\":36,\"advance\":43},\n \">\":{\"x\":728,\"y\":196,\"width\":49,\"height\":49,\"originX\":3,\"originY\":43,\"advance\":43},\n \"?\":{\"x\":274,\"y\":76,\"width\":47,\"height\":61,\"originX\":3,\"originY\":53,\"advance\":40},\n \"@\":{\"x\":487,\"y\":76,\"width\":61,\"height\":60,\"originX\":2,\"originY\":53,\"advance\":57},\n \"A\":{\"x\":239,\"y\":137,\"width\":66,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":52},\n \"B\":{\"x\":190,\"y\":196,\"width\":60,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":52},\n \"C\":{\"x\":173,\"y\":76,\"width\":52,\"height\":61,\"originX\":4,\"originY\":53,\"advance\":44},\n \"D\":{\"x\":127,\"y\":196,\"width\":63,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":56},\n \"E\":{\"x\":250,\"y\":196,\"width\":56,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":48},\n \"F\":{\"x\":909,\"y\":137,\"width\":53,\"height\":58,\"originX\":4,\"originY\":51,\"advance\":44},\n \"G\":{\"x\":548,\"y\":76,\"width\":60,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":52},\n \"H\":{\"x\":305,\"y\":137,\"width\":64,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":56},\n \"I\":{\"x\":91,\"y\":196,\"width\":36,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":28},\n \"J\":{\"x\":277,\"y\":0,\"width\":38,\"height\":69,\"originX\":6,\"originY\":52,\"advance\":28},\n \"K\":{\"x\":558,\"y\":137,\"width\":61,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":52},\n \"L\":{\"x\":855,\"y\":137,\"width\":54,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":44},\n \"M\":{\"x\":161,\"y\":137,\"width\":78,\"height\":58,\"originX\":5,\"originY\":52,\"advance\":68},\n \"N\":{\"x\":369,\"y\":137,\"width\":64,\"height\":58,\"originX\":4,\"originY\":52,\"advance\":56},\n \"O\":{\"x\":423,\"y\":76,\"width\":64,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":56},\n \"P\":{\"x\":619,\"y\":137,\"width\":60,\"height\":58,\"originX\":4,\"originY\":51,\"advance\":52},\n \"Q\":{\"x\":358,\"y\":76,\"width\":65,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":56},\n \"R\":{\"x\":496,\"y\":137,\"width\":62,\"height\":58,\"originX\":4,\"originY\":51,\"advance\":52},\n \"S\":{\"x\":719,\"y\":76,\"width\":53,\"height\":60,\"originX\":4,\"originY\":53,\"advance\":44},\n \"T\":{\"x\":679,\"y\":137,\"width\":59,\"height\":58,\"originX\":5,\"originY\":51,\"advance\":48},\n \"U\":{\"x\":873,\"y\":76,\"width\":60,\"height\":59,\"originX\":4,\"originY\":52,\"advance\":52},\n \"V\":{\"x\":433,\"y\":137,\"width\":63,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":48},\n \"W\":{\"x\":79,\"y\":137,\"width\":82,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":68},\n \"X\":{\"x\":738,\"y\":137,\"width\":59,\"height\":58,\"originX\":5,\"originY\":52,\"advance\":48},\n \"Y\":{\"x\":797,\"y\":137,\"width\":58,\"height\":58,\"originX\":7,\"originY\":52,\"advance\":44},\n \"Z\":{\"x\":306,\"y\":196,\"width\":53,\"height\":57,\"originX\":4,\"originY\":51,\"advance\":44},\n \"[\":{\"x\":220,\"y\":0,\"width\":29,\"height\":72,\"originX\":-1,\"originY\":54,\"advance\":28},\n \"\\\\\":{\"x\":676,\"y\":0,\"width\":39,\"height\":64,\"originX\":9,\"originY\":55,\"advance\":20},\n \"]\":{\"x\":249,\"y\":0,\"width\":28,\"height\":72,\"originX\":1,\"originY\":54,\"advance\":28},\n \"^\":{\"x\":402,\"y\":254,\"width\":45,\"height\":38,\"originX\":1,\"originY\":51,\"advance\":43},\n \"_\":{\"x\":755,\"y\":254,\"width\":49,\"height\":16,\"originX\":6,\"originY\":1,\"advance\":36},\n \"`\":{\"x\":697,\"y\":254,\"width\":31,\"height\":26,\"originX\":3,\"originY\":57,\"advance\":24},\n \"a\":{\"x\":822,\"y\":196,\"width\":53,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":44},\n \"b\":{\"x\":315,\"y\":0,\"width\":56,\"height\":66,\"originX\":4,\"originY\":58,\"advance\":48},\n \"c\":{\"x\":49,\"y\":254,\"width\":48,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":40},\n \"d\":{\"x\":371,\"y\":0,\"width\":56,\"height\":66,\"originX\":4,\"originY\":58,\"advance\":48},\n \"e\":{\"x\":875,\"y\":196,\"width\":52,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":44},\n \"f\":{\"x\":561,\"y\":0,\"width\":42,\"height\":65,\"originX\":6,\"originY\":58,\"advance\":28},\n \"g\":{\"x\":64,\"y\":76,\"width\":57,\"height\":61,\"originX\":6,\"originY\":40,\"advance\":44},\n \"h\":{\"x\":505,\"y\":0,\"width\":56,\"height\":65,\"originX\":4,\"originY\":58,\"advance\":48},\n \"i\":{\"x\":766,\"y\":0,\"width\":34,\"height\":63,\"originX\":5,\"originY\":57,\"advance\":24},\n \"j\":{\"x\":0,\"y\":0,\"width\":32,\"height\":76,\"originX\":6,\"originY\":57,\"advance\":24},\n \"k\":{\"x\":448,\"y\":0,\"width\":57,\"height\":65,\"originX\":4,\"originY\":58,\"advance\":48},\n \"l\":{\"x\":603,\"y\":0,\"width\":34,\"height\":65,\"originX\":5,\"originY\":58,\"advance\":24},\n \"m\":{\"x\":546,\"y\":196,\"width\":77,\"height\":49,\"originX\":4,\"originY\":42,\"advance\":68},\n \"n\":{\"x\":623,\"y\":196,\"width\":56,\"height\":49,\"originX\":4,\"originY\":42,\"advance\":48},\n \"o\":{\"x\":927,\"y\":196,\"width\":52,\"height\":48,\"originX\":4,\"originY\":40,\"advance\":44},\n \"p\":{\"x\":862,\"y\":0,\"width\":56,\"height\":62,\"originX\":4,\"originY\":42,\"advance\":48},\n \"q\":{\"x\":608,\"y\":76,\"width\":56,\"height\":60,\"originX\":4,\"originY\":40,\"advance\":48},\n \"r\":{\"x\":777,\"y\":196,\"width\":45,\"height\":49,\"originX\":4,\"originY\":42,\"advance\":36},\n \"s\":{\"x\":97,\"y\":254,\"width\":47,\"height\":48,\"originX\":3,\"originY\":40,\"advance\":40},\n \"t\":{\"x\":49,\"y\":196,\"width\":42,\"height\":58,\"originX\":6,\"originY\":50,\"advance\":32},\n \"u\":{\"x\":490,\"y\":196,\"width\":56,\"height\":50,\"originX\":4,\"originY\":42,\"advance\":48},\n \"v\":{\"x\":219,\"y\":254,\"width\":55,\"height\":46,\"originX\":7,\"originY\":39,\"advance\":40},\n \"w\":{\"x\":144,\"y\":254,\"width\":75,\"height\":46,\"originX\":7,\"originY\":39,\"advance\":60},\n \"x\":{\"x\":274,\"y\":254,\"width\":55,\"height\":46,\"originX\":5,\"originY\":39,\"advance\":44},\n \"y\":{\"x\":664,\"y\":76,\"width\":55,\"height\":60,\"originX\":7,\"originY\":39,\"advance\":40},\n \"z\":{\"x\":329,\"y\":254,\"width\":46,\"height\":45,\"originX\":5,\"originY\":39,\"advance\":36},\n \"{\":{\"x\":150,\"y\":0,\"width\":35,\"height\":72,\"originX\":4,\"originY\":54,\"advance\":28},\n \"|\":{\"x\":427,\"y\":0,\"width\":21,\"height\":66,\"originX\":2,\"originY\":58,\"advance\":16},\n \"}\":{\"x\":185,\"y\":0,\"width\":35,\"height\":72,\"originX\":3,\"originY\":54,\"advance\":28},\n \"~\":{\"x\":651,\"y\":254,\"width\":46,\"height\":26,\"originX\":1,\"originY\":31,\"advance\":43}\n }\n}","module.exports = \"ac4035b7bd87c96c\";","export function xoshiro128ss(a: number, b: number, c: number, d: number) {\n return () => {\n let t = b << 9,\n r = b * 5;\n r = ((r << 7) | (r >>> 25)) * 9;\n c ^= a;\n d ^= b;\n b ^= c;\n a ^= d;\n c ^= t;\n d = (d << 11) | (d >>> 21);\n return (r >>> 0) / 4294967296;\n };\n}\n","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"8TLBT\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"a6fLY\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"9wYW5\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"5dueS\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"2FNM0\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"dbxmZ\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"lhcMQ\")).toString();","import { mat4, vec3 } from \"gl-matrix\";\nimport { loadShader } from \"../gl\";\nimport * as fs from \"fs\";\nimport { LoadedFont } from \"../loader\";\n\nexport class TextShader {\n constructor(\n public readonly gl: WebGL2RenderingContext,\n private readonly program: WebGLProgram,\n private readonly resolutionLocation: WebGLUniformLocation,\n private readonly textureLocation: WebGLUniformLocation,\n private readonly transformLocation: WebGLUniformLocation,\n private readonly nowLocation: WebGLUniformLocation,\n private readonly opacityLocation: WebGLUniformLocation,\n private readonly wavinessLocation: WebGLUniformLocation,\n private readonly distortionLocation: WebGLUniformLocation,\n private readonly fontTypeLocation: WebGLUniformLocation,\n private readonly textColorLocation: WebGLUniformLocation,\n ) {}\n\n public static create(gl: WebGL2RenderingContext): TextShader {\n const textSdfProgram = loadShader(\n gl,\n fs.readFileSync(__dirname + \"/text.vert\", \"utf8\"),\n fs.readFileSync(__dirname + \"/text.frag\", \"utf8\"),\n \"Text SDF\",\n );\n const textureLocation = gl.getUniformLocation(textSdfProgram, \"texture\")!;\n const textResolutionLocation = gl.getUniformLocation(\n textSdfProgram,\n \"resolution\",\n )!;\n const textTransformLocation = gl.getUniformLocation(\n textSdfProgram,\n \"transform\",\n )!;\n const textNowLocation = gl.getUniformLocation(textSdfProgram, \"now\")!;\n\n const opacityLocation = gl.getUniformLocation(textSdfProgram, \"opacity\")!;\n\n const wavinessLocation = gl.getUniformLocation(textSdfProgram, \"waviness\")!;\n\n const distortionLocation = gl.getUniformLocation(\n textSdfProgram,\n \"distortion\",\n )!;\n\n const fontTypeLocation = gl.getUniformLocation(textSdfProgram, \"fontType\")!;\n\n const textColorLocation = gl.getUniformLocation(\n textSdfProgram,\n \"textColor\",\n )!;\n\n return new TextShader(\n gl,\n textSdfProgram,\n textResolutionLocation,\n textureLocation,\n textTransformLocation,\n textNowLocation,\n opacityLocation,\n wavinessLocation,\n distortionLocation,\n fontTypeLocation,\n textColorLocation,\n );\n }\n\n public use({\n now,\n resolution,\n transform,\n opacity,\n waviness = 0,\n distortion = 0,\n font,\n color = [1, 1, 1] as vec3,\n }: {\n now: number;\n resolution: [number, number];\n transform: mat4;\n opacity: number;\n waviness?: number;\n distortion?: number;\n font: LoadedFont;\n color?: vec3;\n }) {\n this.gl.useProgram(this.program);\n this.gl.activeTexture(this.gl.TEXTURE0);\n\n this.gl.uniform1i(this.textureLocation, 0);\n this.gl.uniform2fv(this.resolutionLocation, resolution);\n this.gl.uniformMatrix4fv(this.transformLocation, false, transform);\n this.gl.uniform1f(this.nowLocation, now);\n this.gl.uniform1f(this.opacityLocation, opacity);\n this.gl.uniform1f(this.wavinessLocation, waviness);\n this.gl.uniform1f(this.distortionLocation, distortion);\n this.gl.uniform1ui(this.fontTypeLocation, font.id);\n this.gl.uniform3fv(this.textColorLocation, color);\n }\n\n public destroy() {\n this.gl.deleteProgram(this.program);\n }\n}\n","import { vec3, vec4 } from \"gl-matrix\";\n\nexport function loadShader(\n gl: WebGL2RenderingContext,\n vertexShaderSource: string,\n fragmentShaderSource: string,\n name: string,\n): WebGLProgram {\n const vertexShader = gl.createShader(gl.VERTEX_SHADER);\n const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n\n if (!vertexShader || !fragmentShader) {\n throw new Error(\"Failed to create shaders\");\n }\n\n gl.shaderSource(vertexShader, vertexShaderSource);\n\n gl.shaderSource(fragmentShader, fragmentShaderSource);\n\n gl.compileShader(vertexShader);\n gl.compileShader(fragmentShader);\n\n /*if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n console.groupCollapsed(\"Vertex shader source:\");\n console.log(vertexShaderSource);\n console.groupEnd();\n\n throw new Error(\n `Failed to compile vertex shader for ${name}: ${gl.getShaderInfoLog(\n vertexShader,\n )}`,\n );\n }\n\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n console.groupCollapsed(\"Fragment shader source:\");\n console.log(fragmentShaderSource);\n console.groupEnd();\n\n throw new Error(\n `Failed to compile fragment shader for ${name}: ${gl.getShaderInfoLog(\n fragmentShader,\n )}`,\n );\n }*/\n\n const program = gl.createProgram();\n\n if (!program) {\n throw new Error(`Failed to create program for ${name}`);\n }\n\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n const log = gl.getProgramInfoLog(program);\n\n const vertexShaderLog = gl.getShaderInfoLog(vertexShader);\n const fragmentShaderLog = gl.getShaderInfoLog(fragmentShader);\n\n console.warn({\n log,\n vertexShaderLog,\n fragmentShaderLog,\n });\n\n throw new Error(\n `Failed to link program for ${name}: ${gl.getProgramInfoLog(program)}`,\n );\n }\n\n return program;\n}\n\nexport function generateQuadBuffer(gl: WebGL2RenderingContext): WebGLBuffer {\n const positionBuffer = gl.createBuffer();\n\n if (!positionBuffer) {\n throw new Error(\"Failed to create buffer\");\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n\n const positions = [-1, -1, -1, 1, 1, -1, 1, 1];\n\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW);\n\n return positionBuffer;\n}\n\nexport function setUniformVec3(\n gl: WebGL2RenderingContext,\n location: WebGLUniformLocation,\n value: vec3,\n) {\n gl.uniform3f(location, value[0], value[1], value[2]);\n}\n\nexport function setUniformVec4(\n gl: WebGL2RenderingContext,\n location: WebGLUniformLocation,\n value: vec4,\n) {\n gl.uniform4f(location, value[0], value[1], value[2], value[3]);\n}\n\nexport function getUniformLocations(\n gl: WebGL2RenderingContext,\n program: WebGLProgram,\n uniforms: T[],\n allowMissing = false,\n): Record<`${T}Location`, WebGLUniformLocation | null> {\n const result: Partial> =\n {};\n\n for (const uniform of uniforms) {\n const location = gl.getUniformLocation(program, uniform);\n\n if (!location && !allowMissing) {\n console.warn(`Uniform ${uniform} not found in program ${program}`);\n }\n\n result[`${uniform}Location`] = location;\n }\n\n return result as Record<`${T}Location`, WebGLUniformLocation | null>;\n}\n","\"use strict\";","import { mat4, vec2, vec3, vec4 } from \"gl-matrix\";\nimport { EaseFunction, linear } from \"./interpolation\";\nimport { FontName, Fonts, LoadedFont } from \"./loader\";\nimport { Text } from \"./Text\";\nimport { TextShader } from \"./rendering/TextShader\";\nimport { isVec2, isVec3, lerpVec3Eased } from \"./vector\";\nimport { Camera, Computed, Light, SceneLighting, ShaderCamera } from \"./common\";\nimport { CameraPath } from \"./CameraPath\";\nimport {\n HorizontalTextParams,\n TextAlignment,\n TextSpec,\n VerticalTextParams,\n} from \"./sdfText\";\nimport { clamp01 } from \"./math\";\n\nexport interface Transition1D {\n from: number;\n to: number;\n}\n\ninterface SceneTransitionContext {\n nowInSeconds: number;\n sceneNowInSeconds: number;\n sceneNowInBeats: number;\n sceneProgress: number;\n}\n\nexport type SceneComputedFloat = (ctx: SceneTransitionContext) => number;\nexport type SceneComputedVec4 = (ctx: SceneTransitionContext) => vec4;\n\ninterface SequenceTransitionContext {\n sceneContext: SceneTransitionContext;\n partProgress: number;\n}\n\nexport type SequenceComputedFloat = (ctx: SequenceTransitionContext) => number;\nexport type SequenceComputedVec3 = (ctx: SequenceTransitionContext) => vec3;\nexport type SequenceComputedVec4 = (ctx: SequenceTransitionContext) => vec4;\n\nexport interface Transition3D {\n from: vec3;\n to: vec3;\n}\n\nexport interface Transition2D {\n from: vec2;\n to: vec2;\n ease?: EaseFunction;\n}\n\nexport interface CameraTransition {\n position: vec3 | Transition3D;\n target: vec3 | Transition3D;\n rotationY?: SequenceComputedFloat;\n ease?: EaseFunction;\n}\n\n// A piece of text shown during a scene\nexport type SceneText = {\n font: FontName;\n text: string;\n position: vec2 | Transition2D;\n scale?: vec2;\n timing?: {\n enter: number;\n exit: number;\n };\n params?: TextParams;\n} & (\n | ({\n type: \"horizontal\";\n } & HorizontalTextParams)\n | ({\n type: \"vertical\";\n } & VerticalTextParams)\n);\nexport interface TextParams {\n waviness?: number;\n distortion?: number;\n color?: vec3;\n}\n\n// Each scene can contain a sequence, which consists of parts\n// Each part can define attributes such as camera position, text, etc.\n// which are interpolated between the start and end of the part\nexport interface Sequence {\n scene: Scene;\n parts: SequencePart[];\n}\n\nexport interface SequencePartParams {\n /**\n * Length in beats\n */\n length: number;\n assertStart?: number;\n camera: CameraTransition | CameraPath;\n text?: SceneText[];\n lighting?: SceneLighting;\n fade?: SequenceComputedVec4;\n backgroundColor?: SequenceComputedVec3;\n shader?: ShaderName;\n sceneId?: number;\n}\n\nexport interface SequencePart extends SequencePartParams {\n start: number;\n sequence: Sequence;\n previous?: SequencePart;\n next?: SequencePart;\n}\n\nexport type ShaderName =\n | \"intro\"\n | \"main\"\n | \"macaroniFactory\"\n | \"macaroniMachine\"\n | \"macaroniBox\"\n | \"tesseract\"\n | \"lasaga\"\n | \"outro\";\n\ninterface SceneParams {\n name?: string;\n /**\n * Length in beats\n */\n length: number;\n sceneId?: number;\n shader: ShaderName;\n text?: SceneText[];\n lighting?: Computed;\n variables?: SceneComputedVec4;\n variables2?: SceneComputedVec4;\n effects?: {\n enable?: [\"vhs\"];\n };\n}\n\nexport interface Scene extends SceneParams {\n start: number;\n previous?: Scene;\n next?: Scene;\n sequence?: Sequence;\n then: (scene: SceneParams) => Scene;\n thenScene: (scene: Scene) => Scene;\n addSequence: (sequence: SequencePartParams[]) => Scene;\n}\n\nconst LIGHTING_DEFAULT: SceneLighting = {\n ambient: [0.2, 0.2, 0.2],\n light1: {\n position: [0, 0, 0],\n intensity: [0.5, 0.55, 0.6],\n },\n cameraLightIntensity: [0.5, 0.55, 0.6],\n fogColor: [0.1098039216, 0.1647058824, 0.3882352941],\n fogDensity: 1.5,\n};\n\nexport function createScene(data: SceneParams): Scene {\n return {\n ...data,\n start: 0,\n then(sceneParams: SceneParams) {\n const scene = createScene(sceneParams);\n this.next = scene;\n scene.previous = this;\n scene.start = this.start + this.length;\n return scene;\n },\n thenScene(scene: Scene) {\n // Traverse the linked list to find the first scene\n let sceneIter = scene;\n while (sceneIter.previous) {\n sceneIter = sceneIter.previous;\n }\n\n this.next = sceneIter;\n sceneIter.previous = this;\n sceneIter.start = this.start + this.length;\n\n // Iterate all following scenes\n let currentScene: Scene | undefined = sceneIter;\n let start = sceneIter.start;\n while (currentScene) {\n currentScene.start = start;\n start += currentScene.length;\n currentScene = currentScene.next;\n }\n\n return scene;\n },\n addSequence(partParams: SequencePartParams[]) {\n const sequence: Sequence = { parts: [], scene: this };\n\n let start = 0;\n let previous: SequencePart | undefined;\n\n for (const part of partParams) {\n const partStart = start;\n const partEnd = start + part.length;\n\n if (part.assertStart && partStart !== part.assertStart) {\n throw new Error(\n `Sequence part starts at ${partStart} but should start at ${part.assertStart}`,\n );\n }\n\n start = partEnd;\n\n const partData: SequencePart = {\n ...part,\n start: partStart,\n sequence,\n };\n\n if (previous) {\n previous.next = partData;\n partData.previous = previous;\n }\n\n sequence.parts.push(partData);\n previous = partData;\n }\n\n this.sequence = sequence;\n return this;\n },\n };\n}\n\ninterface TextInstant {\n text: Text;\n opacity: number;\n params?: TextParams;\n}\n\n// An instant state is defined for every time value in a sequence\nexport interface InstantState {\n shader: ShaderName;\n\n // Absolute time in seconds as measured by the audio context\n now: number;\n // Time in seconds since the start of the current scene\n sceneNow: number;\n // Absolute time in fractional beats\n beat: number;\n nowInSceneBeats: number;\n // Progress through the current scene, as a fraction\n // If there's no next scene, this is infinity\n sceneProgress: number;\n\n name: string;\n\n // Scene to play\n sceneId: number;\n\n camera: Camera;\n\n texts: TextInstant[];\n\n lighting: SceneLighting;\n sceneVariables: vec4;\n sceneVariables2?: vec4;\n fade: vec4;\n backgroundColor: vec3;\n\n effects?: {\n enable?: [\"vhs\"];\n };\n}\n\nexport const DEFAULT_STATE: InstantState = {\n shader: \"main\",\n now: 0,\n sceneNow: 0,\n beat: 0,\n nowInSceneBeats: 0,\n sceneProgress: 0,\n name: \"unnamed\",\n sceneId: 0,\n camera: {\n position: [0, 0, 0],\n target: [0, 0, 0],\n rotationY: 0,\n },\n texts: [],\n lighting: LIGHTING_DEFAULT,\n sceneVariables: [0, 0, 0, 0],\n fade: [0, 0, 0, 0],\n backgroundColor: [0, 0, 0],\n};\n\nexport interface SequencerConfig {\n bpm: number;\n initialScene: Scene;\n}\n\nfunction getTransition3DFrom(transition: Transition3D | vec3): vec3 {\n return isVec3(transition) ? transition : transition.from;\n}\n\nfunction getTransition3DTarget(\n transition: Transition3D | vec3,\n): vec3 | undefined {\n return \"to\" in transition ? transition.to : undefined;\n}\n\nfunction computeTransition3D(\n transitionOrPosition: Transition3D | vec3,\n fraction: number,\n easeFunction: EaseFunction = linear,\n): vec3 {\n const from = getTransition3DFrom(transitionOrPosition);\n const to = getTransition3DTarget(transitionOrPosition);\n return to ? lerpVec3Eased(easeFunction, from, to, fraction) : from;\n}\n\nfunction computeTransition2D(\n transitionOrPosition: Transition2D | vec2,\n fraction: number,\n): vec2 {\n const from = isVec2(transitionOrPosition)\n ? transitionOrPosition\n : transitionOrPosition.from;\n const to = \"to\" in transitionOrPosition ? transitionOrPosition.to : undefined;\n const easing =\n \"ease\" in transitionOrPosition && transitionOrPosition.ease\n ? transitionOrPosition.ease\n : linear;\n return to ? vec2.lerp(vec2.create(), from, to, easing(fraction)) : from;\n}\n\nfunction computeSceneVariables(\n computeVariables: SceneComputedVec4 | undefined,\n ctx: SceneTransitionContext,\n): vec4 {\n if (!computeVariables) {\n return [0, 0, 0, 0];\n }\n\n return computeVariables(ctx);\n}\n\nfunction computeCamera(\n camera: CameraTransition | CameraPath,\n ctx: SequenceTransitionContext,\n): Camera {\n if (\"keyframes\" in camera) {\n return camera.evaluate(ctx.partProgress);\n } else {\n const position = computeTransition3D(\n camera.position,\n ctx.partProgress,\n camera.ease,\n );\n const target = computeTransition3D(\n camera.target,\n ctx.partProgress,\n camera.ease,\n );\n\n const rotationY = camera.rotationY ? camera.rotationY(ctx) : 0;\n\n return {\n position,\n target,\n rotationY,\n };\n }\n}\n\n// The idea of the sequencer is to be effectively stateless and deterministic\nexport class Sequencer {\n /**\n * This is just an optimization; if scenes are not requested in order,\n * we need to traverse the linked list from the beginning to find the current scene\n */\n private currentScene: Scene;\n private currentSequencePart: SequencePart | undefined;\n\n private sceneTexts = new WeakMap();\n\n private readonly BEAT_LENGTH = 60 / this.config.bpm;\n\n constructor(private readonly config: SequencerConfig) {\n this.currentScene = config.initialScene;\n }\n\n preprocess(shader: TextShader, fonts: Fonts) {\n let scene: Scene | undefined = this.config.initialScene;\n\n function sceneTextToText(sceneText: SceneText, font: LoadedFont): Text {\n if (sceneText.type === \"horizontal\") {\n return Text.create(shader, font, {\n type: \"horizontal\",\n text: sceneText.text,\n align: sceneText.align ?? \"center\",\n });\n } else {\n return Text.create(shader, font, {\n type: \"vertical\",\n text: sceneText.text,\n verticalSpacing: sceneText.verticalSpacing,\n spaceHeight: sceneText.spaceHeight,\n });\n }\n }\n\n while (scene) {\n if (scene.text) {\n for (const sceneText of scene.text) {\n const font = fonts[sceneText.font];\n const text = sceneTextToText(sceneText, font);\n text.transformation.setScale([font.scale, font.scale, 1]);\n this.sceneTexts.set(sceneText, text);\n }\n }\n\n // Process every part of the sequence\n if (scene.sequence) {\n for (const part of scene.sequence.parts) {\n if (part.text) {\n for (const partText of part.text) {\n const font = fonts[partText.font];\n const text = sceneTextToText(partText, font);\n text.transformation.setScale([font.scale, font.scale, 1]);\n this.sceneTexts.set(partText, text);\n }\n }\n }\n }\n\n scene = scene.next;\n }\n }\n\n getSceneAt(nowInBeats: number): Scene {\n // If the current scene is in the future, it means the user has seeked backwards\n // In that case, start from the beginning\n // Otherwise, start from the current scene\n let scene =\n this.currentScene.start > nowInBeats\n ? this.config.initialScene\n : this.currentScene;\n\n while (scene.next && scene.next.start < nowInBeats) {\n scene = scene.next;\n }\n\n this.currentScene = scene;\n\n return this.currentScene;\n }\n\n getSequencePartAt(scene: Scene, nowInSceneBeats: number): SequencePart {\n if (!scene.sequence) {\n throw new Error(`Scene at ${scene.start} has no sequence`);\n }\n\n // Check if the current sequence part is still valid\n if (\n this.currentSequencePart &&\n this.currentSequencePart.start <= nowInSceneBeats &&\n this.currentSequencePart.start + this.currentSequencePart.length >\n nowInSceneBeats\n ) {\n return this.currentSequencePart;\n }\n\n // If not, find the current sequence part\n // If the current sequence part is in the future, it means the user has seeked backwards\n // In that case, start from the beginning\n // Otherwise, start from the current sequence part\n let part: SequencePart =\n this.currentSequencePart &&\n this.currentSequencePart.start > nowInSceneBeats\n ? scene.sequence.parts[0]\n : this.currentSequencePart ?? scene.sequence.parts[0];\n\n while (part && part.start + part.length < nowInSceneBeats && part.next) {\n part = part.next;\n }\n\n return part;\n }\n\n getStateAt(now: number): InstantState {\n // scene start value is in beats, so convert now from seconds to beats\n const nowInBeats = now / this.BEAT_LENGTH;\n const scene = this.getSceneAt(nowInBeats);\n const nowInSceneBeats = nowInBeats - scene.start;\n const part = this.getSequencePartAt(scene, nowInSceneBeats);\n\n const sceneStartTime = scene.start;\n const sceneLength = scene.length;\n // Scene progress is in beats\n const sceneProgress = nowInSceneBeats;\n // Part progress is in beats\n const partProgress = nowInSceneBeats - part.start;\n\n const sceneProgressFraction =\n sceneLength > 0 ? Math.min(1, sceneProgress / sceneLength) : 0;\n\n const partProgressFraction =\n part.length > 0 ? Math.min(1.0, partProgress / part.length) : 0;\n\n // Time from the start of the scene in seconds\n const sceneNow = now - sceneStartTime * this.BEAT_LENGTH;\n // Same for part / sequence\n const partNow = now - (part.start + sceneStartTime) * this.BEAT_LENGTH;\n\n if (!part.camera) {\n throw new Error(`No camera defined for scene at ${scene.start}`);\n }\n\n const transitionContext: SceneTransitionContext = {\n nowInSeconds: now,\n sceneNowInSeconds: sceneNow,\n sceneNowInBeats: nowInSceneBeats,\n sceneProgress: sceneProgressFraction,\n };\n\n const sequenceTransitionContext: SequenceTransitionContext = {\n sceneContext: transitionContext,\n partProgress: partProgressFraction,\n };\n\n const sceneVariables = computeSceneVariables(\n scene.variables,\n transitionContext,\n );\n const sceneVariables2 = computeSceneVariables(\n scene.variables2,\n transitionContext,\n );\n\n const camera = computeCamera(part.camera, sequenceTransitionContext);\n\n const fade: vec4 = part.fade\n ? part.fade(sequenceTransitionContext)\n : [0, 0, 0, 0];\n\n const texts: TextInstant[] = [];\n\n const potentialTexts: {\n text: SceneText;\n // Time in beats the text should be visible\n duration: number;\n // 0-1 fraction of the total time the text is visible and should be animated\n fraction: number;\n // Time in beats since the text was made visible\n timeSinceVisible: number;\n }[] = [\n ...(scene.text?.map((text) => {\n const textDuration = text.timing\n ? text.timing.exit - text.timing.enter\n : sceneLength;\n\n const fraction = clamp01(\n text.timing\n ? (nowInSceneBeats - text.timing.enter) / textDuration\n : sceneProgressFraction,\n );\n\n const timeSinceVisible = text.timing\n ? nowInSceneBeats - text.timing.enter\n : nowInSceneBeats;\n\n return {\n fraction,\n duration: textDuration,\n text,\n // If timing (enter and exit) is defined, calculate the fraction based on that\n timeSinceVisible,\n };\n }) ?? []),\n ...(part.text?.map((text) => {\n const textDuration = text.timing\n ? text.timing.exit - text.timing.enter\n : part.length;\n\n const fraction = clamp01(\n text.timing\n ? (partProgress - text.timing.enter) / textDuration\n : partProgressFraction,\n );\n\n const timeSinceVisible = text.timing\n ? partProgress - text.timing.enter\n : partProgress;\n\n return {\n text,\n fraction,\n duration: textDuration,\n timeSinceVisible,\n };\n }) ?? []),\n ];\n\n const backgroundColor: vec3 = part.backgroundColor\n ? part.backgroundColor(sequenceTransitionContext)\n : [0, 0, 0];\n\n for (const {\n text,\n fraction,\n timeSinceVisible,\n duration,\n } of potentialTexts) {\n if (!text) {\n continue;\n }\n\n if (timeSinceVisible < 0) {\n continue;\n }\n\n const textObj = this.sceneTexts.get(text);\n\n if (!textObj) {\n throw new Error(\n `Text missing for scene at ${scene.start} with text \"${text.text}\"`,\n );\n }\n const textPosition = computeTransition2D(text.position, fraction);\n\n if (text.scale) {\n textObj.transformation.setScale([text.scale[0], text.scale[1], 1]);\n }\n\n textObj.transformation.setTranslation(\n vec3.fromValues(textPosition[0], textPosition[1], 0.0),\n );\n\n // Hard coded 1 beat fade in\n let opacity = 1.0;\n\n if (timeSinceVisible < 1.0) {\n opacity = Math.min(1.0, timeSinceVisible / 1.0);\n }\n // Also fade out the text\n if (timeSinceVisible > duration - 1.0) {\n opacity = Math.max(0, 1.0 - (timeSinceVisible - (duration - 1.0)));\n }\n\n texts.push({\n text: textObj,\n opacity,\n params: text.params,\n });\n }\n\n const lighting = !scene.lighting\n ? LIGHTING_DEFAULT\n : computeLighting(transitionContext, scene.lighting);\n\n return {\n shader: part.shader ?? scene.shader,\n sceneId: part.sceneId ?? scene.sceneId ?? 0,\n now,\n sceneNow,\n nowInSceneBeats,\n name: scene.name ?? \"unnamed\",\n beat: nowInBeats,\n camera,\n sceneProgress: sceneProgressFraction,\n texts,\n lighting,\n sceneVariables,\n sceneVariables2,\n fade,\n backgroundColor,\n effects: scene.effects,\n };\n }\n}\n\n// Converts a linked list of scenes into a lookup table by name\n// Used to implement scene replacement in hot reload\nexport function createSceneLookup(\n mainScene: Scene,\n): Partial> {\n const lookup: Partial> = {};\n\n let scene: Scene | undefined = mainScene;\n\n while (scene) {\n if (!scene.name) {\n throw new Error(`Scene at ${scene.start} has no name`);\n }\n lookup[scene.name] = scene;\n scene = scene.next;\n }\n\n return lookup;\n}\n\nfunction compute(ctx: Ctx, value: Computed): T {\n return value instanceof Function ? value(ctx) : value;\n}\n\nfunction computeLighting(\n ctx: SceneTransitionContext,\n lighting: Computed,\n): SceneLighting {\n function computeLight(light: Computed): Light {\n return {\n position: compute(ctx, light.position),\n intensity: compute(ctx, light.intensity),\n };\n }\n\n return {\n light1: computeLight(lighting.light1),\n ambient: compute(ctx, lighting.ambient),\n cameraLightIntensity: compute(ctx, lighting.cameraLightIntensity),\n fogColor: compute(ctx, lighting.fogColor),\n fogDensity: compute(ctx, lighting.fogDensity),\n };\n}\n","import * as glMatrix from \"./common.js\";\n/**\n * 2 Dimensional Vector\n * @module vec2\n */\n\n/**\n * Creates a new, empty vec2\n *\n * @returns {vec2} a new 2D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(2);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec2 initialized with values from an existing vector\n *\n * @param {ReadonlyVec2} a vector to clone\n * @returns {vec2} a new 2D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\n * Creates a new vec2 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} a new 2D vector\n */\n\nexport function fromValues(x, y) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\n * Copy the values from one vec2 to another\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the source vector\n * @returns {vec2} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\n * Set the components of a vec2 to the given values\n *\n * @param {vec2} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} out\n */\n\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\n * Adds two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\n * Multiplies two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\n * Divides two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\n * Math.ceil the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to ceil\n * @returns {vec2} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\n * Math.floor the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to floor\n * @returns {vec2} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\n * Returns the minimum of two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\n * Returns the maximum of two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\n * Math.round the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to round\n * @returns {vec2} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\n/**\n * Scales a vec2 by a scalar number\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec2} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\n * Adds two vec2's after scaling the second operand by a scalar value\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec2} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return Math.hypot(x, y);\n}\n/**\n * Calculates the squared euclidian distance between two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\n * Calculates the length of a vec2\n *\n * @param {ReadonlyVec2} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0],\n y = a[1];\n return Math.hypot(x, y);\n}\n/**\n * Calculates the squared length of a vec2\n *\n * @param {ReadonlyVec2} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0],\n y = a[1];\n return x * x + y * y;\n}\n/**\n * Negates the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to negate\n * @returns {vec2} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to invert\n * @returns {vec2} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\n * Normalize a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to normalize\n * @returns {vec2} out\n */\n\nexport function normalize(out, a) {\n var x = a[0],\n y = a[1];\n var len = x * x + y * y;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\n * Computes the cross product of two vec2's\n * Note that the cross product must by definition produce a 3D vector\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec2} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec2} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec2} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\n * Transforms the vec2 with a mat2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat2} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\n * Transforms the vec2 with a mat2d\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat2d} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat2d(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\n * Transforms the vec2 with a mat3\n * 3rd vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat3} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\n * Transforms the vec2 with a mat4\n * 3rd vector component is implicitly '0'\n * 4th vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\n * Rotate a 2D vector\n * @param {vec2} out The receiving vec2\n * @param {ReadonlyVec2} a The vec2 point to rotate\n * @param {ReadonlyVec2} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec2} out\n */\n\nexport function rotate(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0],\n p1 = a[1] - b[1],\n sinC = Math.sin(rad),\n cosC = Math.cos(rad); //perform rotation and translate to correct position\n\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\n * Get the angle between two 2D vectors\n * @param {ReadonlyVec2} a The first operand\n * @param {ReadonlyVec2} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var x1 = a[0],\n y1 = a[1],\n x2 = b[0],\n y2 = b[1],\n // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),\n // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec2 to zero\n *\n * @param {vec2} out the receiving vector\n * @returns {vec2} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec2} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n/**\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec2} a The first vector.\n * @param {ReadonlyVec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec2} a The first vector.\n * @param {ReadonlyVec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1];\n var b0 = b[0],\n b1 = b[1];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n/**\n * Alias for {@link vec2.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec2.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec2.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec2.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec2.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec2.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec2.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec2s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 2;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n\n return a;\n };\n}();","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","export function easeInOutCubic(t: number): number {\n if (t < 0.5) {\n return 4 * t * t * t;\n } else {\n const f = 2 * t - 2;\n return 0.5 * f * f * f + 1;\n }\n}\n\nexport function easeInExp(t: number): number {\n return Math.pow(2, 10 * (t - 1));\n}\n\nexport function easeInCubic(t: number): number {\n return t * t * t;\n}\n\nexport function easeOutCubic(t: number): number {\n const f = t - 1;\n return f * f * f + 1;\n}\n\nexport function linear(t: number): number {\n return t;\n}\n\nexport function easeInSine(t: number): number {\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n\nexport function easeOutBack(x: number): number {\n const c1 = 1.70158;\n const c3 = c1 + 1;\n return 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2);\n}\n\nexport type InterpolationFunction = (a: number, b: number, t: number) => number;\nexport type EaseFunction = (t: number) => number;\n\nexport function lerp(a: number, b: number, t: number): number {\n return a + (b - a) * t;\n}\n\nexport function lerpEased(\n a: number,\n b: number,\n t: number,\n ease: EaseFunction,\n): number {\n return lerp(a, b, ease(t));\n}\n","import { LoadedFont } from \"./loader\";\nimport { TextAlignment, TextSpec, generateTextMeshBuffer } from \"./sdfText\";\nimport { TextShader } from \"./rendering/TextShader\";\nimport { Transformation } from \"./Transformation\";\nimport { TextParams } from \"./sequencer\";\n\nexport class Text {\n public readonly transformation: Transformation = new Transformation(\n [1, 1, 1],\n [0, 0, 0],\n );\n\n constructor(\n private readonly gl: WebGL2RenderingContext,\n private readonly shader: TextShader,\n private readonly font: LoadedFont,\n private readonly vertexBuffer: WebGLBuffer,\n private readonly vertexCount: number,\n private readonly indexBuffer: WebGLBuffer,\n private readonly vao: WebGLVertexArrayObject,\n ) {}\n\n public static create(\n shader: TextShader,\n font: LoadedFont,\n spec: TextSpec,\n ): Text {\n const gl = shader.gl;\n const { vertexBuffer, vertexCount, indexBuffer } = generateTextMeshBuffer({\n gl,\n font: font.description,\n spec,\n });\n\n const vao = gl.createVertexArray()!;\n gl.bindVertexArray(vao);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 4, gl.FLOAT, false, 0, 0);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, indexBuffer);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribIPointer(1, 1, gl.UNSIGNED_SHORT, 0, 0);\n\n return new Text(\n gl,\n shader,\n font,\n vertexBuffer,\n vertexCount,\n indexBuffer,\n vao,\n );\n }\n\n public render({\n now,\n resolution,\n opacity,\n params,\n }: {\n now: number;\n resolution: [number, number];\n opacity: number;\n params?: TextParams;\n }) {\n this.gl.bindVertexArray(this.vao);\n this.shader.use({\n now,\n resolution,\n transform: this.transformation.matrix(),\n opacity,\n font: this.font,\n waviness: params?.waviness,\n distortion: params?.distortion,\n color: params?.color || [1, 1, 1],\n });\n this.gl.bindTexture(this.gl.TEXTURE_2D, this.font.texture);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, this.vertexCount);\n }\n\n public destroy() {\n this.gl.deleteBuffer(this.vertexBuffer);\n this.gl.deleteBuffer(this.indexBuffer);\n this.gl.deleteVertexArray(this.vao);\n }\n}\n","// https://evanw.github.io/font-texture-generator/\n\nimport { generateTextMesh, generateVerticalTextMesh } from \"./generateTextMesh\";\n\nexport interface FontCharacter {\n x: number;\n y: number;\n width: number;\n height: number;\n originX: number;\n originY: number;\n advance: number;\n}\n\nexport interface FontDescription {\n name: string;\n size: number;\n bold?: boolean;\n italic?: boolean;\n width: number;\n height: number;\n characters: Partial>;\n}\n\nexport type TextAlignment = \"left\" | \"center\" | \"right\";\n\nexport interface HorizontalTextParams {\n align?: TextAlignment;\n}\n\nexport interface VerticalTextParams {\n verticalSpacing: number;\n spaceHeight: number;\n}\n\nexport interface HorizontalTextSpec extends HorizontalTextParams {\n type: \"horizontal\";\n text: string;\n}\n\nexport interface VerticalTextSpec extends VerticalTextParams {\n type: \"vertical\";\n text: string;\n}\n\nexport type TextSpec = HorizontalTextSpec | VerticalTextSpec;\n\nexport function generateTextMeshBuffer({\n gl,\n font,\n spec,\n}: {\n gl: WebGL2RenderingContext;\n font: FontDescription;\n spec: TextSpec;\n}): {\n vertexBuffer: WebGLBuffer;\n indexBuffer: WebGLBuffer;\n vertexCount: number;\n} {\n const { vertices, letterIndices } =\n spec.type === \"vertical\"\n ? generateVerticalTextMesh(font, spec)\n : generateTextMesh(font, spec);\n\n const vertexBuffer = gl.createBuffer();\n const indexBuffer = gl.createBuffer();\n\n if (!vertexBuffer || !indexBuffer) {\n throw new Error(\"Failed to create buffer\");\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, indexBuffer);\n gl.bufferData(\n gl.ARRAY_BUFFER,\n new Uint16Array(letterIndices),\n gl.STATIC_DRAW,\n );\n\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n\n return {\n vertexBuffer: vertexBuffer,\n indexBuffer: indexBuffer,\n vertexCount: vertices.length / 4,\n };\n}\n","import type {\n FontDescription,\n HorizontalTextSpec,\n VerticalTextSpec,\n} from \"./sdfText\";\n\n// Based on https://github.com/evanw/font-texture-generator/blob/gh-pages/example-webgl/index.html\nexport function generateTextMesh(\n font: FontDescription,\n { text, align }: HorizontalTextSpec,\n): {\n vertices: number[];\n letterIndices: number[];\n} {\n // Measure the width of the text\n let totalX = 0;\n let totalY = font.size;\n let maxWidth = 0;\n\n for (const char of text) {\n if (char === \"\\n\") {\n totalY += font.size;\n maxWidth = Math.max(maxWidth, totalX);\n totalX = 0;\n continue;\n }\n\n const character = font.characters[char];\n\n if (!character) {\n throw new Error(`Character \"${char}\" not found in font \"${font.name}\"`);\n }\n\n totalX += character.advance;\n }\n maxWidth = Math.max(maxWidth, totalX);\n\n // Apply alignment\n let x = 0;\n switch (align ?? \"center\") {\n case \"left\":\n break;\n case \"center\":\n x = -maxWidth / 2;\n break;\n case \"right\":\n x = -maxWidth;\n break;\n }\n const initialX = x;\n\n let y = 0;\n const vertices: number[] = [];\n const letterIndices: number[] = [];\n\n let i = 0;\n\n for (const char of text) {\n if (char === \"\\n\") {\n x = initialX;\n y += font.size;\n continue;\n }\n\n i += 1;\n\n // SAFETY: We know this character exists because we checked above\n const c = font.characters[char]!;\n\n let x0 = x - c.originX;\n let y0 = y - c.originY;\n let s0 = c.x / font.width;\n let t0 = c.y / font.height;\n\n let x1 = x - c.originX + c.width;\n let y1 = y - c.originY;\n let s1 = (c.x + c.width) / font.width;\n let t1 = c.y / font.height;\n\n let x2 = x - c.originX;\n let y2 = y - c.originY + c.height;\n let s2 = c.x / font.width;\n let t2 = (c.y + c.height) / font.height;\n\n let x3 = x - c.originX + c.width;\n let y3 = y - c.originY + c.height;\n let s3 = (c.x + c.width) / font.width;\n let t3 = (c.y + c.height) / font.height;\n\n // swap y positions because i don't know why\n y0 = -y0;\n y1 = -y1;\n y2 = -y2;\n y3 = -y3;\n\n vertices.push(x0, y0, s0, t0);\n vertices.push(x1, y1, s1, t1);\n vertices.push(x3, y3, s3, t3);\n\n vertices.push(x0, y0, s0, t0);\n vertices.push(x3, y3, s3, t3);\n vertices.push(x2, y2, s2, t2);\n\n for (let vI = 0; vI < 6; vI++) {\n letterIndices.push(i);\n }\n\n x += c.advance;\n }\n\n return { vertices, letterIndices };\n}\n\n/**\n * Generates a mesh for vertical text\n */\nexport function generateVerticalTextMesh(\n font: FontDescription,\n { text, spaceHeight, verticalSpacing }: VerticalTextSpec,\n): {\n vertices: number[];\n letterIndices: number[];\n} {\n let maxWidth = 0;\n let totalY = 0;\n\n for (const char of text) {\n if (char === \"\\n\" || char === \" \") {\n totalY += spaceHeight;\n continue;\n }\n\n const character = font.characters[char];\n if (!character) {\n throw new Error(`Character \"${char}\" not found in font \"${font.name}\"`);\n }\n\n maxWidth = Math.max(maxWidth, character.width);\n totalY += character.height + (totalY > 0 ? verticalSpacing : 0);\n }\n\n // Vertical text is always centered\n let x = -maxWidth / 2;\n let y = -totalY / 2;\n\n const vertices: number[] = [];\n const letterIndices: number[] = [];\n\n let i = 0;\n for (const char of text) {\n if (char === \"\\n\" || char === \" \") {\n y += spaceHeight;\n continue;\n }\n\n i += 1;\n\n // SAFETY: We know this character exists because we checked above\n const c = font.characters[char]!;\n\n // Center the character\n const charX = x + (maxWidth - c.width) / 2;\n\n let x0 = charX - c.originX;\n let y0 = y - c.originY;\n let s0 = c.x / font.width;\n let t0 = c.y / font.height;\n\n let x1 = charX - c.originX + c.width;\n let y1 = y - c.originY;\n let s1 = (c.x + c.width) / font.width;\n let t1 = c.y / font.height;\n\n let x2 = charX - c.originX;\n let y2 = y - c.originY + c.height;\n let s2 = c.x / font.width;\n let t2 = (c.y + c.height) / font.height;\n\n let x3 = charX - c.originX + c.width;\n let y3 = y - c.originY + c.height;\n let s3 = (c.x + c.width) / font.width;\n let t3 = (c.y + c.height) / font.height;\n\n // swap y positions because i don't know why\n y0 = -y0;\n y1 = -y1;\n y2 = -y2;\n y3 = -y3;\n\n vertices.push(x0, y0, s0, t0);\n vertices.push(x1, y1, s1, t1);\n vertices.push(x3, y3, s3, t3);\n\n vertices.push(x0, y0, s0, t0);\n vertices.push(x3, y3, s3, t3);\n vertices.push(x2, y2, s2, t2);\n\n for (let vI = 0; vI < 6; vI++) {\n letterIndices.push(i);\n }\n\n y += c.height + verticalSpacing;\n }\n\n return { vertices, letterIndices };\n}\n","import { mat4, quat, vec3 } from \"gl-matrix\";\n\nexport class Transformation {\n private scale: vec3;\n private translation: vec3;\n private readonly rotation: quat = quat.create();\n\n private readonly matrixCache: mat4 = mat4.create();\n private matrixCacheValid = false;\n\n constructor(scale: vec3, translation: vec3) {\n this.scale = scale;\n this.translation = translation;\n }\n\n public setScale(scale: vec3) {\n this.scale = scale;\n this.matrixCacheValid = false;\n }\n\n public setTranslation(translation: vec3) {\n this.translation = translation;\n this.matrixCacheValid = false;\n }\n\n public matrix(): mat4 {\n if (this.matrixCacheValid) {\n return this.matrixCache;\n }\n\n mat4.fromRotationTranslationScale(\n this.matrixCache,\n this.rotation,\n this.translation,\n this.scale,\n );\n\n this.matrixCacheValid = true;\n\n return this.matrixCache;\n }\n}\n","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix
Format: column-major, when typed out it looks like row-major
The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\nimport * as mat3 from \"./mat3.js\";\nimport * as vec3 from \"./vec3.js\";\nimport * as vec4 from \"./vec4.js\";\n/**\n * Quaternion\n * @module quat\n */\n\n/**\n * Creates a new identity quat\n *\n * @returns {quat} a new quaternion\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n out[3] = 1;\n return out;\n}\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\n\nexport function identity(out) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n}\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyVec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/\n\nexport function setAxisAngle(out, axis, rad) {\n rad = rad * 0.5;\n var s = Math.sin(rad);\n out[0] = s * axis[0];\n out[1] = s * axis[1];\n out[2] = s * axis[2];\n out[3] = Math.cos(rad);\n return out;\n}\n/**\n * Gets the rotation axis and angle for a given\n * quaternion. If a quaternion is created with\n * setAxisAngle, this method will return the same\n * values as providied in the original parameter list\n * OR functionally equivalent values.\n * Example: The quaternion formed by axis [0, 0, 1] and\n * angle -90 is the same as the quaternion formed by\n * [0, 0, 1] and 270. This method favors the latter.\n * @param {vec3} out_axis Vector receiving the axis of rotation\n * @param {ReadonlyQuat} q Quaternion to be decomposed\n * @return {Number} Angle, in radians, of the rotation\n */\n\nexport function getAxisAngle(out_axis, q) {\n var rad = Math.acos(q[3]) * 2.0;\n var s = Math.sin(rad / 2.0);\n\n if (s > glMatrix.EPSILON) {\n out_axis[0] = q[0] / s;\n out_axis[1] = q[1] / s;\n out_axis[2] = q[2] / s;\n } else {\n // If s is zero, return any axis (no rotation - axis does not matter)\n out_axis[0] = 1;\n out_axis[1] = 0;\n out_axis[2] = 0;\n }\n\n return rad;\n}\n/**\n * Gets the angular distance between two unit quaternions\n *\n * @param {ReadonlyQuat} a Origin unit quaternion\n * @param {ReadonlyQuat} b Destination unit quaternion\n * @return {Number} Angle, in radians, between the two quaternions\n */\n\nexport function getAngle(a, b) {\n var dotproduct = dot(a, b);\n return Math.acos(2 * dotproduct * dotproduct - 1);\n}\n/**\n * Multiplies two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n */\n\nexport function multiply(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n out[0] = ax * bw + aw * bx + ay * bz - az * by;\n out[1] = ay * bw + aw * by + az * bx - ax * bz;\n out[2] = az * bw + aw * bz + ax * by - ay * bx;\n out[3] = aw * bw - ax * bx - ay * by - az * bz;\n return out;\n}\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nexport function rotateX(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + aw * bx;\n out[1] = ay * bw + az * bx;\n out[2] = az * bw - ay * bx;\n out[3] = aw * bw - ax * bx;\n return out;\n}\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nexport function rotateY(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var by = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw - az * by;\n out[1] = ay * bw + aw * by;\n out[2] = az * bw + ax * by;\n out[3] = aw * bw - ay * by;\n return out;\n}\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nexport function rotateZ(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bz = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + ay * bz;\n out[1] = ay * bw - ax * bz;\n out[2] = az * bw + aw * bz;\n out[3] = aw * bw - az * bz;\n return out;\n}\n/**\n * Calculates the W component of a quat from the X, Y, and Z components.\n * Assumes that quaternion is 1 unit in length.\n * Any existing W component will be ignored.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate W component of\n * @returns {quat} out\n */\n\nexport function calculateW(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n return out;\n}\n/**\n * Calculate the exponential of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\n\nexport function exp(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var et = Math.exp(w);\n var s = r > 0 ? et * Math.sin(r) / r : 0;\n out[0] = x * s;\n out[1] = y * s;\n out[2] = z * s;\n out[3] = et * Math.cos(r);\n return out;\n}\n/**\n * Calculate the natural logarithm of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\n\nexport function ln(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var t = r > 0 ? Math.atan2(r, w) / r : 0;\n out[0] = x * t;\n out[1] = y * t;\n out[2] = z * t;\n out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n return out;\n}\n/**\n * Calculate the scalar power of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @param {Number} b amount to scale the quaternion by\n * @returns {quat} out\n */\n\nexport function pow(out, a, b) {\n ln(out, a);\n scale(out, out, b);\n exp(out, out);\n return out;\n}\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\n\nexport function slerp(out, a, b, t) {\n // benchmarks:\n // http://jsperf.com/quaternion-slerp-implementations\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n var omega, cosom, sinom, scale0, scale1; // calc cosine\n\n cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n } // calculate coefficients\n\n\n if (1.0 - cosom > glMatrix.EPSILON) {\n // standard case (slerp)\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n // \"from\" and \"to\" quaternions are very close\n // ... so we can do a linear interpolation\n scale0 = 1.0 - t;\n scale1 = t;\n } // calculate final values\n\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n}\n/**\n * Generates a random unit quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\n\nexport function random(out) {\n // Implementation of http://planning.cs.uiuc.edu/node198.html\n // TODO: Calling random 3 times is probably not the fastest solution\n var u1 = glMatrix.RANDOM();\n var u2 = glMatrix.RANDOM();\n var u3 = glMatrix.RANDOM();\n var sqrt1MinusU1 = Math.sqrt(1 - u1);\n var sqrtU1 = Math.sqrt(u1);\n out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n return out;\n}\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate inverse of\n * @returns {quat} out\n */\n\nexport function invert(out, a) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n var invDot = dot ? 1.0 / dot : 0; // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n out[0] = -a0 * invDot;\n out[1] = -a1 * invDot;\n out[2] = -a2 * invDot;\n out[3] = a3 * invDot;\n return out;\n}\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate conjugate of\n * @returns {quat} out\n */\n\nexport function conjugate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyMat3} m rotation matrix\n * @returns {quat} out\n * @function\n */\n\nexport function fromMat3(out, m) {\n // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n // article \"Quaternion Calculus and Fast Animation\".\n var fTrace = m[0] + m[4] + m[8];\n var fRoot;\n\n if (fTrace > 0.0) {\n // |w| > 1/2, may as well choose w > 1/2\n fRoot = Math.sqrt(fTrace + 1.0); // 2w\n\n out[3] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot; // 1/(4w)\n\n out[0] = (m[5] - m[7]) * fRoot;\n out[1] = (m[6] - m[2]) * fRoot;\n out[2] = (m[1] - m[3]) * fRoot;\n } else {\n // |w| <= 1/2\n var i = 0;\n if (m[4] > m[0]) i = 1;\n if (m[8] > m[i * 3 + i]) i = 2;\n var j = (i + 1) % 3;\n var k = (i + 2) % 3;\n fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n out[i] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot;\n out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n }\n\n return out;\n}\n/**\n * Creates a quaternion from the given euler angle x, y, z.\n *\n * @param {quat} out the receiving quaternion\n * @param {x} Angle to rotate around X axis in degrees.\n * @param {y} Angle to rotate around Y axis in degrees.\n * @param {z} Angle to rotate around Z axis in degrees.\n * @returns {quat} out\n * @function\n */\n\nexport function fromEuler(out, x, y, z) {\n var halfToRad = 0.5 * Math.PI / 180.0;\n x *= halfToRad;\n y *= halfToRad;\n z *= halfToRad;\n var sx = Math.sin(x);\n var cx = Math.cos(x);\n var sy = Math.sin(y);\n var cy = Math.cos(y);\n var sz = Math.sin(z);\n var cz = Math.cos(z);\n out[0] = sx * cy * cz - cx * sy * sz;\n out[1] = cx * sy * cz + sx * cy * sz;\n out[2] = cx * cy * sz - sx * sy * cz;\n out[3] = cx * cy * cz + sx * sy * sz;\n return out;\n}\n/**\n * Returns a string representation of a quatenion\n *\n * @param {ReadonlyQuat} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Creates a new quat initialized with values from an existing quaternion\n *\n * @param {ReadonlyQuat} a quaternion to clone\n * @returns {quat} a new quaternion\n * @function\n */\n\nexport var clone = vec4.clone;\n/**\n * Creates a new quat initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} a new quaternion\n * @function\n */\n\nexport var fromValues = vec4.fromValues;\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the source quaternion\n * @returns {quat} out\n * @function\n */\n\nexport var copy = vec4.copy;\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */\n\nexport var set = vec4.set;\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n * @function\n */\n\nexport var add = vec4.add;\n/**\n * Alias for {@link quat.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {ReadonlyQuat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */\n\nexport var scale = vec4.scale;\n/**\n * Calculates the dot product of two quat's\n *\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */\n\nexport var dot = vec4.dot;\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n * @function\n */\n\nexport var lerp = vec4.lerp;\n/**\n * Calculates the length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport var length = vec4.length;\n/**\n * Alias for {@link quat.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Calculates the squared length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate squared length of\n * @returns {Number} squared length of a\n * @function\n */\n\nexport var squaredLength = vec4.squaredLength;\n/**\n * Alias for {@link quat.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */\n\nexport var normalize = vec4.normalize;\n/**\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyQuat} a The first quaternion.\n * @param {ReadonlyQuat} b The second quaternion.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport var exactEquals = vec4.exactEquals;\n/**\n * Returns whether or not the quaternions have approximately the same elements in the same position.\n *\n * @param {ReadonlyQuat} a The first vector.\n * @param {ReadonlyQuat} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport var equals = vec4.equals;\n/**\n * Sets a quaternion to represent the shortest rotation from one\n * vector to another.\n *\n * Both vectors are assumed to be unit length.\n *\n * @param {quat} out the receiving quaternion.\n * @param {ReadonlyVec3} a the initial vector\n * @param {ReadonlyVec3} b the destination vector\n * @returns {quat} out\n */\n\nexport var rotationTo = function () {\n var tmpvec3 = vec3.create();\n var xUnitVec3 = vec3.fromValues(1, 0, 0);\n var yUnitVec3 = vec3.fromValues(0, 1, 0);\n return function (out, a, b) {\n var dot = vec3.dot(a, b);\n\n if (dot < -0.999999) {\n vec3.cross(tmpvec3, xUnitVec3, a);\n if (vec3.len(tmpvec3) < 0.000001) vec3.cross(tmpvec3, yUnitVec3, a);\n vec3.normalize(tmpvec3, tmpvec3);\n setAxisAngle(out, tmpvec3, Math.PI);\n return out;\n } else if (dot > 0.999999) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n } else {\n vec3.cross(tmpvec3, a, b);\n out[0] = tmpvec3[0];\n out[1] = tmpvec3[1];\n out[2] = tmpvec3[2];\n out[3] = 1 + dot;\n return normalize(out, out);\n }\n };\n}();\n/**\n * Performs a spherical linear interpolation with two control points\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {ReadonlyQuat} c the third operand\n * @param {ReadonlyQuat} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\n\nexport var sqlerp = function () {\n var temp1 = create();\n var temp2 = create();\n return function (out, a, b, c, d, t) {\n slerp(temp1, a, d, t);\n slerp(temp2, b, c, t);\n slerp(out, temp1, temp2, 2 * t * (1 - t));\n return out;\n };\n}();\n/**\n * Sets the specified quaternion with values corresponding to the given\n * axes. Each axis is a vec3 and is expected to be unit length and\n * perpendicular to all other specified axes.\n *\n * @param {ReadonlyVec3} view the vector representing the viewing direction\n * @param {ReadonlyVec3} right the vector representing the local \"right\" direction\n * @param {ReadonlyVec3} up the vector representing the local \"up\" direction\n * @returns {quat} out\n */\n\nexport var setAxes = function () {\n var matr = mat3.create();\n return function (out, view, right, up) {\n matr[0] = right[0];\n matr[3] = right[1];\n matr[6] = right[2];\n matr[1] = up[0];\n matr[4] = up[1];\n matr[7] = up[2];\n matr[2] = -view[0];\n matr[5] = -view[1];\n matr[8] = -view[2];\n return normalize(out, fromMat3(out, matr));\n };\n}();","import * as glMatrix from \"./common.js\";\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 4 Dimensional Vector\n * @module vec4\n */\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {ReadonlyVec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Creates a new vec4 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} a new 4D vector\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the source vector\n * @returns {vec4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\n * Multiplies two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\n * Math.ceil the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to ceil\n * @returns {vec4} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\n * Math.floor the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to floor\n * @returns {vec4} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\n * Returns the maximum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\n * Math.round the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to round\n * @returns {vec4} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\n * Adds two vec4's after scaling the second operand by a scalar value\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec4} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\n * Calculates the length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\n * Negates the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to negate\n * @returns {vec4} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to invert\n * @returns {vec4} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to normalize\n * @returns {vec4} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\n * Returns the cross-product of three vectors in a 4-dimensional space\n *\n * @param {ReadonlyVec4} result the receiving vector\n * @param {ReadonlyVec4} U the first vector\n * @param {ReadonlyVec4} V the second vector\n * @param {ReadonlyVec4} W the third vector\n * @returns {vec4} result\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec4} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec4} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec4} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec4} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\n * Transforms the vec4 with a quat\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec4} out\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\n * Set the components of a vec4 to zero\n *\n * @param {vec4} out the receiving vector\n * @returns {vec4} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec4} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\n * Alias for {@link vec4.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec4.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec4.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec4.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec4.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec4.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec4s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n}();","import { vec2, vec3 } from \"gl-matrix\";\n\nexport function isVec3(v: any): v is vec3 {\n return (Array.isArray(v) || v instanceof Float32Array) && v.length === 3;\n}\n\nexport function isVec2(v: any): v is vec2 {\n return (Array.isArray(v) || v instanceof Float32Array) && v.length === 2;\n}\n\nexport function lerpVec3Eased(\n ease: (t: number) => number,\n a: vec3,\n b: vec3,\n t: number,\n): vec3 {\n return vec3.lerp(vec3.create(), a, b, ease(t));\n}\n","import { vec3 } from \"gl-matrix\";\n\nexport function containsNans(vec: vec3) {\n return isNaN(vec[0]) || isNaN(vec[1]) || isNaN(vec[2]);\n}\n\nexport function clamp01(value: number) {\n return Math.max(0, Math.min(1, value));\n}\n","export function throttle any>(\n fn: T,\n delay: number,\n): T {\n let last = 0;\n\n return function (...args: any[]) {\n const now = Date.now();\n\n if (now - last < delay) {\n return;\n }\n\n last = now;\n\n return fn(...args);\n } as T;\n}\n\nexport function debounce any>(\n fn: T,\n delay: number,\n): T {\n let timeout: number | null = null;\n\n return function (...args: any[]) {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(() => {\n fn(...args);\n }, delay) as any;\n } as T;\n}\n","import { PostEffectsPipeline } from \"./PostEffectsPipeline\";\nimport { PostEffect } from \"./PostEffect\";\nimport { Quad } from \"./Quad\";\nimport * as fs from \"fs\";\nimport { FadePostEffect } from \"./FadePostEffect\";\nimport { BloomPostEffect } from \"./BloomAddPostEffect\";\n\nexport function createPostEffectsPipeline(\n gl: WebGL2RenderingContext,\n resolution: [number, number],\n bloomTexture: WebGLTexture,\n) {\n const fxaa = new PostEffect(\n gl,\n \"FXAA\",\n fs.readFileSync(__dirname + \"/effects/fxaa.frag\", \"utf8\"),\n );\n\n const bloomAdd = new BloomPostEffect(gl, bloomTexture);\n\n const tonemapExposure = new PostEffect(\n gl,\n \"Tonemap Exposure\",\n fs.readFileSync(__dirname + \"/effects/tonemap_exposure.frag\", \"utf8\"),\n );\n\n const chromaticAberration = new PostEffect(\n gl,\n \"Chromatic Aberration\",\n fs.readFileSync(__dirname + \"/effects/chromatic_aberration.frag\", \"utf8\"),\n );\n\n const boxBlur = new PostEffect(\n gl,\n \"Box Blur\",\n fs.readFileSync(__dirname + \"/effects/box_blur.frag\", \"utf8\"),\n );\n\n const vhsDistortion = new PostEffect(\n gl,\n \"VHS Distortion\",\n fs.readFileSync(__dirname + \"/effects/vhs_distortion.frag\", \"utf8\"),\n );\n vhsDistortion.enabled = false;\n\n const fade = new FadePostEffect(gl);\n\n const vignette = new PostEffect(\n gl,\n \"Vignette\",\n fs.readFileSync(__dirname + \"/effects/vignette.frag\", \"utf8\"),\n );\n\n const noise = new PostEffect(\n gl,\n \"Noise\",\n fs.readFileSync(__dirname + \"/effects/noise.frag\", \"utf8\"),\n );\n\n const effects = [\n bloomAdd,\n fxaa,\n tonemapExposure,\n chromaticAberration,\n //boxBlur,\n vhsDistortion,\n fade,\n vignette,\n noise,\n ];\n const quad = new Quad(gl);\n\n return new PostEffectsPipeline(gl, quad, resolution, 1.0, true, effects);\n}\n\nexport function createBloomPipeline(\n gl: WebGL2RenderingContext,\n resolution: [number, number],\n) {\n const bloomExtract = new PostEffect(\n gl,\n \"Bloom Extract\",\n fs.readFileSync(__dirname + \"/effects/bloom_extract.frag\", \"utf8\"),\n );\n\n const bloomBlur = new PostEffect(\n gl,\n \"Bloom Blur\",\n fs.readFileSync(__dirname + \"/effects/box_blur.frag\", \"utf8\"),\n );\n\n return new PostEffectsPipeline(gl, new Quad(gl), resolution, 1.0, false, [\n bloomExtract,\n bloomBlur,\n bloomBlur,\n bloomBlur,\n bloomBlur,\n bloomBlur,\n ]);\n}\n","import { mat4, vec4 } from \"gl-matrix\";\nimport { Quad } from \"./Quad\";\nimport { PostEffect } from \"./PostEffect\";\n\nexport interface PostEffectsInput {\n now: number;\n resolution: [number, number];\n\n // For fade\n fadeColor: vec4;\n\n enableEffects?: { [name: string]: true };\n}\n\n/**\n * PostEffectsPipeline is used for chaining post effects together.\n * We can't put every effect into one shader, because many of them need to\n * sample the screen buffer, which would overwrite the previous effect.\n * Instead, we'll render each effect to a texture (using a framebuffer),\n * and then render the texture to the screen with the next effect.\n */\nexport class PostEffectsPipeline {\n /**\n * This is used for the normal scene rendering, which produces a color buffer\n * and a depth buffer.\n */\n private readonly sceneFramebuffer: WebGLFramebuffer;\n /**\n * This is used for the post effects rendering, which produces a color buffer and\n * feeds it into the next effect.\n */\n private readonly effectFramebuffer: WebGLFramebuffer;\n\n // We need two copies of the color texture because each effect will render\n // to one and then we'll swap them.\n // We use 16-float textures to enable HDR rendering.\n private readonly colorTextures: WebGLTexture[] = [];\n private colorTextureIndex = 0;\n\n // We also need a depth texture for the scene rendering. One is enough because\n // effects do not alter the depth buffer.\n // This depth texture is 32-bit float, because it also stores the position of each fragment.\n private readonly positionAndDepthTexture: WebGLTexture;\n\n constructor(\n private readonly gl: WebGL2RenderingContext,\n private readonly quad: Quad,\n originalResolution: [number, number],\n protected readonly resolutionScale: number,\n protected readonly renderLastToScreen: boolean,\n private readonly effects: PostEffect[],\n ) {\n const resolution = [\n Math.floor(originalResolution[0] * resolutionScale),\n Math.floor(originalResolution[1] * resolutionScale),\n ] as [number, number];\n // Create color textures\n for (let i = 0; i < 2; i++) {\n const colorTexture = gl.createTexture()!;\n gl.bindTexture(gl.TEXTURE_2D, colorTexture);\n this.initializeColorTexture(colorTexture, resolution);\n this.setTextureFlags();\n this.colorTextures.push(colorTexture);\n }\n\n // Create depth texture\n this.positionAndDepthTexture = gl.createTexture()!;\n gl.bindTexture(gl.TEXTURE_2D, this.positionAndDepthTexture);\n this.initializePositionAndDepthTexture(\n this.positionAndDepthTexture,\n resolution,\n );\n this.setTextureFlags();\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n\n // Create scene framebuffer\n this.sceneFramebuffer = gl.createFramebuffer()!;\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.sceneFramebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n this.colorTextures[this.colorTextureIndex],\n 0,\n );\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT1,\n gl.TEXTURE_2D,\n this.positionAndDepthTexture,\n 0,\n );\n gl.drawBuffers([gl.COLOR_ATTACHMENT0, gl.COLOR_ATTACHMENT1]);\n\n // Create effect framebuffer\n this.effectFramebuffer = gl.createFramebuffer()!;\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.effectFramebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n this.colorTextures[1 - this.colorTextureIndex],\n 0,\n );\n gl.drawBuffers([gl.COLOR_ATTACHMENT0]);\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n }\n\n public beforeScene() {\n const gl = this.gl;\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.sceneFramebuffer);\n // Update framebuffer texture\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n this.colorTextures[this.colorTextureIndex],\n 0,\n );\n }\n\n public getScreenBuffer() {\n return this.colorTextures[this.colorTextureIndex];\n }\n\n public getBackBuffer() {\n return this.colorTextures[1 - this.colorTextureIndex];\n }\n\n public copyFromScreenBuffer() {\n const gl = this.gl;\n\n gl.bindTexture(gl.TEXTURE_2D, this.colorTextures[this.colorTextureIndex]);\n gl.copyTexSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 0,\n 0,\n gl.drawingBufferWidth,\n gl.drawingBufferHeight,\n );\n }\n\n public render(input: PostEffectsInput) {\n const gl = this.gl;\n\n const renderQuad = () => {\n this.quad.render();\n };\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.effectFramebuffer);\n\n const renderUpTo = this.renderLastToScreen\n ? this.effects.length - 1\n : this.effects.length;\n\n // Render up to second-to-last effect\n for (let i = 0; i < renderUpTo; i++) {\n const effect = this.effects[i];\n\n if (!effect.enabled && !input.enableEffects?.[effect.name]) {\n continue;\n }\n\n const colorTexture = this.colorTextures[this.colorTextureIndex];\n const depthTexture = this.positionAndDepthTexture;\n effect.render(input, colorTexture, depthTexture, renderQuad);\n\n // Swap color textures in the framebuffer\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n this.colorTextures[this.colorTextureIndex],\n 0,\n );\n this.colorTextureIndex = 1 - this.colorTextureIndex;\n }\n\n if (this.renderLastToScreen) {\n // Last effect is rendered to the screen\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n const effect = this.effects[this.effects.length - 1];\n\n const colorTexture = this.colorTextures[this.colorTextureIndex];\n const depthTexture = this.positionAndDepthTexture;\n effect.render(input, colorTexture, depthTexture, renderQuad);\n }\n }\n\n public getEffect(name: string): PostEffect | undefined {\n return this.effects.find((effect) => effect.name === name);\n }\n\n public setEffectEnabled(name: string, enabled: boolean) {\n const effect = this.effects.find((effect) => effect.name === name);\n if (effect) {\n effect.enabled = enabled;\n }\n }\n\n initializeColorTexture(\n texture: WebGLTexture,\n [width, height]: [number, number],\n ) {\n const gl = this.gl;\n\n gl.bindTexture(this.gl.TEXTURE_2D, texture);\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n gl.RGBA16F,\n width,\n height,\n 0,\n gl.RGBA,\n gl.FLOAT,\n null,\n );\n }\n\n initializePositionAndDepthTexture(\n texture: WebGLTexture,\n [width, height]: [number, number],\n ) {\n const gl = this.gl;\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n gl.RGBA32F,\n width,\n height,\n 0,\n gl.RGBA,\n gl.FLOAT,\n null,\n );\n }\n\n setTextureFlags() {\n const gl = this.gl;\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n }\n\n resize(originalResolution: [number, number]) {\n const gl = this.gl;\n\n const resolution = [\n Math.floor(originalResolution[0] * this.resolutionScale),\n Math.floor(originalResolution[1] * this.resolutionScale),\n ] as [number, number];\n\n // Resize color textures\n for (const texture of this.colorTextures) {\n gl.bindTexture(gl.TEXTURE_2D, texture);\n this.initializeColorTexture(texture, resolution);\n }\n\n // Resize depth texture\n gl.bindTexture(gl.TEXTURE_2D, this.positionAndDepthTexture);\n this.initializePositionAndDepthTexture(\n this.positionAndDepthTexture,\n resolution,\n );\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n }\n}\n","import * as fs from \"fs\";\nimport { loadShader } from \"../gl\";\nimport { PostEffectsInput } from \"./PostEffectsPipeline\";\n\nexport class PostEffect {\n protected readonly shader: WebGLProgram;\n private readonly colorTextureLocation: WebGLUniformLocation;\n private readonly depthTextureLocation: WebGLUniformLocation;\n private readonly nowLocation: WebGLUniformLocation;\n private readonly resolutionLocation: WebGLUniformLocation;\n\n public enabled: boolean = true;\n\n private static readonly vertexShader = fs.readFileSync(\n __dirname + \"/effects/postfx.vert\",\n \"utf8\",\n );\n\n constructor(\n protected readonly gl: WebGL2RenderingContext,\n public readonly name: string,\n fragmentShader: string,\n ) {\n const shader = loadShader(\n gl,\n PostEffect.vertexShader,\n fragmentShader,\n name,\n );\n this.shader = shader;\n\n this.colorTextureLocation = gl.getUniformLocation(shader, \"screenBuffer\")!;\n this.depthTextureLocation = gl.getUniformLocation(shader, \"depthBuffer\")!;\n this.nowLocation = gl.getUniformLocation(shader, \"now\")!;\n this.resolutionLocation = gl.getUniformLocation(shader, \"resolution\")!;\n }\n\n protected setUniforms(input: PostEffectsInput) {\n this.gl.uniform1f(this.nowLocation, input.now);\n this.gl.uniform2fv(this.resolutionLocation, input.resolution);\n }\n\n protected beforeQuadRender() {}\n\n public render(\n input: PostEffectsInput,\n colorTexture: WebGLTexture,\n depthTexture: WebGLTexture,\n renderQuad: () => void,\n ) {\n this.gl.useProgram(this.shader);\n this.gl.uniform1i(this.colorTextureLocation, 0);\n this.gl.uniform1i(this.depthTextureLocation, 1);\n this.setUniforms(input);\n\n this.gl.activeTexture(this.gl.TEXTURE0);\n this.gl.bindTexture(this.gl.TEXTURE_2D, colorTexture);\n this.gl.activeTexture(this.gl.TEXTURE1);\n this.gl.bindTexture(this.gl.TEXTURE_2D, depthTexture);\n this.beforeQuadRender();\n\n renderQuad();\n\n this.gl.useProgram(null);\n }\n}\n","import { generateQuadBuffer } from \"../gl\";\n\nexport class Quad {\n private readonly vertexBuffer: WebGLBuffer;\n private readonly vao: WebGLVertexArrayObject;\n\n constructor(private readonly gl: WebGL2RenderingContext) {\n this.vertexBuffer = generateQuadBuffer(gl);\n this.vao = gl.createVertexArray()!;\n\n gl.bindVertexArray(this.vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);\n gl.bindVertexArray(null);\n }\n\n public render() {\n this.gl.bindVertexArray(this.vao);\n this.gl.drawArrays(this.gl.TRIANGLE_STRIP, 0, 4);\n this.gl.bindVertexArray(null);\n }\n}\n","import * as fs from \"fs\";\nimport { PostEffectsInput } from \"./PostEffectsPipeline\";\nimport { PostEffect } from \"./PostEffect\";\n\nexport class FadePostEffect extends PostEffect {\n private readonly fadeColorLocation: WebGLUniformLocation;\n\n constructor(gl: WebGL2RenderingContext) {\n super(\n gl,\n \"Fade\",\n fs.readFileSync(__dirname + \"/effects/fade.frag\", \"utf8\"),\n );\n\n this.fadeColorLocation = gl.getUniformLocation(this.shader, \"fadeColor\")!;\n }\n\n protected setUniforms(input: PostEffectsInput) {\n super.setUniforms(input);\n this.gl.uniform4fv(this.fadeColorLocation, input.fadeColor);\n }\n}\n","import { PostEffect } from \"./PostEffect\";\nimport { PostEffectsInput } from \"./PostEffectsPipeline\";\nimport * as fs from \"fs\";\n\nexport class BloomPostEffect extends PostEffect {\n private readonly bloomTextureLocation: WebGLUniformLocation;\n\n constructor(\n gl: WebGL2RenderingContext,\n private readonly bloomTexture: WebGLTexture,\n ) {\n super(\n gl,\n \"Bloom Add\",\n fs.readFileSync(__dirname + \"/effects/bloom_add.frag\", \"utf8\"),\n );\n\n this.bloomTextureLocation = gl.getUniformLocation(this.shader, \"bloom\")!;\n gl.useProgram(this.shader);\n this.gl.uniform1i(this.bloomTextureLocation, 2);\n gl.useProgram(null);\n }\n\n protected setUniforms(input: PostEffectsInput) {\n super.setUniforms(input);\n }\n\n protected beforeQuadRender() {\n this.gl.activeTexture(this.gl.TEXTURE2);\n this.gl.bindTexture(this.gl.TEXTURE_2D, this.bloomTexture);\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class MainShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(__dirname + \"/main.frag\", \"utf8\");\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n\n this.addTextureUniform(\"textureMetal\", resources.textures.metal);\n this.addTextureUniform(\n \"textureMetalNormal\",\n resources.textures.metalNormal,\n );\n }\n}\n","import { generateQuadBuffer, loadShader, setUniformVec3 } from \"../../gl\";\nimport { LoadedState } from \"../../loader\";\nimport { Camera, Light } from \"../../common\";\nimport { InstantState } from \"../../sequencer\";\nimport { TextureUniform } from \"../TextureUniform\";\nimport { Uniform } from \"../Uniform\";\n\ntype LocationsFor = {\n [K in keyof T]: WebGLUniformLocation;\n};\n\ntype CameraLocations = LocationsFor;\ntype LightLocations = LocationsFor;\ninterface SceneLightingLocations {\n ambient: WebGLUniformLocation;\n cameraLightIntensity: WebGLUniformLocation;\n\n light1: LightLocations;\n\n fogColor: WebGLUniformLocation;\n fogDensity: WebGLUniformLocation;\n}\n\nexport interface RenderInput extends InstantState {\n resolution: [number, number];\n fft: Float32Array;\n}\n\nexport class SDFQuad {\n private readonly vao = this.gl.createVertexArray()!;\n private readonly vertexBuffer = generateQuadBuffer(this.gl);\n protected readonly shader: WebGLShader;\n\n private readonly now: Uniform<\"float\">;\n private readonly resolution: Uniform<\"vec2\">;\n private readonly sceneId: Uniform<\"uint\">;\n private readonly sceneProgress: Uniform<\"float\">;\n private readonly beat: Uniform<\"float\">;\n private readonly sceneBeat: Uniform<\"uint\">;\n private readonly sceneNow: Uniform<\"float\">;\n private readonly sceneVariables: Uniform<\"vec4\">;\n private readonly sceneVariables2: Uniform<\"vec4\">;\n\n private readonly lightingLocations: SceneLightingLocations;\n private readonly cameraLocations: CameraLocations;\n\n private nextTextureUnit = 0;\n private readonly textureUniforms: TextureUniform[] = [];\n private readonly fftTexture: TextureUniform;\n\n constructor(\n protected readonly gl: WebGL2RenderingContext,\n resources: LoadedState,\n vertexShader: string,\n fragmentShader: string,\n ) {\n const shader = loadShader(gl, vertexShader, fragmentShader, \"SDF\");\n this.shader = shader;\n this.vertexBuffer = generateQuadBuffer(gl);\n\n this.vao = gl.createVertexArray()!;\n gl.bindVertexArray(this.vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);\n\n this.now = new Uniform(gl, shader, \"now\", \"float\");\n this.resolution = new Uniform(gl, shader, \"resolution\", \"vec2\");\n this.sceneId = new Uniform(gl, shader, \"sceneId\", \"uint\");\n this.sceneProgress = new Uniform(gl, shader, \"sceneProgress\", \"float\");\n this.beat = new Uniform(gl, shader, \"beat\", \"float\");\n this.sceneBeat = new Uniform(gl, shader, \"sceneBeat\", \"uint\");\n this.sceneNow = new Uniform(gl, shader, \"sceneNow\", \"float\");\n this.sceneVariables = new Uniform(gl, shader, \"sceneVariables\", \"vec4\");\n this.sceneVariables2 = new Uniform(gl, shader, \"sceneVariables2\", \"vec4\");\n\n this.cameraLocations = SDFQuad.getCameraLocations(gl, shader, \"camera\");\n this.lightingLocations = SDFQuad.getLightingLocations(gl, shader);\n\n this.addTextureUniform(\"randomTexture\", resources.textures.noise);\n this.fftTexture = this.addTextureUniform(\n \"fftTexture\",\n this.createFftTexture(),\n );\n\n gl.useProgram(null);\n gl.bindTexture(gl.TEXTURE_2D, null);\n }\n\n private createFftTexture() {\n const gl = this.gl;\n const fftTexture = gl.createTexture()!;\n gl.bindTexture(gl.TEXTURE_2D, fftTexture);\n // Disable mipmaps\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.bindTexture(gl.TEXTURE_2D, null);\n return fftTexture;\n }\n\n protected addTextureUniform(name: string, texture: WebGLTexture) {\n const uniform = new TextureUniform(\n this.gl,\n this.shader,\n name,\n this.nextTextureUnit,\n texture,\n );\n this.nextTextureUnit++;\n this.textureUniforms.push(uniform);\n return uniform;\n }\n\n private bindAllTextureUniforms() {\n for (const uniform of this.textureUniforms) {\n uniform.bind();\n }\n }\n\n public render(renderInput: RenderInput) {\n const {\n now,\n resolution,\n sceneId,\n camera,\n sceneProgress,\n beat,\n sceneNow,\n nowInSceneBeats,\n lighting,\n sceneVariables,\n sceneVariables2,\n fft,\n } = renderInput;\n this.gl.bindVertexArray(this.vao);\n this.gl.useProgram(this.shader);\n\n this.now.update(now);\n this.resolution.update(resolution);\n this.sceneId.update(sceneId);\n this.sceneProgress.update(sceneProgress);\n this.beat.update(beat);\n this.sceneNow.update(sceneNow);\n this.sceneBeat.update(Math.floor(nowInSceneBeats));\n this.sceneVariables.update(sceneVariables);\n\n if (sceneVariables2) {\n this.sceneVariables2.update(sceneVariables2);\n }\n\n this.updateCameraUniforms(this.cameraLocations, camera);\n\n this.updateLightUniforms(this.lightingLocations.light1, lighting.light1);\n setUniformVec3(this.gl, this.lightingLocations.ambient, lighting.ambient);\n setUniformVec3(\n this.gl,\n this.lightingLocations.cameraLightIntensity,\n lighting.cameraLightIntensity,\n );\n setUniformVec3(this.gl, this.lightingLocations.fogColor, lighting.fogColor);\n this.gl.uniform1f(this.lightingLocations.fogDensity, lighting.fogDensity);\n\n this.updateUniforms(renderInput);\n\n // Update FFT texture\n this.fftTexture.update((gl) => {\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n gl.R32F,\n fft.length,\n 1,\n 0,\n gl.RED,\n gl.FLOAT,\n fft,\n );\n });\n\n this.bindAllTextureUniforms();\n\n this.gl.drawArrays(this.gl.TRIANGLE_STRIP, 0, 4);\n }\n\n protected updateUniforms(input: RenderInput) {}\n\n public destroy() {\n this.gl.deleteBuffer(this.vertexBuffer);\n this.gl.deleteVertexArray(this.vao);\n this.gl.deleteProgram(this.shader);\n }\n\n private static getLightLocations(\n gl: WebGL2RenderingContext,\n shader: WebGLShader,\n field: string,\n ): LightLocations {\n return {\n position: gl.getUniformLocation(shader, `${field}.position`)!,\n intensity: gl.getUniformLocation(shader, `${field}.intensity`)!,\n };\n }\n\n private static getLightingLocations(\n gl: WebGL2RenderingContext,\n shader: WebGLShader,\n ): SceneLightingLocations {\n return {\n ambient: gl.getUniformLocation(shader, \"lighting.ambient\")!,\n cameraLightIntensity: gl.getUniformLocation(\n shader,\n \"lighting.cameraLightIntensity\",\n )!,\n light1: SDFQuad.getLightLocations(gl, shader, \"lighting.light1\"),\n fogColor: gl.getUniformLocation(shader, \"lighting.fogColor\")!,\n fogDensity: gl.getUniformLocation(shader, \"lighting.fogDensity\")!,\n };\n }\n\n private static getCameraLocations(\n gl: WebGL2RenderingContext,\n shader: WebGLShader,\n field: string,\n ): CameraLocations {\n return {\n position: gl.getUniformLocation(shader, `${field}.position`)!,\n target: gl.getUniformLocation(shader, `${field}.target`)!,\n rotationY: gl.getUniformLocation(shader, `${field}.rotationY`)!,\n zoom: gl.getUniformLocation(shader, `${field}.zoom`)!,\n roll: gl.getUniformLocation(shader, `${field}.roll`)!,\n };\n }\n\n private updateCameraUniforms(locations: CameraLocations, camera: Camera) {\n setUniformVec3(this.gl, locations.position, camera.position);\n setUniformVec3(this.gl, locations.target, camera.target);\n this.gl.uniform1f(locations.rotationY!, camera.rotationY ?? 0);\n this.gl.uniform1f(locations.zoom!, camera.zoom ?? 1);\n if (locations.roll) {\n this.gl.uniform1f(locations.roll, camera.roll ?? 0);\n }\n }\n\n private updateLightUniforms(locations: LightLocations, light: Light) {\n setUniformVec3(this.gl, locations.position, light.position);\n setUniformVec3(this.gl, locations.intensity, light.intensity);\n }\n}\n","export class TextureUniform {\n private readonly location: WebGLUniformLocation | null;\n\n constructor(\n private readonly gl: WebGL2RenderingContext,\n readonly shader: WebGLShader,\n readonly name: string,\n private readonly unit: number,\n private readonly texture: WebGLTexture,\n ) {\n gl.useProgram(shader);\n gl.getUniformLocation(shader, name);\n this.location = gl.getUniformLocation(shader, name);\n\n if (!this.location) {\n console.warn(\n `Uniform \"${name}\" not found in shader - uniform is either unused or the name is incorrect`,\n );\n } else {\n gl.uniform1i(this.location, this.unit);\n }\n }\n\n public bind(): void {\n if (this.location) {\n this.gl.activeTexture(this.gl.TEXTURE0 + this.unit);\n this.gl.bindTexture(this.gl.TEXTURE_2D, this.texture);\n }\n }\n\n public update(updater: (gl: WebGL2RenderingContext) => void) {\n if (this.location) {\n this.bind();\n updater(this.gl);\n }\n }\n}\n","import { vec2, vec3, vec4 } from \"gl-matrix\";\n\nexport type UniformTypeName =\n | \"float\"\n | \"uint\"\n | \"vec2\"\n | \"vec3\"\n | \"vec4\"\n | \"mat4\";\nexport type UniformTypeNameToType = {\n float: number;\n uint: number;\n vec2: vec2;\n vec3: vec3;\n vec4: vec4;\n mat4: Float32Array;\n}[T];\n\nexport class Uniform {\n private readonly location: WebGLUniformLocation | null;\n\n constructor(\n private readonly gl: WebGL2RenderingContext,\n readonly shader: WebGLShader,\n readonly name: string,\n private readonly uniformType: N,\n ) {\n gl.useProgram(shader);\n\n this.location = gl.getUniformLocation(shader, name);\n if (!this.location) {\n console.warn(\n `Uniform \"${name}\" not found in shader - uniform is either unused or the name is incorrect`,\n );\n }\n }\n\n public update(value: UniformTypeNameToType) {\n if (!this.location) {\n return;\n }\n\n switch (this.uniformType) {\n case \"float\":\n this.gl.uniform1f(this.location, value as number);\n break;\n case \"uint\":\n this.gl.uniform1ui(this.location, value as number);\n break;\n case \"vec2\":\n this.gl.uniform2fv(this.location, value as vec2);\n break;\n case \"vec3\":\n this.gl.uniform3fv(this.location, value as vec3);\n break;\n case \"vec4\":\n this.gl.uniform4fv(this.location, value as vec4);\n break;\n case \"mat4\":\n this.gl.uniformMatrix4fv(this.location, false, value as Float32Array);\n break;\n }\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class IntroShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/intro.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n\n this.addTextureUniform(\"splashBg\", resources.textures.splashBg);\n this.addTextureUniform(\"splashFg\", resources.textures.splashFg);\n this.addTextureUniform(\"splashMask\", resources.textures.splashMask);\n this.addTextureUniform(\"sparkle\", resources.textures.sparkle);\n }\n}\n","import { introScene } from \"./introScene\";\nimport { mainScene } from \"./mainScene\";\nimport { outroScene } from \"./outroScene\";\n\nintroScene.thenScene(mainScene).thenScene(outroScene);\n\nexport { introScene as timeline };\n","import { SceneLighting } from \"../common\";\nimport { easeOutBack, easeOutCubic } from \"../interpolation\";\nimport { PieceFn } from \"../PieceFn\";\nimport { createScene } from \"../sequencer\";\n\nconst SCENE_DEFAULT = 0;\n\nexport const defaultLighting: SceneLighting = {\n ambient: [0.2, 0.2, 0.2],\n light1: {\n position: [0, 0, 0],\n intensity: [0.5, 0.55, 0.6],\n },\n cameraLightIntensity: [0.5, 0.55, 0.6],\n fogColor: [0.1098039216, 0.1647058824, 0.3882352941],\n fogDensity: 1.5,\n};\n\nconst introFadeInOut = new PieceFn()\n .addSegment(0, 8, (t) => 1 - t)\n .addSegment(24, 32, (t) => t);\n\nconst macaroniGrow = new PieceFn()\n .addSegment(0, 14, () => 0)\n .addSegment(14, 16, (t) => easeOutCubic(t));\n\nconst macaroniRotate = new PieceFn()\n .addSegment(0, 14, () => 0)\n .addSegment(14, 16, (t) => easeOutBack(t) * Math.PI * 2);\n\nconst macaroniYOffset = new PieceFn()\n .addSegment(0, 18, (t) => Math.sin(t * 8.0 * Math.PI) * 0.05)\n .addSegment(18, 0, () => 0);\n\nconst sparkleSize = new PieceFn()\n .addSegment(0, 8, () => 0)\n .addSegment(16, 18, (t) => 1.0 - easeOutCubic(t));\n\nexport const introScene = createScene({\n name: \"Intro\",\n sceneId: SCENE_DEFAULT,\n length: 32,\n lighting: defaultLighting,\n shader: \"intro\",\n effects: {\n enable: [\"vhs\"],\n },\n variables: (ctx) => {\n return [\n macaroniGrow.evaluate(ctx.sceneNowInBeats),\n macaroniRotate.evaluate(ctx.sceneNowInBeats),\n macaroniYOffset.evaluate(ctx.sceneNowInBeats),\n sparkleSize.evaluate(ctx.sceneNowInBeats),\n ];\n },\n});\n\nintroScene.addSequence([\n {\n length: 32,\n camera: {\n position: [0, 0, -5],\n target: [0, 0, 0],\n },\n fade: (t) => [\n 0,\n 0,\n 0,\n introFadeInOut.evaluate(t.sceneContext.sceneNowInBeats),\n ],\n },\n]);\n","// Utility class for defining piecewise-defined functions,\n// and evaluating them at arbitrary points.\n\n// Both inputs and outputs can be arbitrary numbers, and the user can\n// provide an interpolation function for each piecewise segment.\n\nexport class PieceFn {\n private segments: [number, number, (t: number) => T][] = [];\n\n public addSegment(\n start: number,\n end: number,\n compute: (t: number) => T,\n ): this {\n this.segments.push([start, end, compute]);\n return this;\n }\n\n public evaluate(x: number): T {\n if (this.segments.length === 0) {\n throw new Error(\"PieceFn has no segments\");\n }\n\n let segment = this.segments[0];\n\n // Find the segment that x is in\n for (let i = 1; i < this.segments.length; i++) {\n if (x >= this.segments[i][0]) {\n segment = this.segments[i];\n }\n }\n\n // clamp x to the segment\n x = Math.max(segment[0], Math.min(segment[1], x));\n\n // Evaluate the segment\n const [start, end, interpolate] = segment;\n const t = (x - start) / (end - start);\n return interpolate(t);\n }\n}\n\n// A cumulative piece function, where the output is the sum of all segments up to the given x.\nexport class CumulativePieceFn {\n private segments: [number, number, (t: number) => number][] = [];\n\n public addSegment(\n start: number,\n end: number,\n compute: (t: number) => number,\n ): CumulativePieceFn {\n this.segments.push([start, end, compute]);\n return this;\n }\n\n public evaluate(x: number): number {\n let result = 0;\n\n for (const segment of this.segments) {\n const [start, end, interpolate] = segment;\n\n if (x > end) {\n result += interpolate(1);\n } else if (x > start) {\n const t = (x - start) / (end - start);\n result += interpolate(t);\n break;\n }\n }\n\n return result;\n }\n}\n\n// A piecewise function defined using steps, like a step sequencer.\n// 4:4 is assumed.\n// Each step is a 16th note, and can be set to 0 or 1.\n// The function is evaluated using fractional beats.\n// The step length (how long each step lasts) is also in beats and can be configured.\n// When a 1 is encountered, the function returns 1 immediately and then starts fading to 0, using the given fade function.\nexport class StepSequencer {\n constructor(private readonly steps: number[]) {\n // Each beat contains 4 steps\n // We want steps to be divisable by 4 to keep things simpler\n if (steps.length % 4 !== 0) {\n throw new Error(\"Steps must be divisible by 4\");\n }\n }\n\n public evaluate(now: number): number {\n // Convert from beats to steps\n now *= 4;\n\n const stepIndex = Math.floor(now);\n const step = this.steps[stepIndex % this.steps.length];\n\n return step;\n }\n}\n\n/**\n * A version of StepSequencer that supports attack and release times.\n * Steps are binary, but the output is a float between 0 and 1.\n */\nexport class StatefulSmoothStepSequencer {\n private currentStepIndex: number | undefined = undefined;\n private currentStepStartTime: number | undefined = undefined;\n\n constructor(\n private readonly attackTime: number,\n private readonly releaseTime: number,\n private readonly steps: number[],\n ) {\n // Each beat contains 4 steps\n // We want steps to be divisable by 4 to keep things simpler\n if (steps.length % 4 !== 0) {\n throw new Error(\"Steps must be divisible by 4\");\n }\n }\n\n public evaluate(now: number): number {\n // Convert from beats to steps\n now *= 4;\n\n // Warped, reset state\n if (this.currentStepStartTime && this.currentStepStartTime > now) {\n this.currentStepStartTime = undefined;\n this.currentStepIndex = undefined;\n }\n\n const stepIndex = Math.floor(now);\n const step = this.steps[stepIndex % this.steps.length];\n\n // If this is a new on step, reset the timer\n if (step === 1 && this.currentStepIndex !== stepIndex) {\n this.currentStepIndex = stepIndex;\n this.currentStepStartTime = now;\n }\n\n // Compute the value\n\n if (!this.currentStepStartTime) {\n return 0;\n }\n\n const attackEndTime = this.currentStepStartTime + this.attackTime;\n const releaseEndTime = attackEndTime + this.releaseTime;\n\n if (now < attackEndTime) {\n return (now - this.currentStepStartTime) / this.attackTime;\n } else if (now < releaseEndTime) {\n return 1 - (now - attackEndTime) / this.releaseTime;\n } else {\n return 0;\n }\n }\n}\n","import { vec3 } from \"gl-matrix\";\nimport { SceneLighting } from \"../common\";\nimport {\n easeInCubic,\n easeInExp,\n easeInOutCubic,\n easeInSine,\n easeOutBack,\n easeOutCubic,\n lerp,\n} from \"../interpolation\";\nimport {\n CumulativePieceFn,\n PieceFn,\n StatefulSmoothStepSequencer,\n} from \"../PieceFn\";\nimport { createCameraPath } from \"../CameraPath\";\nimport { clamp01 } from \"../math\";\nimport { createScene } from \"../sequencer\";\n\nconst SCENE_BLACK = 0;\nconst SCENE_MACARONI_FACTORY = 1;\nconst SCENE_TUBE = 2;\nconst SCENE_MACARONI_FLYBY = 3;\nconst SCENE_LASAGA_WORLD = 4;\nconst SCENE_TESSERACT = 5;\n\nexport const defaultLighting: SceneLighting = {\n ambient: [0.2, 0.2, 0.2],\n light1: {\n position: [0, 0, 0],\n intensity: [0.5, 0.55, 0.6],\n },\n cameraLightIntensity: [0.5, 0.55, 0.6],\n fogColor: [0.1098039216, 0.1647058824, 0.3882352941],\n fogDensity: 1.5,\n};\n\nconst factoryLighting: SceneLighting = {\n ...defaultLighting,\n fogDensity: 1.4,\n fogColor: [0.13, 0.1, 0.1],\n light1: {\n position: [0, -10, 0],\n intensity: [1.0, 0, 0.1],\n },\n ambient: [0.15, 0.15, 0.15],\n};\n\nconst moldArmFn = new PieceFn()\n // From 0 to 24 beats, the mold is open (3)\n .addSegment(0, 24, () => 3)\n // From 56 to 64 beats, the mold closes (3 -> 0)\n .addSegment(56, 64, (t) => 3 - easeInOutCubic(t) * 3)\n // From 68 to 76, the mold opens (0 -> 30)\n .addSegment(68, 76, (t) => easeInExp(t) * 30);\n\nconst doughPosFn = new PieceFn()\n // Dough balls approach between 0 and 48 beats\n .addSegment(0, 48, (t) => 0.5 - easeOutCubic(t) * 0.5)\n // When turned to macaroni, stay up for a moment\n .addSegment(64, 80, () => 0)\n // And then start falling down\n .addSegment(76, 96, (t) => easeInSine(Math.pow(t, 1.0005)));\n\nconst doughOrMacaroniFn = new PieceFn()\n .addSegment(0, 64, () => 0)\n // Turn to macaroni at 64 beats\n .addSegment(64, 128, () => 1);\n\nconst defaultFadeIn = new PieceFn().addSegment(0, 8, (t) => 1 - t);\n\nconst mainSceneEndFadeOut = new PieceFn().addSegment(84, 88, (t) =>\n easeInCubic(t),\n);\n\nconst sceneYRotation = new PieceFn()\n .addSegment(0, 80, () => 0)\n .addSegment(80, 88, (t) => easeInCubic(t));\n\nconst mainScene = createScene({\n name: \"Macaroni Factory\",\n shader: \"macaroniFactory\",\n sceneId: SCENE_MACARONI_FACTORY,\n length: 96,\n lighting: {\n ...factoryLighting,\n },\n\n variables: (ctx) => {\n const moldArmPos = moldArmFn.evaluate(ctx.sceneNowInBeats);\n const doughPos = doughPosFn.evaluate(ctx.sceneNowInBeats);\n const doughOrMacaroni = doughOrMacaroniFn.evaluate(ctx.sceneNowInBeats);\n const yRotation = sceneYRotation.evaluate(ctx.sceneNowInBeats);\n\n return [moldArmPos, doughOrMacaroni, doughPos, yRotation];\n },\n}).addSequence([\n {\n // Flyby from above\n length: 24,\n camera: createCameraPath([\n {\n position: [10, 0, 25],\n target: [0, 0, -30],\n },\n {\n position: [10, 3, 30],\n target: [-2, 0, -31],\n },\n {\n position: [10, 8, 0],\n target: [-2, 5, -32],\n },\n {\n position: [10, 2, 0],\n target: [-2, -5, -30],\n },\n ]),\n fade: (t) => [\n 0,\n 0,\n 0,\n defaultFadeIn.evaluate(t.sceneContext.sceneNowInBeats),\n ],\n text: [\n {\n text: \"HYVINKAEAE\",\n position: [0.9, -0.7],\n font: \"novarese\",\n align: \"right\",\n timing: {\n enter: 4,\n exit: 24,\n },\n type: \"horizontal\",\n },\n {\n text: \"2023\",\n position: [0.86, -0.8],\n timing: {\n enter: 4,\n exit: 24,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"right\",\n type: \"horizontal\",\n },\n {\n text: \"?\",\n position: {\n from: [1.1, -0.8],\n to: [0.9, -0.8],\n ease: (t) => easeOutCubic(clamp01(t * 4.0)),\n },\n timing: {\n enter: 8,\n exit: 24,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"right\",\n type: \"horizontal\",\n },\n ],\n },\n {\n assertStart: 24,\n length: 46,\n camera: createCameraPath([\n {\n position: [10, 1, 20],\n target: [-31, 0, 30],\n },\n {\n position: [10, 2, 20],\n target: [-30, 0, 30],\n },\n {\n position: [10, 2, 50],\n target: [-30, 2, 30],\n },\n {\n position: [-10, 10, 50],\n target: [0, 2, 0],\n zoom: 1.0,\n },\n {\n position: [-15, 7, 20],\n target: [0, 1, 0],\n zoom: 2.0,\n },\n {\n position: [-10, 4, 20],\n target: [0, 0.5, 0],\n zoom: 2.0,\n },\n {\n position: [0, 5, 5],\n target: [0, 0, 1],\n },\n ]),\n text: [\n {\n text: \"CHAPTER 0\",\n position: [-0.9, 0.8],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 0,\n exit: 24,\n },\n type: \"horizontal\",\n },\n {\n text: \"HOW THE MAKARON IS MADE\",\n position: [-0.9, 0.7],\n timing: {\n enter: 0,\n exit: 24,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n ],\n },\n {\n assertStart: 70,\n length: 4,\n camera: {\n position: [5, 5, 10],\n target: [0, 0, 0],\n },\n },\n {\n length: 22,\n assertStart: 74,\n camera: createCameraPath([\n {\n position: [5, 6, 10],\n target: [0, 1, 0],\n },\n {\n position: [5, 5, 10],\n target: [0, 0, 0],\n },\n {\n position: [0, 10, 2],\n target: [0, -10, 0],\n },\n {\n position: [0, -10, 0],\n target: [0, -11, 0],\n },\n {\n position: [0, -50, 0],\n target: [0, -50, 0],\n },\n {\n position: [0, -55, 0],\n target: [0, -100, 0],\n },\n ]),\n fade: (t) => [\n 0,\n 0,\n 0,\n mainSceneEndFadeOut.evaluate(t.sceneContext.sceneNowInBeats),\n ],\n text: [\n {\n text: \"CHAPTER 1\",\n position: [-0.9, 0.8],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 8,\n exit: 22,\n },\n type: \"horizontal\",\n },\n {\n text: \"THE FALL\",\n position: [-0.9, 0.7],\n timing: {\n enter: 8,\n exit: 22,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n ],\n },\n]);\n\n// prettier-ignore\nconst synthPattern = [\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 1, 0, 0, 0, 0, 0,\n 1, 0, 0, 1, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n]\n\n// prettier-ignore\nconst subPattern = [\n 1, 0, 0, 0, 0, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n]\n\nconst synthPatternFuzz = new StatefulSmoothStepSequencer(0.5, 2, synthPattern);\nconst synthPatternLight = new StatefulSmoothStepSequencer(1, 8, synthPattern);\nconst synthPatternLight2 = new StatefulSmoothStepSequencer(\n 0.5,\n 16,\n synthPattern,\n);\n\nconst subPatternFuzz = new StatefulSmoothStepSequencer(1, 8, subPattern);\nconst subPatternPump = new StatefulSmoothStepSequencer(0.5, 8, subPattern);\n\nconst tunnelExpand = new PieceFn()\n .addSegment(0, 32, () => 0)\n .addSegment(16, 32, (t) => easeInCubic(t))\n .addSegment(32, 48, (t) => 1 - easeInCubic(t));\n\nconst tunnelEndGlitchIntoNothingness = new PieceFn()\n .addSegment(0, 32, () => 0)\n .addSegment(32, 48, (t) => easeInCubic(t) * 0.1)\n .addSegment(56, 64, (t) => easeInCubic(t));\n\nconst tunnelEndInstant = new PieceFn()\n .addSegment(0, 32, () => 0)\n .addSegment(48, 64, (t) => 1.0);\n\nconst tunnelFadeToWhite = new PieceFn()\n .addSegment(0, 62, () => 0)\n .addSegment(62, 64, (t) => easeInCubic(t));\n\nconst tunnelFadeIn = new PieceFn()\n .addSegment(0, 2, (t) => 1 - easeInCubic(t))\n .addSegment(2, 32, () => 0);\n\nconst tubeScene = mainScene\n .then({\n sceneId: SCENE_TUBE,\n shader: \"macaroniFactory\",\n length: 64,\n name: \"Through the tube\",\n lighting: {\n // @ts-ignore\n ambient: (ctx): vec3 => {\n const endLight: vec3 = [0.9, 0.9, 1.0];\n return vec3.lerp(\n [0, 0, 0],\n factoryLighting.ambient,\n endLight,\n tunnelEndGlitchIntoNothingness.evaluate(ctx.sceneNowInBeats) * 0.05,\n );\n },\n cameraLightIntensity: [0.1, 0.1, 0.1],\n // @ts-ignore\n fogColor: (ctx): vec3 => {\n // White fog at the end\n const endFog: vec3 = [1.0, 1.0, 1.0];\n return vec3.lerp(\n [0, 0, 0],\n factoryLighting.fogColor,\n endFog,\n tunnelEndInstant.evaluate(ctx.sceneNowInBeats),\n );\n },\n fogDensity: (ctx): number => {\n return lerp(\n factoryLighting.fogDensity,\n 0.8,\n tunnelEndInstant.evaluate(ctx.sceneNowInBeats),\n );\n },\n light1: {\n position: [0, 0, 0],\n // @ts-ignore\n intensity: (ctx): vec3 => {\n const kickSignal = synthPatternLight.evaluate(ctx.sceneNowInBeats);\n return vec3.scale(\n [0, 0, 0],\n factoryLighting.light1.intensity,\n kickSignal,\n );\n },\n },\n },\n variables: (ctx) => {\n const kickSignal = synthPatternFuzz.evaluate(ctx.sceneNowInBeats);\n const macaroniGlitch =\n easeOutCubic(kickSignal) +\n tunnelEndGlitchIntoNothingness.evaluate(ctx.sceneNowInBeats) * 10.0;\n const tunnelExpansion = tunnelExpand.evaluate(ctx.sceneNowInBeats);\n return [macaroniGlitch, tunnelExpansion, 0, 0];\n },\n })\n .addSequence([\n {\n assertStart: 0,\n text: [\n {\n text: \"MAKARON\",\n position: {\n from: [-1.5, 0.6],\n to: [0.0, 0.0],\n },\n font: \"pasta\",\n params: {\n distortion: 1,\n waviness: 2.1,\n },\n type: \"horizontal\",\n },\n {\n text: \"CRISIS\",\n position: {\n from: [1.5, -1.0],\n to: [0.0, -0.3],\n },\n font: \"pasta\",\n params: {\n distortion: 1.0,\n waviness: 2.1,\n },\n type: \"horizontal\",\n },\n ],\n camera: {\n position: {\n from: [-1, -1, -80],\n to: [1, 1.5, 0],\n },\n target: {\n from: [0, 0, 0],\n to: [0, 0, 10],\n },\n },\n length: 32,\n fade: (ctx) => {\n const value = tunnelFadeIn.evaluate(ctx.sceneContext.sceneNowInBeats);\n return [0, 0, 0, value];\n },\n },\n {\n assertStart: 32,\n length: 16,\n camera: {\n position: {\n from: [1, 2, 5],\n to: [0, 0, 50],\n },\n target: {\n from: [1, 0, 0],\n to: [0, 1, -10],\n },\n },\n text: [\n {\n text: \"MAC & CHEESY MUSIC\",\n position: [-0.9, -0.7],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n {\n text: \"MAKARONI SIZE\",\n position: {\n from: [-0.7, -0.8],\n to: [-0.9, -0.8],\n ease: (t) => easeOutBack(clamp01(t * 4.0)),\n },\n timing: {\n enter: 4,\n exit: 16,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n ],\n },\n {\n assertStart: 48,\n length: 16,\n camera: {\n position: {\n from: [0.1, 0, -10],\n to: [0.2, 0.5, -50],\n },\n target: [-0.17, 0, 10],\n },\n backgroundColor: () => [1.0, 1.0, 1.0],\n fade: (ctx) => {\n const intensity = tunnelFadeToWhite.evaluate(\n ctx.sceneContext.sceneNowInBeats,\n );\n return [1, 1, 1, intensity];\n },\n text: [\n {\n text: \"SPAGHETTI CODE\",\n position: [0.9, 0.7],\n font: \"novarese\",\n align: \"right\",\n params: {\n color: [0.0, 0.0, 0.0],\n },\n type: \"horizontal\",\n },\n {\n text: \"MAKARONIN HAJUINEN MIES\",\n position: {\n from: [1.1, 0.6],\n to: [0.9, 0.6],\n ease: (t) => easeOutBack(clamp01(t * 4.0)),\n },\n timing: {\n enter: 4,\n exit: 16,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"right\",\n params: {\n color: [0.0, 0.0, 0.0],\n },\n type: \"horizontal\",\n },\n {\n text: \"PENNE HERMANNI\",\n position: {\n from: [1.1, 0.52],\n to: [0.9, 0.52],\n ease: (t) => easeOutBack(clamp01(t * 4.0)),\n },\n timing: {\n enter: 5,\n exit: 16,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"right\",\n params: {\n color: [0.0, 0.0, 0.0],\n },\n type: \"horizontal\",\n },\n ],\n },\n ]);\n\nconst makaronDimensionFadeInOut = new PieceFn()\n .addSegment(0, 4, (t) => 1 - t)\n .addSegment(60, 64, (t) => easeInCubic(t));\nconst compressMakarons = new PieceFn()\n .addSegment(0, 48, () => 1)\n .addSegment(48, 64, (t) => 1 - easeInCubic(t));\n\nconst makaronDimensionFogColor = new PieceFn()\n .addSegment(0, 32, () => defaultLighting.fogColor)\n .addSegment(32, 48, () => [0.34, 0, 0])\n .addSegment(48, 16, () => [0, 0.15, 0.03]);\n\nconst makaronDimensionScene = tubeScene\n .then({\n length: 64,\n lighting: {\n ...defaultLighting,\n fogColor: (t) =>\n makaronDimensionFogColor.evaluate(t.sceneNowInBeats) as [\n number,\n number,\n number,\n ],\n cameraLightIntensity: (ctx) => {\n return [1.0, 1.0, 1.0].map(\n () => 0.7 + synthPatternLight2.evaluate(ctx.sceneNowInBeats) * 2.5,\n ) as [number, number, number];\n },\n },\n name: \"Welcome to Makaron Dimension\",\n sceneId: SCENE_MACARONI_FLYBY,\n shader: \"main\",\n variables: (ctx) => {\n const subSignal = subPatternFuzz.evaluate(ctx.sceneNowInBeats);\n const compress = compressMakarons.evaluate(ctx.sceneNowInBeats);\n const leadSignal = synthPatternFuzz.evaluate(ctx.sceneNowInBeats);\n return [subSignal, compress, leadSignal, 0];\n },\n text: [\n {\n text: \"CHAPTER 2\",\n position: [-0.9, 0.8],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 8,\n exit: 22,\n },\n type: \"horizontal\",\n },\n {\n text: \"THE GATHERING\",\n position: [-0.9, 0.7],\n timing: {\n enter: 8,\n exit: 22,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n ],\n })\n .addSequence([\n {\n camera: createCameraPath([\n {\n position: [0, 1.5, -20],\n target: [0, 0, 0],\n rotationY: 0,\n zoom: 0.5,\n },\n {\n position: [20, -5.5, -30],\n target: [0, 0, 0],\n rotationY: 0,\n },\n {\n position: [20, -5, 50],\n target: [0, 0, 0],\n rotationY: 0,\n },\n {\n position: [20, -5.5, -30],\n target: [0, 0, 0],\n rotationY: 0,\n zoom: 2.0,\n },\n {\n position: [20, -30, -20],\n target: [0, 0, 0],\n rotationY: 0,\n },\n ]),\n length: 64,\n backgroundColor: () => [8 / 255, 29 / 255, 74 / 255],\n fade: (ctx) => [\n 1,\n 1,\n 1,\n makaronDimensionFadeInOut.evaluate(ctx.sceneContext.sceneNowInBeats),\n ],\n },\n ]);\n\nconst compressLasaga = new PieceFn()\n .addSegment(0, 48, () => 1)\n .addSegment(48, 64, (t) => 1 - easeInCubic(t));\n\nconst greetz =\n \"iquilezles | Jumalauta | Magnetismin Tietokonekerho | Kesaekissakvartetti | Myllyn Paras | Barilla | Rummo | Dekadence | De Cecco | Pirkka Parhaat | Elites\";\n\nconst macaroniMachineFadeInOut = new PieceFn()\n .addSegment(0, 4, (t) => 1 - t)\n .addSegment(60, 64, (t) => easeInCubic(t));\n\nconst macaroniMachine = makaronDimensionScene\n .then({\n length: 64,\n lighting: {\n ...defaultLighting,\n fogColor: [0.32, 0.03, 0.0],\n light1: {\n position: [0, 0, 0],\n intensity: [0.32, 0.03, 0],\n },\n //cameraLightIntensity: [0.85, 0.41, 0],\n cameraLightIntensity: (ctx) => {\n const lead = synthPatternLight.evaluate(ctx.sceneNowInBeats);\n const intensity = 0.1 + lead * 0.5;\n return [intensity * 1.0, intensity, intensity * 0.01];\n },\n },\n name: \"Macaroni Machine\",\n shader: \"macaroniMachine\",\n variables: (ctx) => {\n const subSignal = subPatternPump.evaluate(ctx.sceneNowInBeats);\n return [subSignal, 0, 0, 0];\n },\n text: [\n {\n text: \"MAKARONIN YSTAVAET GREETS\",\n position: [-0.95, 0.8],\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 0,\n exit: 16,\n },\n type: \"horizontal\",\n params: {\n color: [0.9, 0.79, 0.39],\n },\n },\n {\n text: greetz,\n position: {\n from: [10.0, -0.8],\n to: [-10.0, -0.8],\n },\n font: \"pasta\",\n params: {\n distortion: 1.0,\n waviness: 1.1,\n },\n type: \"horizontal\",\n },\n ],\n })\n .addSequence([\n {\n length: 64,\n camera: createCameraPath([\n {\n position: [1, 0, 0.0],\n target: [0, 0, 10],\n },\n {\n position: [1, 0, 2.0],\n target: [0, 0, 11],\n },\n {\n position: [1, 10.0, 2.5],\n target: [0, 0, 0.75],\n },\n {\n position: [1, 10.5, 2.5],\n target: [0, 0, 1],\n },\n ]),\n fade: (ctx) => {\n return [\n 1,\n 1,\n 1,\n macaroniMachineFadeInOut.evaluate(ctx.sceneContext.sceneNowInBeats),\n ];\n },\n },\n ]);\n\nconst macaroniBoxSize = new PieceFn()\n .addSegment(0, 8, (t) => easeOutBack(t))\n .addSegment(8, 30, () => 1)\n .addSegment(30, 32, (t) => 1.0 - easeOutCubic(t));\n\nconst macaroniHeartRepeat = new PieceFn()\n .addSegment(0, 48, () => 0)\n .addSegment(48, 64, (t) => easeInCubic(t));\n\n// prettier-ignore\nconst amenBreakKickPattern = [\n 1, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 1, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 1, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n]\n\nconst amenBreakKick = new StatefulSmoothStepSequencer(\n 0.5,\n 8,\n amenBreakKickPattern,\n);\n\nconst amenBreakKickFilter = new PieceFn()\n .addSegment(0, 1, (t) => t)\n .addSegment(1, 48, () => 1)\n .addSegment(47, 48, (t) => 1 - easeInCubic(t))\n .addSegment(48, 64, (t) => 0);\n\nconst macaroniBoxSceneFadeOut = new PieceFn()\n .addSegment(0, 62, () => 0)\n .addSegment(62, 64, (t) => easeInCubic(t));\n\nconst macaroniBoxScene = macaroniMachine\n .then({\n length: 64,\n lighting: {\n ...defaultLighting,\n fogDensity: 0.5,\n ambient: [0.2, 0.2, 0.2],\n cameraLightIntensity: [5, 5, 5],\n light1: {\n position: [0, 5, 0],\n intensity: [0.9, 0.9, 0.9].map((x) => x * 10) as [\n number,\n number,\n number,\n ],\n },\n },\n variables: (ctx) => {\n return [\n macaroniBoxSize.evaluate(ctx.sceneNowInBeats),\n macaroniHeartRepeat.evaluate(ctx.sceneNowInBeats),\n amenBreakKick.evaluate(ctx.sceneNowInBeats) *\n amenBreakKickFilter.evaluate(ctx.sceneNowInBeats),\n 0.0,\n ];\n },\n name: \"Macaroni Box\",\n shader: \"macaroniBox\",\n text: [\n {\n text: \"MAKARON\",\n position: [-0.85, -0.2],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 25.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1,\n color: [1.0, 0.0, 0.0],\n },\n },\n {\n text: \"BOX\",\n position: [0.85, 0],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 1.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1,\n },\n timing: {\n enter: 0,\n exit: 30,\n },\n },\n {\n text: \"DONUT\",\n position: [0.85, -0.2],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 1.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1,\n },\n timing: {\n enter: 32,\n exit: 46,\n },\n },\n {\n text: \"LOVE\",\n position: [0.85, -0.2],\n font: \"pasta\",\n type: \"vertical\",\n verticalSpacing: 1.5,\n spaceHeight: 50,\n params: {\n distortion: 1.0,\n waviness: 1.1,\n },\n timing: {\n enter: 48,\n exit: 64,\n },\n },\n ],\n })\n .addSequence([\n {\n length: 64,\n camera: createCameraPath([\n {\n position: [20, 20, -20],\n target: [0, 0.0, 0],\n },\n {\n position: [-20, 5, 10],\n target: [0, 0.0, -1],\n },\n {\n position: [5, 25, -5],\n target: [0, 0, 0.5],\n },\n {\n position: [5, 50, -5],\n target: [0, 0, -1],\n },\n {\n position: [2, 50, -5],\n target: [0, 0, 0.5],\n },\n {\n position: [5, 80, -5],\n target: [0, 0, 0],\n },\n {\n position: [100, 80, -5],\n target: [100, 0, 0],\n },\n {\n position: [100, 85, -5],\n target: [100, 1, 0],\n },\n ]),\n fade: (ctx) => {\n const value = macaroniBoxSceneFadeOut.evaluate(\n ctx.sceneContext.sceneNowInBeats,\n );\n return [1.0, 1.0, 1.0, value];\n },\n },\n ]);\n\nconst lasagaFadeInOut = new PieceFn()\n .addSegment(0, 4, (t) => 1 - easeInCubic(t))\n .addSegment(4, 60, () => 0)\n .addSegment(60, 64, (t) => easeInCubic(t));\n\nconst lasagaWorldScene = macaroniBoxScene\n .then({\n length: 64,\n lighting: {\n ...defaultLighting,\n ambient: [0.7843137255, 60 / 255, 43 / 255],\n cameraLightIntensity: [249 / 255, 134 / 255, 38 / 255].map(\n (x) => x * 2.0,\n ) as vec3,\n fogDensity: 2.8,\n light1: {\n position: [0, 10, 0],\n intensity: [0.7843137255, 60 / 255, 43 / 255].map(\n (x) => x * 8.0,\n ) as vec3,\n },\n },\n name: \"Lasaga World\",\n shader: \"lasaga\",\n variables: (ctx) => {\n const leadSignal = synthPatternFuzz.evaluate(ctx.sceneNowInBeats);\n const compress = compressLasaga.evaluate(ctx.sceneNowInBeats);\n return [leadSignal, compress, 0, 0];\n },\n text: [\n {\n text: \"CHAPTER 3\",\n position: [-0.9, 0.8],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 8,\n exit: 22,\n },\n type: \"horizontal\",\n },\n {\n text: \"FLIGHT TO FREEDOM\",\n position: [-0.9, 0.7],\n timing: {\n enter: 8,\n exit: 22,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n ],\n })\n .addSequence([\n {\n length: 64,\n fade: (ctx) => {\n const intensity = lasagaFadeInOut.evaluate(\n ctx.sceneContext.sceneNowInBeats,\n );\n return [1, 1, 1, intensity];\n },\n camera: createCameraPath([\n {\n position: [20, 20, -20],\n target: [0, 8.0, 0],\n },\n {\n position: [-20, 1, 10],\n target: [0, 5.0, 0],\n zoom: 0.5,\n },\n {\n position: [25, 12, 15],\n target: [0, 1, 0],\n },\n {\n position: [5, 24, -5],\n target: [0, 0, 0],\n zoom: 1.3,\n },\n {\n position: [5, 45, -5],\n target: [0, 2, 0],\n },\n ]),\n },\n ]);\n\nconst whiteFlashFn = new PieceFn()\n .addSegment(0, 2, (t) => 1 - easeInCubic(t))\n .addSegment(10, 12, (t) => Math.abs(Math.sin(t * Math.PI * 4)))\n .addSegment(12, 20, () => 0)\n .addSegment(22, 24, (t) => Math.abs(Math.sin(t * Math.PI * 16)))\n .addSegment(30, 32, (t) => Math.abs(Math.sin(t * Math.PI * 8)))\n .addSegment(32, 50, () => 0);\n\nconst beatFlash = new StatefulSmoothStepSequencer(\n 0.5,\n 8,\n // prettier-ignore\n [\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n 1, 0, 0, 0, 0, 0, 0, 0,\n ],\n);\n\nconst tesseractBendFn = new PieceFn()\n .addSegment(0, 32, () => 0)\n .addSegment(32, 64, (t) => 0.1 + easeOutCubic(easeInSine(t)) * 0.1);\nconst tesseractBendFn2 = new PieceFn()\n .addSegment(0, 32, () => 0)\n .addSegment(32, 48, (t) => t * 1.0)\n .addSegment(48, 56, (t) => 3 + t)\n .addSegment(56, 64, (t) => 4 + easeOutCubic(t) * 3.0);\n\nconst tesseractRingDistance = new PieceFn()\n // From 8 to 4\n .addSegment(0, 4, (t) => 16.0 - easeInCubic(t) * 12.0)\n // From 4 to 2\n .addSegment(4, 5, (t) => 4.0 - easeOutCubic(t) * 2.0)\n // From 2 to 3\n .addSegment(5, 8, (t) => 2.0 + easeInOutCubic(t))\n // From 3 to 2\n .addSegment(8, 10, (t) => 3.0 - easeOutCubic(t))\n // And back to 4\n .addSegment(10, 12, (t) => 2.0 + easeInCubic(t) * 2.0)\n // 4 to 2\n .addSegment(24, 32, (t) => 4.0 - easeOutCubic(t) * 2.0);\n\nconst tesseractRingVerticalDistance = new PieceFn()\n .addSegment(0, 10, () => 0.0)\n .addSegment(10, 12, (t) => easeInCubic(t) * 2.0)\n .addSegment(32, 64, (t) => 2 + Math.sin(t * 3.0));\n\nconst tesseractRingAngle = new CumulativePieceFn()\n .addSegment(0, 4, (t) => t * Math.PI * 4.0)\n // And slow down even more (0.25 to 0.15)\n .addSegment(4, 8, (t) => t * Math.PI * 2.0)\n .addSegment(8, 12, (t) => t * Math.PI * 1.5)\n .addSegment(12, 16, (t) => t * Math.PI * 1.1)\n .addSegment(16, 24, (t) => easeInCubic(t) * Math.PI * 0.9)\n .addSegment(24, 32, (t) => easeInCubic(t) * Math.PI * 0.5);\n\nconst tesseractFadeOut = new PieceFn()\n .addSegment(0, 60, () => 0)\n .addSegment(60, 64, (t) => easeInCubic(t));\n\nconst pastaTesseractScene = lasagaWorldScene\n .then({\n length: 64,\n lighting: {\n ...defaultLighting,\n fogDensity: 0.5,\n cameraLightIntensity: (ctx) => {\n const beatSignal = beatFlash.evaluate(ctx.sceneNowInBeats);\n return vec3.add(\n [0, 0, 0],\n [0.1, 0.1, 0.1],\n vec3.scale([0, 0, 0], [0.4, 0.4, 0.6], beatSignal * 3.0),\n ) as any;\n },\n ambient: [0.6, 0.4, 0.45],\n light1: {\n position: [0, 0, 0],\n // @ts-ignore\n intensity: (ctx) => {\n const beatSignal = beatFlash.evaluate(ctx.sceneNowInBeats);\n return vec3.scale([0, 0, 0], [1, 0, 0.3], beatSignal * 1.0);\n },\n },\n // @ts-ignore\n fogColor: (ctx) => {\n const startBg: vec3 = [8 / 255, 29 / 255, 74 / 255];\n const endBg: vec3 = [0.1, 0.1, 0.2];\n return vec3.lerp([0, 0, 0], startBg, endBg, ctx.sceneProgress);\n },\n },\n name: \"Pasta Tesseract\",\n sceneId: SCENE_TESSERACT,\n shader: \"tesseract\",\n variables: (ctx) => {\n return [\n tesseractBendFn.evaluate(ctx.sceneNowInBeats),\n tesseractBendFn2.evaluate(ctx.sceneNowInBeats),\n tesseractBendFn.evaluate(ctx.sceneNowInBeats),\n 0,\n ];\n },\n variables2: (ctx) => {\n return [\n tesseractRingDistance.evaluate(ctx.sceneNowInBeats),\n tesseractRingVerticalDistance.evaluate(ctx.sceneNowInBeats),\n tesseractRingAngle.evaluate(ctx.sceneNowInBeats),\n 0,\n ];\n },\n effects: {\n enable: [\"vhs\"],\n },\n text: [\n {\n text: \"CHAPTER 4\",\n position: [-0.9, 0.8],\n font: \"novarese\",\n align: \"left\",\n timing: {\n enter: 2,\n exit: 16,\n },\n type: \"horizontal\",\n },\n {\n text: \"ABSOLUTE POWER\\nCORRUPTS THE MAKARONS\\nAND THEY DESTROY\\nTHE HYVINKAEAE MAKARON FACILITY\",\n position: [-0.9, 0.7],\n timing: {\n enter: 2,\n exit: 16,\n },\n scale: [0.001, 0.001],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n },\n ],\n })\n .addSequence([\n {\n length: 16,\n camera: createCameraPath([\n {\n position: [0, 10, 0],\n target: [0, 5, 0],\n rotationY: 0,\n zoom: 1.0,\n },\n {\n position: [-5, 15, 10],\n target: [0, 1, 0],\n rotationY: 0,\n zoom: 0.5,\n },\n {\n position: [10, -20, 15],\n target: [0, 1, 0],\n rotationY: 0,\n zoom: 1,\n },\n {\n position: [30, -30, 18],\n target: [0, 5, 0],\n rotationY: 0,\n zoom: 1.0,\n },\n ]),\n fade: (ctx) => [\n 1,\n 1,\n 1,\n whiteFlashFn.evaluate(ctx.sceneContext.sceneNowInBeats),\n ],\n },\n {\n length: 4,\n camera: {\n position: {\n from: [10, -20, 15],\n to: [0, 10, 0],\n },\n target: {\n from: [0, 0, 0],\n to: [0, 5, 0],\n },\n ease: easeOutCubic,\n },\n },\n {\n assertStart: 20,\n length: 12,\n camera: createCameraPath([\n {\n position: [0, 11, 0],\n target: [0, 6, 0],\n rotationY: 0,\n zoom: 1.0,\n },\n {\n position: [0, 10, 0],\n target: [0, 5, 0],\n rotationY: 0,\n zoom: 0.5,\n roll: 0,\n },\n {\n position: [0, 40, 0],\n target: [0, 100, 0],\n rotationY: 0,\n zoom: 1,\n roll: -10.0,\n },\n {\n position: [0.1, -30, 0],\n target: [0, 5, 0],\n rotationY: 0,\n zoom: 1.0,\n },\n ]),\n fade: (ctx) => [\n 1,\n 1,\n 1,\n whiteFlashFn.evaluate(ctx.sceneContext.sceneNowInBeats),\n ],\n },\n {\n assertStart: 32,\n length: 32,\n camera: createCameraPath([\n {\n position: [5, 0, 5],\n target: [0, 0, 0],\n zoom: 2.0,\n roll: Math.PI * 0.25,\n },\n {\n position: [10, 0, 10],\n target: [0, 1, 0],\n zoom: 0.75,\n roll: Math.PI * 0.5,\n },\n {\n position: [20, -10, 10],\n target: [0, 0, 0],\n zoom: 3.0,\n roll: Math.PI * 2.0,\n },\n {\n position: [10, -20, 11],\n target: [0, 1, 0],\n zoom: 3.75,\n roll: Math.PI * 0.25,\n },\n ]),\n fade: (ctx) => {\n return [\n 1,\n 1,\n 1,\n tesseractFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats),\n ];\n },\n },\n ]);\n\nexport { pastaTesseractScene as mainScene };\n","import { vec3 } from \"gl-matrix\";\nimport { Camera } from \"./common\";\nimport { catmullRomCurve } from \"./catmullRom\";\nimport { containsNans } from \"./math\";\n\ninterface Keyframe {\n camera: Camera;\n}\n\n/**\n * A stateless camera path with multiple keyframes.\n * Uses catmull-rom interpolation.\n * Input time is assumed to be to in range [0, duration].\n * Internally keyframes are normalized to [0, 1].\n * Interpolates between up to 3 keyframes.\n */\nexport interface CameraPath {\n keyframes: Keyframe[];\n evaluate: (time: number) => Camera;\n}\n\nfunction catmullRom(t: number, p0: number, p1: number, p2: number, p3: number) {\n const t2 = t * t;\n const a0 = -0.5 * p0 + 1.5 * p1 - 1.5 * p2 + 0.5 * p3;\n const a1 = p0 - 2.5 * p1 + 2 * p2 - 0.5 * p3;\n const a2 = -0.5 * p0 + 0.5 * p2;\n const a3 = p1;\n\n return a0 * t * t2 + a1 * t2 + a2 * t + a3;\n}\n\nfunction catmullRomVec3(\n t: number,\n p0: vec3,\n p1: vec3,\n p2: vec3,\n p3: vec3,\n): vec3 {\n if (vec3.equals(p1, p2)) {\n return p1;\n }\n return catmullRomCurve(p0, p1, p2, p3)(t);\n}\n\nfunction interpolatePoints(\n keyframes: Keyframe[],\n // Time is normalized to [0, 1]\n normalizedTime: number,\n): Camera {\n // Since we are using centripetal catmull-rom, we can't just use the length of the keyframes\n const totalSegments = keyframes.length - 3;\n\n const fraction = normalizedTime * totalSegments;\n const currentFrameIndex = Math.trunc(fraction) + 1;\n const t = fraction - Math.trunc(fraction);\n\n const nextFrameIndex = currentFrameIndex + 1;\n const previousFrameIndex = currentFrameIndex - 1;\n const nextFrame2Index = currentFrameIndex + 2;\n\n const previousFrame = keyframes[previousFrameIndex];\n const currentFrame = keyframes[currentFrameIndex];\n const nextFrame = keyframes[nextFrameIndex];\n const nextFrame2 = keyframes[nextFrame2Index];\n\n const position = catmullRomVec3(\n t,\n previousFrame.camera.position,\n currentFrame.camera.position,\n nextFrame.camera.position,\n nextFrame2.camera.position,\n );\n\n const target = catmullRomVec3(\n t,\n previousFrame.camera.target,\n currentFrame.camera.target,\n nextFrame.camera.target,\n nextFrame2.camera.target,\n );\n\n const rotationY = catmullRom(\n t,\n previousFrame.camera.rotationY ?? 0,\n currentFrame.camera.rotationY ?? 0,\n nextFrame.camera.rotationY ?? 0,\n nextFrame2.camera.rotationY ?? 0,\n );\n\n const zoom = catmullRom(\n t,\n previousFrame.camera.zoom ?? 1,\n currentFrame.camera.zoom ?? 1,\n nextFrame.camera.zoom ?? 1,\n nextFrame2.camera.zoom ?? 1,\n );\n\n const roll = catmullRom(\n t,\n previousFrame.camera.roll ?? 0,\n currentFrame.camera.roll ?? 0,\n nextFrame.camera.roll ?? 0,\n nextFrame2.camera.roll ?? 0,\n );\n\n return {\n position,\n target,\n rotationY,\n zoom,\n roll,\n };\n}\n\nexport function createCameraPath(frames: Camera[]): CameraPath {\n const keyframes: Keyframe[] = frames.map((camera) => ({\n camera,\n }));\n\n if (keyframes.length < 4) {\n throw new Error(\"At least 4 keyframes are required\");\n }\n\n function evaluate(normalizedTime: number): Camera {\n const newCamera = interpolatePoints(keyframes, normalizedTime);\n if (containsNans(newCamera.position)) {\n console.error(\"Nans in camera position\", newCamera);\n }\n if (containsNans(newCamera.target)) {\n console.error(\"Nans in camera target\", newCamera);\n }\n return newCamera;\n }\n\n return {\n keyframes,\n evaluate,\n };\n}\n","// Based on https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline#Code_example_in_Unity_C#\n\nimport { vec3 } from \"gl-matrix\";\nimport { lerp } from \"./interpolation\";\n\nfunction knotInterval(p0: vec3, p1: vec3, alpha: number = 0.5) {\n const squaredMagnitude = vec3.squaredDistance(p0, p1);\n return Math.pow(squaredMagnitude, 0.5 * alpha);\n}\n\nfunction remap(a: number, b: number, c: vec3, d: vec3, u: number): vec3 {\n const thing1 = (u - a) / (b - a);\n\n return [\n lerp(c[0], d[0], thing1),\n lerp(c[1], d[1], thing1),\n lerp(c[2], d[2], thing1),\n ];\n}\n\nexport function catmullRomCurve(\n p0: vec3,\n p1: vec3,\n p2: vec3,\n p3: vec3,\n alpha: number = 0.5,\n): (t: number) => vec3 {\n // calculate knots\n const k0 = 0;\n const k1 = knotInterval(p0, p1, alpha) + k0;\n const k2 = knotInterval(p1, p2, alpha) + k1;\n const k3 = knotInterval(p2, p3, alpha) + k2;\n\n // evaluate point at t\n return (t: number) => {\n const u = lerp(k1, k2, t);\n const A1 = remap(k0, k1, p0, p1, u);\n const A2 = remap(k1, k2, p1, p2, u);\n const A3 = remap(k2, k3, p2, p3, u);\n const B1 = remap(k0, k2, A1, A2, u);\n const B2 = remap(k1, k3, A2, A3, u);\n\n return remap(k1, k2, B1, B2, u);\n };\n}\n","import { SceneLighting } from \"../common\";\nimport { easeInCubic } from \"../interpolation\";\nimport { PieceFn } from \"../PieceFn\";\nimport { createScene } from \"../sequencer\";\n\nconst SCENE_OUTRO = 6;\n\nexport const defaultLighting: SceneLighting = {\n ambient: [0.2, 0.2, 0.2],\n light1: {\n position: [0, 0, 0],\n intensity: [0.5, 0.55, 0.6],\n },\n cameraLightIntensity: [0.5, 0.55, 0.6],\n fogColor: [0.1098039216, 0.1647058824, 0.3882352941],\n fogDensity: 1.5,\n};\n\nconst endFadeOut = new PieceFn()\n .addSegment(0, 32, () => 0)\n .addSegment(32, 35, (t) => easeInCubic(t));\n\nexport const outroScene = createScene({\n sceneId: SCENE_OUTRO,\n shader: \"outro\",\n length: 64,\n name: \"The End (?)\",\n}).addSequence([\n {\n camera: {\n position: [0, 0, -5],\n target: [0, 0, 0],\n },\n length: 4,\n },\n {\n camera: {\n position: [0, 0, -7],\n target: [0, 0, 0],\n },\n length: 4,\n },\n {\n camera: {\n position: [0, 0, -15],\n target: [0, 0, 0],\n },\n length: 4,\n },\n {\n camera: {\n position: [0, 0, -5],\n target: [0, 0, 0],\n },\n length: 4,\n },\n {\n camera: {\n position: [0, 0, -2],\n target: [0, 0, 0],\n },\n assertStart: 16,\n length: 22,\n fade: (ctx) => [\n 0,\n 0,\n 0,\n endFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats),\n ],\n },\n {\n camera: {\n position: [0, 0, -2],\n target: [0, 0, 0],\n },\n length: 42,\n fade: (ctx) => [\n 0,\n 0,\n 0,\n endFadeOut.evaluate(ctx.sceneContext.sceneNowInBeats),\n ],\n text: [\n {\n text: \"This has been a\",\n position: [0.0, 0.8],\n scale: [0.0015, 0.0015],\n font: \"novarese\",\n align: \"center\",\n type: \"horizontal\",\n },\n {\n text: \"Makaronin\\nYstavaet\",\n position: [-0.9, 0.5],\n scale: [0.003, 0.003],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n params: {\n distortion: 1.1,\n waviness: 0.2,\n color: [0.6, 0.0, 0.0],\n },\n },\n {\n text: \"and\",\n position: [0.0, 0.0],\n scale: [0.0015, 0.0015],\n font: \"novarese\",\n align: \"center\",\n type: \"horizontal\",\n },\n {\n text: \"Juusto\\nMakaroni\\nLaatikko\",\n position: [-0.9, -0.2],\n scale: [0.003, 0.003],\n font: \"novarese\",\n align: \"left\",\n type: \"horizontal\",\n params: {\n distortion: 1.1,\n waviness: 0.2,\n color: [0.0, 0.6, 0.0],\n },\n },\n {\n text: \"production\",\n position: [0.0, -0.9],\n scale: [0.0015, 0.0015],\n font: \"novarese\",\n align: \"center\",\n type: \"horizontal\",\n },\n ],\n },\n]);\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class MacaroniFactoryShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/macaroniFactory.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n\n this.addTextureUniform(\"textureMetal\", resources.textures.metal);\n this.addTextureUniform(\n \"textureMetalNormal\",\n resources.textures.metalNormal,\n );\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class OutroShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/outro.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class MacaroniMachineShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/machine.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class MacaroniBoxShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/macaroniBox.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class TesseractShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/tesseract.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n }\n}\n","import { LoadedState } from \"../../loader\";\nimport { SDFQuad } from \"./SDFQuad\";\nimport * as fs from \"fs\";\n\nexport class LasagaShader extends SDFQuad {\n constructor(gl: WebGL2RenderingContext, resources: LoadedState) {\n const sdfVertexShader = fs.readFileSync(__dirname + \"/main.vert\", \"utf8\");\n const sdfFragmentShader = fs.readFileSync(\n __dirname + \"/lasaga.frag\",\n \"utf8\",\n );\n\n super(gl, resources, sdfVertexShader, sdfFragmentShader);\n\n this.addTextureUniform(\"sky\", resources.textures.sky);\n }\n}\n","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"hCbib\")).toString();"],"names":["$b4e14b6b8da86996$var$debug","graphics","assets","audio","$parcel$interopDefault","a","__esModule","default","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","vec","out","tmpvec3","xUnitVec3","yUnitVec3","temp1","temp2","$parcel$global","globalThis","self","window","global","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$3a5376079691bbe6$exports","JSON","parse","$7f7c1492fb383103$exports","$925c761d7b98a021$exports","$084c7c3945f93d44$exports","$953cdf9ae7e8a925$var$loadTexture","gl","url","settings","image","Image","src","decode","texture","createTexture","bindTexture","TEXTURE_2D","pixelStorei","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","NONE","noRepeat","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","UNPACK_FLIP_Y_WEBGL","texImage2D","RGBA","UNSIGNED_BYTE","generateMipmap","$953cdf9ae7e8a925$var$loadFont","description","textureUrl","scale","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","$953cdf9ae7e8a925$var$fontLoader","name","fontName","state","font","fonts","$953cdf9ae7e8a925$var$textureLoader","textureName","glContext","href","textures","$953cdf9ae7e8a925$var$noiseLoader","noise","$953cdf9ae7e8a925$export$dcd6c8b81927dbfa","b","c","d","data","Uint8Array","size","rng","t","r","i","Math","floor","REPEAT","LINEAR_MIPMAP_LINEAR","$cc1f95a802d3b386$exports","URL","resolve","toString","$60bad8092d68cd36$exports","$24d45412a1636771$exports","$c36d05898c99536d$exports","$d666cede4ea3b4a7$exports","$6f13d451c3b9a378$exports","$9de7d24f46818127$exports","$953cdf9ae7e8a925$var$assets","$953cdf9ae7e8a925$export$83691f04acd84db4","length","$953cdf9ae7e8a925$export$3d05a4bb6d58dbc6","onProgress","loadTotal","advanceProgress","x","promises","map","loader","then","Promise","all","$4d5479e188493b90$export$83674196993caf59","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","log","getProgramInfoLog","vertexShaderLog","getShaderInfoLog","fragmentShaderLog","console","warn","$4d5479e188493b90$export$ce4d37cf4027f102","positionBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","$4d5479e188493b90$export$452eee33cf760b85","location","value","uniform3f","$78f6e02f1afa4252$export$146b5478cb626851","constructor","resolutionLocation","textureLocation","transformLocation","nowLocation","opacityLocation","wavinessLocation","distortionLocation","fontTypeLocation","textColorLocation","create","textSdfProgram","getUniformLocation","textResolutionLocation","textTransformLocation","textNowLocation","use","now","resolution","transform","opacity","waviness","distortion","color","useProgram","activeTexture","TEXTURE0","uniform1i","uniform2fv","uniformMatrix4fv","uniform1f","uniform1ui","uniform3fv","destroy","deleteProgram","$4ce98914b6676340$exports","$4ce98914b6676340$export$185802fd694ee1f5","$4ce98914b6676340$export$9cd59f9826255e47","$4ce98914b6676340$export$a82be99ed2a44a7d","$4ce98914b6676340$export$784d13d8ee351f07","$4ce98914b6676340$export$adaa4cf7ef1b65be","$4ce98914b6676340$export$e16d8520af44a096","$4ce98914b6676340$export$4e2d2ead65e5f7e3","$4ce98914b6676340$export$2060d2db72cce88f","$4ce98914b6676340$export$cd007d971a5a2143","$4ce98914b6676340$export$803ce6b71a0a94b2","$4ce98914b6676340$export$a3fe094919f356fd","$4ce98914b6676340$export$96ec731ed4dcb222","$4ce98914b6676340$export$8960430cfd85939f","$4ce98914b6676340$export$2077e0241d6afd3c","$4ce98914b6676340$export$dcdf75081b88279d","$4ce98914b6676340$export$19cedf1da84ba854","$4ce98914b6676340$export$9f17032d917177de","$4ce98914b6676340$export$88e6ebb4fe54f538","$4ce98914b6676340$export$f24224f1c91d8156","$4ce98914b6676340$export$ab44e1323ffc8376","$4ce98914b6676340$export$aef51622e549b8b0","$4ce98914b6676340$export$70ae2c07e401031b","$4ce98914b6676340$export$a3295358bff77e","$4ce98914b6676340$export$94132a0e348806d4","$4ce98914b6676340$export$bb646b20bb93d339","$4ce98914b6676340$export$3a89f8d6f6bf6c9f","$4ce98914b6676340$export$4385e60b38654f68","$4ce98914b6676340$export$b732428d73874bfc","$4ce98914b6676340$export$3e55bc4b3707dfd3","$4ce98914b6676340$export$f0bfa0a0024626ee","$4ce98914b6676340$export$5ffbd13800309d59","$4ce98914b6676340$export$bb628a54ab399bc9","$4ce98914b6676340$export$944b09d2ad10b378","$4ce98914b6676340$export$7f9972325ebfd559","$4ce98914b6676340$export$42d51816ce590c93","$4ce98914b6676340$export$f2599a5cf1109d8","$4ce98914b6676340$export$e9bab7fafb253603","$4ce98914b6676340$export$fc1400facf92c78","$4ce98914b6676340$export$f93b5905241a7cca","$4ce98914b6676340$export$6e3a27864ab166fe","$4ce98914b6676340$export$159d9494db57879b","$4ce98914b6676340$export$6c4a311cc157c764","$4ce98914b6676340$export$2422cd6c492a8b3a","$4ce98914b6676340$export$99d8dd3f32a3435","$4ce98914b6676340$export$4b80e395e36b5a56","$78ae820aa9ececfa$export$b67359430d3b1b2","Array","$78ae820aa9ececfa$export$5ada478c8a628231","random","y","ceil","min","max","round","hypot","len","sqrt","z","ax","ay","PI","cos","sin","m","rad","p0","p1","sinC","cosC","x1","y1","x2","y2","mag","acos","a0","a1","b0","b1","abs","$78ae820aa9ececfa$export$fd293b15f47e270","arguments","stride","offset","count","fn","arg","l","$ab7f6dc0910e1ef7$exports","$ab7f6dc0910e1ef7$export$185802fd694ee1f5","$ab7f6dc0910e1ef7$export$9cd59f9826255e47","$ab7f6dc0910e1ef7$export$f24224f1c91d8156","$ab7f6dc0910e1ef7$export$a82be99ed2a44a7d","$ab7f6dc0910e1ef7$export$784d13d8ee351f07","$ab7f6dc0910e1ef7$export$adaa4cf7ef1b65be","$ab7f6dc0910e1ef7$export$e16d8520af44a096","$ab7f6dc0910e1ef7$export$4e2d2ead65e5f7e3","$ab7f6dc0910e1ef7$export$2060d2db72cce88f","$ab7f6dc0910e1ef7$export$cd007d971a5a2143","$ab7f6dc0910e1ef7$export$803ce6b71a0a94b2","$ab7f6dc0910e1ef7$export$a3fe094919f356fd","$ab7f6dc0910e1ef7$export$96ec731ed4dcb222","$ab7f6dc0910e1ef7$export$8960430cfd85939f","$ab7f6dc0910e1ef7$export$2077e0241d6afd3c","$ab7f6dc0910e1ef7$export$dcdf75081b88279d","$ab7f6dc0910e1ef7$export$19cedf1da84ba854","$ab7f6dc0910e1ef7$export$9f17032d917177de","$ab7f6dc0910e1ef7$export$88e6ebb4fe54f538","$ab7f6dc0910e1ef7$export$ab44e1323ffc8376","$ab7f6dc0910e1ef7$export$aef51622e549b8b0","$ab7f6dc0910e1ef7$export$70ae2c07e401031b","$ab7f6dc0910e1ef7$export$a3295358bff77e","$ab7f6dc0910e1ef7$export$94132a0e348806d4","$ab7f6dc0910e1ef7$export$bb646b20bb93d339","az","bx","by","bz","$ab7f6dc0910e1ef7$export$3a89f8d6f6bf6c9f","$ab7f6dc0910e1ef7$export$ae8865616f30561c","factorTimes2","factor1","factor2","factor3","factor4","$ab7f6dc0910e1ef7$export$b9c5f84610baddaf","inverseFactor","inverseFactorTimesTwo","$ab7f6dc0910e1ef7$export$4385e60b38654f68","zScale","$ab7f6dc0910e1ef7$export$5ffbd13800309d59","w","$ab7f6dc0910e1ef7$export$f0bfa0a0024626ee","$ab7f6dc0910e1ef7$export$c32adef9e939ce85","q","qx","qy","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","$ab7f6dc0910e1ef7$export$a59c8716592e09af","p","$ab7f6dc0910e1ef7$export$cf71e4d4ca4d1cfd","$ab7f6dc0910e1ef7$export$ea6eae3365de5b9c","$ab7f6dc0910e1ef7$export$944b09d2ad10b378","mag1","$ab7f6dc0910e1ef7$export$7f9972325ebfd559","$ab7f6dc0910e1ef7$export$42d51816ce590c93","$ab7f6dc0910e1ef7$export$f2599a5cf1109d8","$ab7f6dc0910e1ef7$export$e9bab7fafb253603","a2","b2","$ab7f6dc0910e1ef7$export$f93b5905241a7cca","$ab7f6dc0910e1ef7$export$6e3a27864ab166fe","$ab7f6dc0910e1ef7$export$159d9494db57879b","$ab7f6dc0910e1ef7$export$6c4a311cc157c764","$ab7f6dc0910e1ef7$export$2422cd6c492a8b3a","$ab7f6dc0910e1ef7$export$fc1400facf92c78","$ab7f6dc0910e1ef7$export$99d8dd3f32a3435","$ab7f6dc0910e1ef7$export$4b80e395e36b5a56","$73a175dd57760e2d$export$24656b269d8df7d6","f","$73a175dd57760e2d$export$5da70c9577229d30","$73a175dd57760e2d$export$1157fb72e7fbceb5","$73a175dd57760e2d$export$45db2fc2f15997e7","$73a175dd57760e2d$export$887f6c7954385bcf","$73a175dd57760e2d$export$3daa4a78f444687d","c3","c1","pow","$26675c4f95835ef1$exports","$26675c4f95835ef1$export$185802fd694ee1f5","$26675c4f95835ef1$export$9cd59f9826255e47","$26675c4f95835ef1$export$784d13d8ee351f07","$26675c4f95835ef1$export$a82be99ed2a44a7d","m00","m01","m02","m03","m10","m11","m12","m13","m20","m21","m22","m23","m30","m31","m32","m33","$26675c4f95835ef1$export$adaa4cf7ef1b65be","$26675c4f95835ef1$export$f0954fd7d5368655","$26675c4f95835ef1$export$9cb09a71b7d66923","a01","a02","a03","a12","a13","a23","$26675c4f95835ef1$export$6897c284b6f9f4dc","a00","a10","a11","a20","a21","a22","a30","a31","a32","a33","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","det","$26675c4f95835ef1$export$33f3c024b4ae00a1","$26675c4f95835ef1$export$a04698f914c55ed9","$26675c4f95835ef1$export$2060d2db72cce88f","b3","$26675c4f95835ef1$export$d73ee8ef04f5226a","$26675c4f95835ef1$export$dcdf75081b88279d","$26675c4f95835ef1$export$bb628a54ab399bc9","axis","b12","b20","b21","b22","$26675c4f95835ef1$export$a59c8716592e09af","$26675c4f95835ef1$export$cf71e4d4ca4d1cfd","$26675c4f95835ef1$export$ea6eae3365de5b9c","$26675c4f95835ef1$export$bc9e79e74e9fddf6","$26675c4f95835ef1$export$832ca188ffb1955d","$26675c4f95835ef1$export$926fc125ff3c666c","$26675c4f95835ef1$export$dd47cc2f828c32ef","$26675c4f95835ef1$export$7dc997d67d2b7f33","$26675c4f95835ef1$export$ad5ddaedc8f405df","$26675c4f95835ef1$export$9545ac307f2a256b","z2","xx","xy","xz","yy","yz","zz","wx","wy","wz","$26675c4f95835ef1$export$ff497f2be31cc6a","translation","bw","aw","magnitude","$26675c4f95835ef1$export$202e99f82f7f0395","mat","$26675c4f95835ef1$export$71dc54d92bd04b57","$26675c4f95835ef1$export$df3937d3b537df0a","scaling","is1","is2","is3","sm11","sm12","sm13","sm21","sm22","sm23","sm31","sm32","sm33","trace","S","$26675c4f95835ef1$export$ddf9c55c9f2be172","sx","sy","sz","$26675c4f95835ef1$export$1def1f860edc4b1f","o","ox","oy","oz","out0","out1","out2","out4","out5","out6","out8","out9","out10","$26675c4f95835ef1$export$2ff2bbe382249af7","yx","zx","zy","$26675c4f95835ef1$export$89b5708c387cac6c","left","right","bottom","top","near","far","rl","tb","nf","$26675c4f95835ef1$export$4cf19729ec9a96b8","fovy","aspect","tan","Infinity","$26675c4f95835ef1$export$541149539f3a4684","$26675c4f95835ef1$export$294bba99a6af0c0c","$26675c4f95835ef1$export$58ae211c788e338f","$26675c4f95835ef1$export$c5f65ef3eb668f27","$26675c4f95835ef1$export$4f2167e613cfc87b","$26675c4f95835ef1$export$b1d31ea7b4d854e","$26675c4f95835ef1$export$d924e14fd6d9aa66","$26675c4f95835ef1$export$aa67782f4dc9e52c","$26675c4f95835ef1$export$42d51816ce590c93","$26675c4f95835ef1$export$326827e8268e9cdb","$26675c4f95835ef1$export$e16d8520af44a096","$26675c4f95835ef1$export$4e2d2ead65e5f7e3","$26675c4f95835ef1$export$c697bed75648cdb7","$26675c4f95835ef1$export$553579f63bdd7137","$26675c4f95835ef1$export$f2599a5cf1109d8","$26675c4f95835ef1$export$e9bab7fafb253603","$26675c4f95835ef1$export$6e3a27864ab166fe","$26675c4f95835ef1$export$f93b5905241a7cca","fov","upTan","upDegrees","downTan","downDegrees","leftTan","leftDegrees","rightTan","rightDegrees","xScale","yScale","lr","bt","eye","center","up","x0","y0","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","target","a3","a4","a5","a6","a7","a8","a9","a14","a15","b4","b5","b6","b7","b8","b9","b13","b14","b15","$e92e4eb8d35aaf31$exports","$e92e4eb8d35aaf31$export$185802fd694ee1f5","$e92e4eb8d35aaf31$export$f0954fd7d5368655","$e92e4eb8d35aaf31$export$4286ddefc8f49512","$e92e4eb8d35aaf31$export$3f70be5e7d7dc51","out_axis","$e92e4eb8d35aaf31$export$b363da9ded343252","dotproduct","$e92e4eb8d35aaf31$export$94132a0e348806d4","$e92e4eb8d35aaf31$export$2060d2db72cce88f","$e92e4eb8d35aaf31$export$a59c8716592e09af","$e92e4eb8d35aaf31$export$cf71e4d4ca4d1cfd","$e92e4eb8d35aaf31$export$ea6eae3365de5b9c","$e92e4eb8d35aaf31$export$fb72b72e8d764d4e","$e92e4eb8d35aaf31$export$b310ec824aaee37f","et","exp","$e92e4eb8d35aaf31$export$876cb1b29620556f","atan2","$e92e4eb8d35aaf31$export$9c297f60e22e3389","$e92e4eb8d35aaf31$export$dcdf75081b88279d","$e92e4eb8d35aaf31$export$1544d9bc2995de08","omega","cosom","sinom","scale0","scale1","$e92e4eb8d35aaf31$export$4385e60b38654f68","u1","u2","u3","sqrt1MinusU1","sqrtU1","$e92e4eb8d35aaf31$export$6897c284b6f9f4dc","dot","invDot","$e92e4eb8d35aaf31$export$7679f47e72c62560","$e92e4eb8d35aaf31$export$272a1eb8e5a4b55b","fRoot","fTrace","j","k","$e92e4eb8d35aaf31$export$7a404a587ea85af","halfToRad","cx","cy","cz","$e92e4eb8d35aaf31$export$42d51816ce590c93","$e92e4eb8d35aaf31$export$9cd59f9826255e47","$e92e4eb8d35aaf31$export$a82be99ed2a44a7d","$e92e4eb8d35aaf31$export$784d13d8ee351f07","$e92e4eb8d35aaf31$export$adaa4cf7ef1b65be","$e92e4eb8d35aaf31$export$e16d8520af44a096","$e92e4eb8d35aaf31$export$6e3a27864ab166fe","$e92e4eb8d35aaf31$export$3a89f8d6f6bf6c9f","$e92e4eb8d35aaf31$export$f24224f1c91d8156","$e92e4eb8d35aaf31$export$fc1400facf92c78","$e92e4eb8d35aaf31$export$ab44e1323ffc8376","$e92e4eb8d35aaf31$export$99d8dd3f32a3435","$e92e4eb8d35aaf31$export$a3295358bff77e","$e92e4eb8d35aaf31$export$f2599a5cf1109d8","$e92e4eb8d35aaf31$export$e9bab7fafb253603","$e92e4eb8d35aaf31$export$72d66f5842c00904","$e92e4eb8d35aaf31$export$699b0866ca50f6cb","$e92e4eb8d35aaf31$export$937ca0a544b2d712","view","matr","$aaecba02b59b3797$export$a001ee18aa9e474","rotation","matrixCache","matrixCacheValid","setScale","setTranslation","matrix","fromRotationTranslationScale","$a3a4915a66132fbb$export$5f1af8db9871e1d6","shader","vertexBuffer","vertexCount","indexBuffer","vao","transformation","spec","vertices","letterIndices","type","text","spaceHeight","verticalSpacing","maxWidth","totalY","char","character","characters","width","height","charX","originX","originY","s0","t0","s1","t1","s2","t2","x3","y3","s3","t3","push","vI","align","totalX","advance","initialX","Uint16Array","createVertexArray","bindVertexArray","enableVertexAttribArray","vertexAttribPointer","FLOAT","vertexAttribIPointer","UNSIGNED_SHORT","render","params","drawArrays","TRIANGLES","deleteBuffer","deleteVertexArray","$1669b27dd88d6d65$export$2fbeab44c6eca323","isNaN","$1669b27dd88d6d65$export$5c5ee632c52bc4a2","$b62e014a4102e0be$var$LIGHTING_DEFAULT","ambient","light1","position","intensity","cameraLightIntensity","fogColor","fogDensity","$b62e014a4102e0be$export$499f63eb5439a1d5","start","sceneParams","scene","next","previous","thenScene","sceneIter","currentScene","addSequence","partParams","sequence","parts","part","partStart","partEnd","assertStart","partData","$b62e014a4102e0be$export$a3a6a28ae8823b06","sceneNow","beat","nowInSceneBeats","sceneProgress","sceneId","camera","rotationY","texts","lighting","sceneVariables","fade","backgroundColor","$b62e014a4102e0be$var$computeTransition3D","transitionOrPosition","fraction","easeFunction","from","isArray","transition","to","undefined","lerp","ease","$b62e014a4102e0be$var$computeSceneVariables","computeVariables","ctx","$b62e014a4102e0be$export$f195f25b42d46a8c","config","sceneTexts","WeakMap","BEAT_LENGTH","bpm","initialScene","preprocess","sceneTextToText","sceneText","partText","getSceneAt","nowInBeats","getSequencePartAt","currentSequencePart","getStateAt","light","sceneStartTime","sceneLength","partProgress","sceneProgressFraction","partProgressFraction","transitionContext","nowInSeconds","sceneNowInSeconds","sceneNowInBeats","sequenceTransitionContext","sceneContext","variables","sceneVariables2","variables2","$b62e014a4102e0be$var$computeCamera","evaluate","potentialTexts","textDuration","timing","exit","enter","timeSinceVisible","duration","textObj","textPosition","$b62e014a4102e0be$var$computeTransition2D","easing","fromValues","$b62e014a4102e0be$var$compute","effects","Function","$9fd44832378de894$export$61fc7d43ac8f84b0","delay","timeout","args","clearTimeout","setTimeout","$345fa7976de58ce6$export$cf1be2ef99f5762d","quad","originalResolution","resolutionScale","renderLastToScreen","colorTextures","colorTextureIndex","colorTexture","initializeColorTexture","setTextureFlags","positionAndDepthTexture","initializePositionAndDepthTexture","sceneFramebuffer","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","COLOR_ATTACHMENT1","drawBuffers","effectFramebuffer","beforeScene","getScreenBuffer","getBackBuffer","copyFromScreenBuffer","copyTexSubImage2D","drawingBufferWidth","drawingBufferHeight","input","renderQuad","renderUpTo","effect","enabled","enableEffects","depthTexture","getEffect","find","setEffectEnabled","RGBA16F","RGBA32F","NEAREST","resize","$ed2f80146d39749a$export$9dde1d7d4d0d9914","_","colorTextureLocation","depthTextureLocation","setUniforms","beforeQuadRender","TEXTURE1","$e26936ed748f24a7$export$7005c9eb6671414d","TRIANGLE_STRIP","$d86083e3986cc42d$export$c8ff168db15089af","fadeColorLocation","uniform4fv","fadeColor","$980c954df20a7e30$export$106015d73c5a2f43","bloomTexture","bloomTextureLocation","TEXTURE2","$27e0396eef938f1d$export$1c64c53574a5fe53","unit","bind","update","updater","$cd7c808f3fdd3d35$export$2947cebfe91c02f8","uniformType","$d256aeec6e5e93e7$export$238e1922c0a52ddd","resources","nextTextureUnit","textureUniforms","sceneBeat","cameraLocations","getCameraLocations","lightingLocations","getLightingLocations","addTextureUniform","fftTexture","createFftTexture","uniform","bindAllTextureUniforms","renderInput","fft","updateCameraUniforms","updateLightUniforms","updateUniforms","R32F","RED","getLightLocations","field","zoom","roll","locations","$e818cc2b0899f0b5$export$50cd449059e2d3d8","metal","metalNormal","$c452756be1f5a68d$export$a416f783576d89ce","splashBg","splashFg","splashMask","sparkle","$116a10768a0cf0f3$export$53aecc733b0740db","addSegment","end","compute","segments","segment","interpolate","$116a10768a0cf0f3$export$4f407eeb39521c59","attackTime","releaseTime","steps","currentStepIndex","currentStepStartTime","stepIndex","step","attackEndTime","releaseEndTime","$0b0b5258dcf58045$var$introFadeInOut","$0b0b5258dcf58045$var$macaroniGrow","$0b0b5258dcf58045$var$macaroniRotate","$0b0b5258dcf58045$var$macaroniYOffset","$0b0b5258dcf58045$var$sparkleSize","$0b0b5258dcf58045$export$85f2f34eb806ade4","enable","$b89db7732a88877c$var$knotInterval","alpha","squaredMagnitude","squaredDistance","$b89db7732a88877c$var$remap","u","thing1","$0894ac0ead577123$var$catmullRom","p2","p3","$0894ac0ead577123$var$catmullRomVec3","equals","k1","k2","k3","A1","A2","A3","B1","B2","$0894ac0ead577123$export$760aff21c00b2f35","frames","keyframes","normalizedTime","newCamera","$0894ac0ead577123$var$interpolatePoints","totalSegments","currentFrameIndex","trunc","previousFrame","currentFrame","nextFrame","nextFrame2","error","$c022a9f57a36fe70$export$ec53dc7f7efdb6d9","$c022a9f57a36fe70$var$factoryLighting","$c022a9f57a36fe70$var$moldArmFn","$c022a9f57a36fe70$var$doughPosFn","$c022a9f57a36fe70$var$doughOrMacaroniFn","$c022a9f57a36fe70$var$defaultFadeIn","$c022a9f57a36fe70$var$mainSceneEndFadeOut","$c022a9f57a36fe70$var$sceneYRotation","$c022a9f57a36fe70$var$mainScene","moldArmPos","doughPos","doughOrMacaroni","yRotation","$c022a9f57a36fe70$var$synthPattern","$c022a9f57a36fe70$var$subPattern","$c022a9f57a36fe70$var$synthPatternFuzz","$c022a9f57a36fe70$var$synthPatternLight","$c022a9f57a36fe70$var$synthPatternLight2","$c022a9f57a36fe70$var$subPatternFuzz","$c022a9f57a36fe70$var$subPatternPump","$c022a9f57a36fe70$var$tunnelExpand","$c022a9f57a36fe70$var$tunnelEndGlitchIntoNothingness","$c022a9f57a36fe70$var$tunnelEndInstant","$c022a9f57a36fe70$var$tunnelFadeToWhite","$c022a9f57a36fe70$var$tunnelFadeIn","$c022a9f57a36fe70$var$tubeScene","kickSignal","macaroniGlitch","tunnelExpansion","$c022a9f57a36fe70$var$makaronDimensionFadeInOut","$c022a9f57a36fe70$var$compressMakarons","$c022a9f57a36fe70$var$makaronDimensionFogColor","$c022a9f57a36fe70$var$makaronDimensionScene","subSignal","compress","leadSignal","$c022a9f57a36fe70$var$compressLasaga","$c022a9f57a36fe70$var$macaroniMachineFadeInOut","$c022a9f57a36fe70$var$macaroniMachine","lead","$c022a9f57a36fe70$var$macaroniBoxSize","$c022a9f57a36fe70$var$macaroniHeartRepeat","$c022a9f57a36fe70$var$amenBreakKick","$c022a9f57a36fe70$var$amenBreakKickFilter","$c022a9f57a36fe70$var$macaroniBoxSceneFadeOut","$c022a9f57a36fe70$var$macaroniBoxScene","$c022a9f57a36fe70$var$lasagaFadeInOut","$c022a9f57a36fe70$var$lasagaWorldScene","$c022a9f57a36fe70$var$whiteFlashFn","$c022a9f57a36fe70$var$beatFlash","$c022a9f57a36fe70$var$tesseractBendFn","$c022a9f57a36fe70$var$tesseractBendFn2","$c022a9f57a36fe70$var$tesseractRingDistance","$c022a9f57a36fe70$var$tesseractRingVerticalDistance","$c022a9f57a36fe70$var$tesseractRingAngle","result","$c022a9f57a36fe70$var$tesseractFadeOut","$c022a9f57a36fe70$export$d8cc95e653be71f0","beatSignal","add","$cf00842d3b8b8805$var$endFadeOut","$cf00842d3b8b8805$export$29a1a0fb50c9ad5b","$cc8373dba457913f$export$22c21e3044161f2a","$a6630e3024554578$export$c3c9d3acf7f0d61e","$9a3108eb9796c9fd$export$f94da82f4d21389c","$3f4705ce913e53c7$export$2e75c20d97e99f2b","$cf0396d6fff3f6c9$export$d1b85cf9c49eb72f","$cb977d6ea4f1ae36$export$55fe04ef2be8780b","sky","$b4e14b6b8da86996$var$canvas","document","getElementById","$b4e14b6b8da86996$var$gl","getContext","powerPreference","$b4e14b6b8da86996$var$loader","progress","$b4e14b6b8da86996$var$updateLoadProgress","totalProgress","$b4e14b6b8da86996$var$loaderText","$b4e14b6b8da86996$var$statusText","$b4e14b6b8da86996$var$disclaimer","$b4e14b6b8da86996$var$log","$b4e14b6b8da86996$var$loaderFarjan","$b4e14b6b8da86996$var$addLogMessage","message","span","createElement","innerText","prepend","toFixed","documentElement","style","setProperty","$b4e14b6b8da86996$var$colorBufferFloatExt","getExtension","$b4e14b6b8da86996$var$debouncedSavePositionToUrl","searchParams","history","replaceState","$b4e14b6b8da86996$var$url","$b4e14b6b8da86996$var$debugMode","$b4e14b6b8da86996$var$hidpiMode","body","classList","$9dd1932652d87913$exports","$b4e14b6b8da86996$var$renderOnceWithState","fftArray","postEffectsPipeline","bloomPipeline","viewport","disable","BLEND","clearColor","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","depthFunc","LEQUAL","ALWAYS","$b4e14b6b8da86996$var$runImmediately","cb","$b4e14b6b8da86996$var$init","last","makaronUrl","audioElement","loop","autoplay","controls","Boolean","appendChild","addEventListener","currentTime","parseFloat","remove","audioContext","AudioContext","mediaElement","createMediaElementSource","connect","destination","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","createFftVisualizer","canvas","requestAnimationFrame","clearRect","fillStyle","fillRect","progress1","onResizeCallbacks","textShader","updateResolution","ratio","windowRatio","innerWidth","innerHeight","canvasWidth","canvasHeight","devicePixelRatio","forEach","bloomExtract","bloomBlur","fxaa","bloomAdd","tonemapExposure","chromaticAberration","vhsDistortion","vignette","debouncedUpdateResolution","shaderCreators","intro","main","macaroniFactory","outro","macaroniMachine","macaroniBox","tesseract","lasaga","TOTAL_SHADERS","keys","TOTAL_GL_LOADING_STEPS","loadedShaders","loadedShaderIndex","creator","entries","warmupIndex","values","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","DEPTH_TEST","sequencer","running","startTime","frameLength","previousTime","timestamp","once","getFloatFrequencyData","musicNow","performance","$b4e14b6b8da86996$var$updateDebugState","stringify","shaderByName","renderOnceThrottled","Date","onChangeTime","resume","play","paused","pause","key","fullscreenElement","exitFullscreen","requestFullscreen","catch"],"version":3,"file":"index.6a6da4d0.js.map"}